Collection of self-contained header-only libraries for C++17
See the codeUTL is a collection of small self-contained libraries with a major aim towards usage simplicity. It was mostly created during my work in gamedev and mathematical research for the purpose of fast prototyping.
For the ease of integration, all libraries are distributed as individual headers, which can be found here.
The entire collection can also be downloaded as an amalgamated single-header.
CMake FetchContent() support is also provided.
Implementation of this library sets following design goals:
Quality goals include:
| Module | Short description |
|---|---|
| utl::assertion | Assert macro with more diagnostic info |
| utl::bit | Bit-twiddling, enum bitflags |
| utl::enum_reflect | Enum reflection |
| utl::integral | Saturated math, safe integer casts, literals, rounding and etc. |
| utl::json | JSON parsing, serializing & reflection |
| utl::log | Logging library |
| utl::math | Additional math functions |
| utl::mvl | Generalized matrix & vector containers |
| utl::parallel | Thread pool, async tasks, parallel for, parallel reductions and etc. |
| utl::predef | Detection of architectures, compilers, platforms and etc. |
| utl::profiler | Call graph & thread profiling |
| utl::progressbar | Progress bars for CLI apps |
| utl::random | PRNGs & random number generation |
| utl::shell | Shell commands and temporary files |
| utl::sleep | Precise sleep implementations |
| utl::stre | Efficient implementations of common string utils |
| utl::strong_type | Strong typedefs & RAII wrappers |
| utl::struct_reflect | Struct reflection |
| utl::table | Export ASCII, Markdown, LaTeX, Mathematica and CSV tables |
| utl::time | Floating-point time, timers, stopwatches, datetime |
FetchContent()/Zc:preprocessor) when using MSVC, such headers specify it in the docsWhile the library itself consists of isolated headers with no embedded dependencies, it was built and tested using a number of third-party tools and libraries, some of which are embedded in the repo.
| Tool | Version | Used for |
|---|---|---|
| clang-format | v.14.0.0 | Automatic code formatting |
| clangd | v.15.0.7 | Language server functionality |
| CMake | v.3.2.11 | Build system, CTest testing facilities |
| GCC | v.11.4.0 | ASan and UBSan test instrumentation |
| cppcheck | v.2.7 | Static analysis |
| GitHub Actions | latest | Multi-platform CI testing |
| MkDocs | latest | Building the website |
| Matplotlib | latest | Data visualization |
| Library | Version | License | Used for | Embedded in repo |
|---|---|---|---|---|
| doctest | v.2.4.11 | MIT | Unit testing | ✔ |
| nanobench | v.4.3.11 | MIT | Benchmarking | ✔ |
| nlohmann json | v.3.11.3 | MIT | Benchmark comparison | ✔ |
| PicoJSON | v.1.3.0 | BSD-2 | Benchmark comparison | ✔ |
| RapidJSON | v.1.1.0 | MIT, BSD, JSON | Benchmark comparison | ✔ |
| JSONTestSuite | commit 1ef36fa | MIT | JSON Validation test suite | ✔ |
| BS::thread_pool | v.5.0.0 | MIT | Benchmark comparison | ✔ |
| progschj/ThreadPool | commit 9a42ec1 | zlib | Benchmark comparison | ✔ |
Conan and vcpkgutl::mvl v1.0.0 release, involves a large scale refactor and several bug fixesutl::random v3.0.0 release, includes CBPRNGs and fixed-entropy seeding sequenceThis project is licensed under the MIT License - see the LICENSE.md for details.
122 followers · starred Apr 2025
493 followers · starred Apr 2025
529 followers · starred Feb 2025
161 followers · starred May 2025
Collection of self-contained header-only libraries for C++17
See the codeUTL is a collection of small self-contained libraries with a major aim towards usage simplicity. It was mostly created during my work in gamedev and mathematical research for the purpose of fast prototyping.
For the ease of integration, all libraries are distributed as individual headers, which can be found here.
The entire collection can also be downloaded as an amalgamated single-header.
CMake FetchContent() support is also provided.
Implementation of this library sets following design goals:
Quality goals include:
| Module | Short description |
|---|---|
| utl::assertion | Assert macro with more diagnostic info |
| utl::bit | Bit-twiddling, enum bitflags |
| utl::enum_reflect | Enum reflection |
| utl::integral | Saturated math, safe integer casts, literals, rounding and etc. |
| utl::json | JSON parsing, serializing & reflection |
| utl::log | Logging library |
| utl::math | Additional math functions |
| utl::mvl | Generalized matrix & vector containers |
| utl::parallel | Thread pool, async tasks, parallel for, parallel reductions and etc. |
| utl::predef | Detection of architectures, compilers, platforms and etc. |
| utl::profiler | Call graph & thread profiling |
| utl::progressbar | Progress bars for CLI apps |
| utl::random | PRNGs & random number generation |
| utl::shell | Shell commands and temporary files |
| utl::sleep | Precise sleep implementations |
| utl::stre | Efficient implementations of common string utils |
| utl::strong_type | Strong typedefs & RAII wrappers |
| utl::struct_reflect | Struct reflection |
| utl::table | Export ASCII, Markdown, LaTeX, Mathematica and CSV tables |
| utl::time | Floating-point time, timers, stopwatches, datetime |
FetchContent()/Zc:preprocessor) when using MSVC, such headers specify it in the docsWhile the library itself consists of isolated headers with no embedded dependencies, it was built and tested using a number of third-party tools and libraries, some of which are embedded in the repo.
| Tool | Version | Used for |
|---|---|---|
| clang-format | v.14.0.0 | Automatic code formatting |
| clangd | v.15.0.7 | Language server functionality |
| CMake | v.3.2.11 | Build system, CTest testing facilities |
| GCC | v.11.4.0 | ASan and UBSan test instrumentation |
| cppcheck | v.2.7 | Static analysis |
| GitHub Actions | latest | Multi-platform CI testing |
| MkDocs | latest | Building the website |
| Matplotlib | latest | Data visualization |
| Library | Version | License | Used for | Embedded in repo |
|---|---|---|---|---|
| doctest | v.2.4.11 | MIT | Unit testing | ✔ |
| nanobench | v.4.3.11 | MIT | Benchmarking | ✔ |
| nlohmann json | v.3.11.3 | MIT | Benchmark comparison | ✔ |
| PicoJSON | v.1.3.0 | BSD-2 | Benchmark comparison | ✔ |
| RapidJSON | v.1.1.0 | MIT, BSD, JSON | Benchmark comparison | ✔ |
| JSONTestSuite | commit 1ef36fa | MIT | JSON Validation test suite | ✔ |
| BS::thread_pool | v.5.0.0 | MIT | Benchmark comparison | ✔ |
| progschj/ThreadPool | commit 9a42ec1 | zlib | Benchmark comparison | ✔ |
Conan and vcpkgutl::mvl v1.0.0 release, involves a large scale refactor and several bug fixesutl::random v3.0.0 release, includes CBPRNGs and fixed-entropy seeding sequenceThis project is licensed under the MIT License - see the LICENSE.md for details.
122 followers · starred Apr 2025
493 followers · starred Apr 2025
529 followers · starred Feb 2025
161 followers · starred May 2025