{"id":19205429,"url":"https://github.com/morgancaron/cpputils","last_synced_at":"2025-05-12T17:15:33.915Z","repository":{"id":43260802,"uuid":"237018095","full_name":"MorganCaron/CppUtils","owner":"MorganCaron","description":"C++ Utilities Library for compilers or various projects","archived":false,"fork":false,"pushed_at":"2025-04-10T21:42:13.000Z","size":1174,"stargazers_count":5,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-12T17:15:27.618Z","etag":null,"topics":["compiler","cpp","cpp20","cpp23","cpputils","logger","parser","parser-combinators","parser-generator","utility-library"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MorganCaron.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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,"zenodo":null},"funding":{"github":"MorganCaron"}},"created_at":"2020-01-29T15:38:24.000Z","updated_at":"2025-04-10T21:42:18.000Z","dependencies_parsed_at":"2024-02-26T11:27:43.350Z","dependency_job_id":"bb0604a9-20c6-419b-b29c-01ecc8733637","html_url":"https://github.com/MorganCaron/CppUtils","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MorganCaron%2FCppUtils","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MorganCaron%2FCppUtils/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MorganCaron%2FCppUtils/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MorganCaron%2FCppUtils/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MorganCaron","download_url":"https://codeload.github.com/MorganCaron/CppUtils/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253785011,"owners_count":21963903,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["compiler","cpp","cpp20","cpp23","cpputils","logger","parser","parser-combinators","parser-generator","utility-library"],"created_at":"2024-11-09T13:12:41.189Z","updated_at":"2025-05-12T17:15:33.884Z","avatar_url":"https://github.com/MorganCaron.png","language":"C++","readme":"# CppUtils\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"resources/logo.svg\" alt=\"Logo CppUtils\" width=\"200\" height=\"200\"/\u003e\u003c/p\u003e\n\n## *C++ Utilities Library*\n\n![Github Stars](https://img.shields.io/github/stars/MorganCaron/CppUtils?style=for-the-badge)\n![Github Forks](https://img.shields.io/github/forks/MorganCaron/CppUtils?style=for-the-badge)\n![Top Language](https://img.shields.io/github/languages/top/MorganCaron/CppUtils?style=for-the-badge)\n[![Discord](https://img.shields.io/discord/268838260153909249?label=Chat\u0026logo=Discord\u0026style=for-the-badge)](https://discord.gg/mxZvun4)\n[![License](https://img.shields.io/github/license/MorganCaron/CppUtils?style=for-the-badge)](https://github.com/MorganCaron/CppUtils/blob/master/LICENSE)\n\n### Project Health\n![CI Windows](https://img.shields.io/github/actions/workflow/status/MorganCaron/CppUtils/ci-cpp-windows.yml?style=for-the-badge\u0026logo=windows\u0026logoColor=white\u0026label=Windows)\n![CI Windows MSYS2](https://img.shields.io/github/actions/workflow/status/MorganCaron/CppUtils/ci-cpp-windows-msys2.yml?style=for-the-badge\u0026logo=windows\u0026logoColor=white\u0026label=Windows%20MSYS2)\n![CI Linux](https://img.shields.io/github/actions/workflow/status/MorganCaron/CppUtils/ci-cpp-linux.yml?style=for-the-badge\u0026logo=linux\u0026logoColor=white\u0026label=Linux)\n![CI MacOS](https://img.shields.io/github/actions/workflow/status/MorganCaron/CppUtils/ci-cpp-macos.yml?style=for-the-badge\u0026logo=macos\u0026logoColor=white\u0026label=MacOS)\n\n---\n\n### In this library you can find:\n\n- Additional containers ([bidirectional map](modules/Container/BidirectionalMap.mpp), [b-tree](modules/Container/BTree.mpp), [meshes](modules/Container/MeshNetwork.mpp), [stacks](modules/Container/Stack.mpp), [trees](modules/Container/Tree.mpp))\n- A [file modification listener](modules/FileSystem/Watcher.mpp)\n- Tools for creating parsers and compilers (Work in progress \u003cimg src=\"resources/loading.gif\" width=\"12\" height=\"12\"/\u003e )\n- Parsers and compilers for popular languages (CSS, INI, HTML, JSON, Markdown, XML) (Work in progress \u003cimg src=\"resources/loading.gif\" width=\"12\" height=\"12\"/\u003e )\n- A logger [logger](modules/Log/Logger.mpp) with a [file rotation system](modules/Log/LogRotate.mpp)\n- [Benchmark tools](modules/Log/ChronoLogger.mpp)\n- [Hashing functions](modules/String/Hash.mpp)\n- Networking functions ([Server](modules/Network/Server.mpp)/[Client](modules/Network/Client.mpp))\n- [Color terminal writing](modules/Terminal/TextModifier.mpp)\n- Utilities for securing multithreaded accesses ([UniqueLocker](modules/Thread/UniqueLocker.mpp), [SharedLocker](modules/Thread/SharedLocker.mpp))\n- A [ThreadPool](modules/Thread/ThreadPool.mpp)\n- [Tools for writing unit tests](modules/UnitTest/UnitTest.mpp)\n- [STL polyfills](include/Stl)\n- Many other functions\n\nThe [unit tests](tests) serve as examples of how to use these functions.\n\n\n\n## Getting Started\n\nA C++23 compliant compiler with std module support and XMake is needed to build CppUtils\n\nThis library is used in my C++ projects, but you can also use it in your projects.\nJust follow the installation steps and consult the documentation for each feature you need.\n\n### Installation\n\nIn your XMake projects:\n```lua\nadd_repositories(\"xmake-repo git@github.com:MorganCaron/xmake-repo.git\")\nadd_requires(\"CppUtils\")\n\ntarget(\"YourProject\", function()\n\tadd_packages(\"CppUtils\", {public = true})\nend)\n```\n\n### Contribute\n\n### Build command\n```console\nxmake f --toolchain=llvm --runtimes=\"c++_shared\" [--enable_tests=y] --yes\nxmake [b|build] [-vD]\n```\n\n### Run tests\n```console\nxmake [r|run]\n```\n\n[![Contribute](https://img.shields.io/badge/-Contribute-blue?style=for-the-badge)](CONTRIBUTING.md)\n\n---\n","funding_links":["https://github.com/sponsors/MorganCaron"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmorgancaron%2Fcpputils","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmorgancaron%2Fcpputils","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmorgancaron%2Fcpputils/lists"}