Public domain single-header libraries
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


A set of public domain libraries for various purposes.

Each file contains the entirety of the library. Read the individual files for more information.

Most libraries are self-contained. (i.e., they don't depend on anything else.)

Also, check out Sean Barrett's STB public domain single-header-file library as well!



Dynamic array library for C++11. The Ax::TMutArr<> class allows easy exception-free manipulation of arrays. Unlike most other libraries here, this one does not require an AXARR_IMPLEMENTATION-style definition anywhere.


Flexible (can override and configure) assert, verify, and expect interface. AX_ASSERT() only evaluates in debug and test builds. AX_EXPECT() is always evaluated. AX_VERIFY() is like the prior two but can be used within if statements as it will return.


Configuration file support, partially INI styled, with a unique tagging and command system with a flexible log reporting interface.


Implements cross-platform (Windows and UNIX) support for fibers. The Windows version uses the standard OS fiber functions, while the UNIX version makes use of ucontext to implement them. This programming interface is minimal.


Has AX_INT_DATE and AX_INT_TIME macros, giving you the compilation date and time in integer format. e.g., December 11th, 2014 is represented as 141211 (2014-12-11) by AX_INT_DATE.


Linked-list and intrusive linked-list library for C++. As with ax_array, this library does not require an AXLS_IMPLEMENTATION-style definition anywhere.


Logging system that supports custom filters/endpoints.


Singleton helper classes. As with ax_array and ax_list, there's no need to define an AXMGR_IMPLEMENTATION-style macro anywhere.


Memory management system with support for a wide range of features. Has interfaces for allocation listening (for logging/debugging purposes), page management, hierarchical memory objects, (high performance!) phased allocations, etc...


Holds a bunch of macros that help to identify the target architecture and OS, as well as compiler information. Also includes helper definitions for common compiler extensions and features.


Implements a wide range of printf()-style functionality with several
formatting extensions, such as arrays (e.g., "%{3}f" will print an array of three floats), several FreeBSD kernel formatting extensions, and a syslog-style %m (with support for specifying your own errno value).


String library for C and C++. All strings encoded in UTF-8 with various conversion routines and helper functions. When built with C++ this includes a string class and extra helper functions.


Atomics, synchronization primitives, and threading. When built with C++ this includes a range of helper functions and classes.


High-precision timing queries and timing conversion functions. When built with C++ this includes several utility functions and a timer class (Ax::CTimer).


Standard type definitions.


C++ library for various type traits and minor routines.

ax_typetraits depends on ax_platform and ax_types.