Skip to content

theo-pnv/cpp-utils

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

license

cpp-utils

C++ Utilities to use for everyday projects. Fully tested on Linux and Windows x64 with C++17. Some libraries if not all, should work on MacOS.

The libraries, classes and methods are well documented in the code.

Disclaimer: subject to major and breaking changes while I'm still working on it, this is a WIP.

Compilation & Linking

Each part can be compiled as a static library (or header-only for some) with its own CMakeFile.

The easiest way to have all the libraries included in your project is to :

  1. Add this repository as a git submodule of your project ($ git submodule add https://github.com/theo-pnv/cpp-utils.git)
  2. Add this line at the top of your root CMakeFile : add_subdirectory(cpp-utils)
Name Linking Description Todo
tp_network header-only Asynchronous server and client written in with boost Asio (https://www.boost.org/doc/libs/1_65_1/doc/html/boost_asio.html). Can exchange data serialized as string. Asio is included as a header-only standalone so we don't need to have it installed on the system or included. 1. UDP support 2. Decide if an event pipeline is necessary/cleaner (connection, reconnection, deconnection...)
tp_serializer static Serialization/Deserialization library. Works very well with tp_network, as it allows to send and receive various custom objects. Based on jsoncpp (https://github.com/open-source-parsers/jsoncpp). Jsoncpp is included as a header-only standalone so we don't need to have it installed on the system or included.
neon_engine static A small game engine written on top of the SDL2 library (included as a standalone in the project). Supports text and pictures thanks to SDL2_ttf & SDL2_image. (Not functional on linux for now). 1. Linux support
tp_ecs static Entity-Component-System (ECS)
tp_dlloader static Dynamic Library Loader. It retrieves a class from a shared library file. More info on the processus can be found here : https://theopnv.com/dynamic-loading/
tp_filesystem static Abstractions to access files and folders, and to read, write in them.
tp_rloader static Resources Loader. It allows the creation of a resource folder, like AppData for Windows applications. Retrieving resources from the code is then easier.
tp_singleton header-only Abstraction of the singleton pattern.
tp_windows_utility static Small winAPI utilities

About

πŸ›  C++ Utilities (dl-loader, game/network engine (WIP), ECS, serializer, filesystem ...)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages