{"id":20995892,"url":"https://github.com/theopnv/cpp-utils","last_synced_at":"2026-05-12T16:30:53.971Z","repository":{"id":69033935,"uuid":"123339406","full_name":"theopnv/cpp-utils","owner":"theopnv","description":"🛠 C++ Utilities (dl-loader, game/network engine (WIP), ECS, serializer, filesystem ...)","archived":false,"fork":false,"pushed_at":"2018-08-16T10:14:53.000Z","size":3077,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-01-01T18:38:34.873Z","etag":null,"topics":["cmake","cpp","cross-platform","library","utilities"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/theopnv.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-02-28T20:35:51.000Z","updated_at":"2023-08-24T16:44:54.000Z","dependencies_parsed_at":"2023-03-24T23:17:51.562Z","dependency_job_id":null,"html_url":"https://github.com/theopnv/cpp-utils","commit_stats":null,"previous_names":["theopnv/cpp-utils"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/theopnv/cpp-utils","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theopnv%2Fcpp-utils","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theopnv%2Fcpp-utils/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theopnv%2Fcpp-utils/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theopnv%2Fcpp-utils/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/theopnv","download_url":"https://codeload.github.com/theopnv/cpp-utils/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theopnv%2Fcpp-utils/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32947461,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-12T09:19:52.626Z","status":"ssl_error","status_checked_at":"2026-05-12T09:17:33.438Z","response_time":102,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cmake","cpp","cross-platform","library","utilities"],"created_at":"2024-11-19T07:26:25.935Z","updated_at":"2026-05-12T16:30:53.948Z","avatar_url":"https://github.com/theopnv.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"![license](https://img.shields.io/github/license/mashape/apistatus.svg)\n![](https://img.shields.io/badge/Language-Cpp17-lightgrey.svg)\n\n# cpp-utils\nC++ Utilities to use for everyday projects.\nFully tested on **Linux** and **Windows** x64 with C++17. Some libraries if not all, should work on MacOS.\n\nThe libraries, classes and methods are well documented in the code.\n\n**Disclaimer:** subject to major and breaking changes while I'm still working on it, this is a WIP.\n\n#### Compilation \u0026 Linking\nEach part can be compiled as a static library (or header-only for some) with its own CMakeFile.\n\nThe **easiest way** to have all the libraries included in your project is to :\n1. Add this repository as a git submodule of your project (`$ git submodule add https://github.com/theo-pnv/cpp-utils.git`)\n2. Add this line at the top of your root CMakeFile : `add_subdirectory(cpp-utils)`\n\n\n| Name     | Linking  | Description | Todo |\n|----------|----------|-------------|---------|\n| **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...) |\n| **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. | |\n| **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 \u0026 SDL2_image. (Not functional on linux for now). | 1. Linux support |\n| **tp_ecs** | _static_ | Entity-Component-System (ECS) | |\n| **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/ | |\n| **tp_filesystem** | _static_ | Abstractions to access files and folders, and to read, write in them. | |\n| **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. | |\n| **tp_singleton** | _header-only_ | Abstraction of the singleton pattern. | |\n| **tp_windows_utility** | _static_ | Small winAPI utilities | |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheopnv%2Fcpp-utils","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftheopnv%2Fcpp-utils","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheopnv%2Fcpp-utils/lists"}