UTL

Collection of self-contained header-only libraries for C++17

View on GitHub

UTL

UTL is a collection of small self-contained libraries aimed at prototyping with minimal boilerplate. Most of the modules were created during my work in gamedev and math research projects.

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.

Design goals

Implementation of this library sets following design goals:

Quality goals include:

Modules & documentation

Module Short description
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 Math-related utilities
utl::mvl Flexible API for vector and matrix operations
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::struct_reflect Struct reflection
utl::table Drawing of LaTeX and ASCII tables
utl::time Floating-point time, timers, stopwatches, datetime

See also

Requirements

Developer toolchain

While the library itself consists of a single header 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
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

Work in progress

License

This project is licensed under the MIT License - see the LICENSE.md for details.