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.
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 :
- Add this repository as a git submodule of your project (
$ git submodule add https://github.com/theo-pnv/cpp-utils.git
) - Add this line at the top of your root CMakeFile :
add_subdirectory(cpp-utils)
Name | Linking | Description |
---|---|---|
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. Note: Only supports TCP communication for now. |
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). |
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 |