UTL

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

View on GitHub

UTL

UTL is a collection of small self-contained libraries that aim to provide a set of concise utilities 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, this library is distributed in a form of a single header, which can be found here.

All modules can also be downloaded individually.

Design goals

Implementation of this library sets following design goals:

Secondary design goals also include:

Modules & documentation

Module Short description
utl::enum_reflect Enum reflection
utl::json JSON parsing and serializing
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 Scope & expression profiling macros
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 ASCII table rendering tools
utl::timer Timing methods

See also

Requirements

Third-party tools & libraries

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 a 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 and test automation
valgrind v.3.18.1 Memory leak detection
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.