Awesome header-only C++ libraries
Library
Stars
Description
License
Argh!
Argh! A minimalist argument handler.
argparse
Argument Parser for Modern C++.
args
A simple header-only C++ argument parser library.
cmd_line_parser
Command line parser for C++17.
CLI11
CLI11 is a command line parser for C++11 and beyond.
clipp
Powerful & Expressive Argument Parsing for Modern C++.
cxxopts
Lightweight C++ GNU style option parser library.
fire-hpp
Create fully functional CLIs using function signatures.
flags
Simple, extensible, header-only C++17 argument parser.
structopt
Parse command line arguments by defining a struct.
Library
Stars
Description
License
miniaudio
Audio playback and capture library written in C, in a single source file.
minimp3
Minimalistic MP3 decoder single header library.
Library
Stars
Description
License
criterion
Microbenchmarking for Modern C++.
nanobench
Simple, fast, accurate microbenchmarking for C++11.
picobench
A small microbenchmarking library for C++11.
Library
Stars
Description
License
comms
Implement binary communication protocols in >=C++11.
Library
Stars
Description
License
Gzip
Gzip header-only C++ library.
interpolative_coding
Binary Interpolative Coding algorithm.
zstr
A C++ header-only ZLib wrapper.
Cryptography and Security
Library
Stars
Description
License
cppcodec
Encode/decode base64, base64url, base32, etc.
digestpp
C++11 header-only message digest library.
PicoSHA2
Header-file-only, SHA256 hash generator in C++.
plusaes
Header only C++ AES cipher library.
stduuid
A C++17 cross-platform implementation for UUIDs.
Library
Stars
Description
License
OTL
Oracle, ODBC and DB2-CLI Template Library.
OpenBSD
Library
Stars
Description
License
bencode
C++20 bencode library.
Boost.JSON
JSON parsing, serialization, inspection and modification.
cpptoml
Header-only library for parsing TOML.
csv2
Fast CSV parser and writer for Modern C++.
CSV Parser
Reading, writing, and analyzing CSV files.
daw_json_link
Static JSON parsing in C++.
Fast C++ CSV Parser
Fast library for reading CSV files.
FlatJSON
Extremely fast just one allocation and zero copy JSON parser.
inih
This is a header only C++ version of inih.
nlohmann/json
JSON for Modern C++.
json_struct
High performance, single header only to serialize and deserialize JSON to C++ structs.
jsoncons
Construct JSON and JSON-like data formats.
minicsv
Bare minimal CSV stream based on C++ file streams.
picojson
a header-file-only, JSON parser serializer in C++.
pugixml
A C++ XML processing library with a DOM-like interface and XPath 1.0 support.
rapidcsv
C++ CSV parser library.
rapidjson
A fast JSON parser/generator for C++.
rapidxml
RapidXML fork; XML namespacing, per-element parsing, etc.
simdjson
Parsing gigabytes of JSON per second.
simpleini
Read and write INI-style configuration files.
taocpp JSON
C++ header-only JSON library.
toml11
TOML for Modern C++.
tomlplusplus
TOML config file parser and serializer for >=C++17.
tortellini
A really stupid INI file format for C++11.
valijson
JSON Schema validation.
xml2json
A header-only C++ library converts XML to JSON.
Data Mining, Machine Learning, and Deep Learning
Library
Stars
Description
License
dlib
A toolkit for real-world machine learning and data analysis.
frugally deep
Use Keras models in C++.
gaenari
Incremental decision tree in C++17.
hnswlib
Fast approximate nearest neighbors.
MiniDNN
A header-only C++ library for deep neural networks.
mlpack
mlpack: a fast, header-only C++ machine learning library.
nanoflann
Nearest Neighbor (NN) search with KD-trees.
tiny-dnn
Dependency-free deep learning framework in C++14.
Data Formatting and Presentation
Library
Stars
Description
License
asap
Creating, displaying, iterating and manipulating dates.
cxx prettyprint
Pretty-printing of any container in C++(0x).
emio
A safe and fast high-level and low-level character input/output C++20 library.
fmt
A modern formatting library.
pprint
Pretty Printer for Modern C++.
strf
A fast formatting library for C++14.
tabulate
Table Maker for Modern C++.
Library
Stars
Description
License
boolinq
Simplest C++ header-only LINQ template library.
Data Structures and Algorithms
Library
Stars
Description
License
BitMagic
Compressed bit-vectors, logical operations, memory compact containers.
concurrent queue
Fast multi-producer, multi-consumer lock-free concurrent queue.
dynamic bitset
The C++17 header-only dynamic bitset.
frozen
Constexpr alternative to gperf for C++14 users.
hopscotch map
Fast hash map and hash set using hopscotch hashing.
immer
Postmodern immutable and persistent data structures.
MPMCQueue
A bounded multi-producer multi-consumer concurrent queue.
outcome
Lightweight outcome and result.
parallel hashmap
Very fast and memory-friendly hashmap and btree containers.
PGM-index
Blazing fast queries and updates over billions of items using orders of magnitude less memory than other containers.
robin-hood hashing
Fast & memory efficient hashtable based on robin hood hashing.
robin-map
Fast hash map and hash set using robin hood hashing.
sfl-library
Small vector. Small flat map/multimap/set/multiset (ordered and unordered). C++11.
small
Implementations of the main STL containers optimized for the case when they are small.
tries
Fast and highly customisable C++20 trie implementation.
Library
Stars
Description
License
backward-cpp
A beautiful stack trace pretty printer for C++.
Library
Stars
Description
License
ceras
A deep learning engine in C++20.
Library
Stars
Description
License
inversify-cpp
C++17 inversion of control and dependency injection container library.
Event Handling Mechanisms
Library
Stars
Description
License
eventbus
Mediator pattern event bus for C++.
eventpp
Event Dispatcher and callback list for C++.
periodic-function
Callbacks at a specified time interval.
Library
Stars
Description
License
simplebinstream
C++ Simplistic Binary Stream.
filesystem
Cross-platform implementation of std::filesystem for C++11/14/17.
glob
Glob for C++17.
llfio
P1031 low-Level file i/o and filesystem library.
mio
Cross-platform C++11 memory mapped file IO.
mm_file
Memory-mapped files for C++.
tinydir
Lightweight, portable C directory and file reader.
Library
Stars
Description
License
FunctionalPlus
Functional Programming Library for C++.
immer
Persistent functional data structures in C++.
lager
Redux-like unidirectional data-flow for C++.
schmutz
Easy Guile Scheme C++ bindings.
zug
Transducers (from Clojure) in C++.
Geometry, Graphics Processing, and Game Development
Library
Stars
Description
License
arcball_camera
Immediate-mode camera for your graphics demos.
Brutus
Marching cubes implementation.
cinolib
Process polygonal and polyhedral meshes.
cr
A Simple C Hot Reload Header-only Library.
CxxSwizzle
Modern C++ swizzling header-only library.
earcut.hpp
Fast Polygon triangulation.
entt
Entity component system (ECS) and much more.
glm
OpenGL Mathematics (GLM).
librg
🚀 Making multi-player gamedev simpler since 2017.
micro-gl
👾 CPU Vector Graphics Engine (No FPU or std-lib needed).
nanort
Modern ray tracing kernel.
px
Thread Scheduling, Rendering, and so on.
Simple OpenGL Loader
Extensible, cross-platform OpenGL loader.
Sokol
Cross-platform libraries for C and C++.
stb
Single-file public domain libraries.
Swarmz
Swarming (flocking) library for real-time applications.
tiny-differentiable-simulator
Tiny Differentiable Simulator is a header-only C++ physics library with zero dependencies.
tinygltf
C++11 tiny glTF 2.0 library.
tweeny
A modern C++ tweening library.
Vookoo
Take the pain out of Vulkan.
voxelizer
Header only mesh voxelizer in c99.
Library
Stars
Description
License
thrust
Parallel programming library.
vuda
Vulkan-based library that provides a CUDA Runtime API interface for writing GPU-accelerated applications.
muda
Elegant kernel launch, debug-friendly memory accessor, automatic CudaGraph generation & updating for CUDA.
Library
Stars
Description
License
CXXGraph
Graph Representation and Algorithms Library >= C++17
Graaf
A general-purpose lightweight C++20 graph library.
Library
Stars
Description
License
Centurion
A modern C++17/20 wrapper library for SDL2.
GuiLite
The smallest header-only GUI library(5 KLOC) for all platforms.
Nuklear
Immediate mode cross-platform GUI library.
WinLamb
C++11 native Win32 GUI library.
High-performance Computing
Library
Stars
Description
License
cinatra
Modern (c++17), Cross-platform Http Framework.
cpp-httplib
A C++11 Cross platform HTTP/HTTPS library.
jwt-cpp
Create and validate JSON web tokens.
RESTinio
Asynchronous HTTP/WebSocket server C++14 library
cuehttp
Modern c++ middleware framework for http(http/https)/websocket(ws/wss).
libfv
libfv is C++20 header-only network library, support TCP/SSL/Http/websocket server and client
NetIF
Cross-platform network interface addresses without name lookups in C++14.
Library
Stars
Description
License
BitmapPlusPlus
Simple and Fast header only Bitmap (BMP) library.
CImg
Cool Image, one file: full featured image processing.
color-util
Colors, Color space converters for RGB, HSL, XYZ, Lab, etc.
color
Color manipulation/conversion for different types and formats.
nanopm
NanoPM, single header only PatchMatch.
Library
Stars
Description
License
jni.hpp
A modern, type-safe, C++14 wrapper for JNI.
pybind11
Seamless operability between C++11 and Python.
Selene
Simple C++11 friendly bindings to Lua.
Sol
Sol3 (sol2 v3.0) - a C++ <-> Lua API wrapper with advanced features and top notch performance.
v8pp
Bind C++ functions and classes into V8 JavaScript engine.
Library
Stars
Description
License
Command Interpreter
Add a command interpreter (eg., REPL) to any C++ program.
Library
Stars
Description
License
easyloggingpp
Single header C++ logging library.
plog
Portable, simple and extensible C++ logging library.
spdlog
Fast C++ logging library.
Library
Stars
Description
License
amgcl
Solve large sparse linear systems with algebraic multigrid method.
dj_fft
FFT library.
eigen
Template library for linear algebra.
exprtk
C++ Mathematical Expression Toolkit.
fpm
Fixed-point math library.
kfr
Fast DSP framework, FFT, Sample Rate Conversion, etc.
libmorton
Methods to efficiently encode/decode Morton codes in/from 2D/3D coordinates.
linalg
Short vector math library for C++.
matplotlib-cpp
C++ plotting library built on the popular matplotlib.
matrix
A 2D matrix lib in C++20.
NumCpp
C++ implementation of the Python Numpy library.
random
Random for modern C++ with convenient API.
spectra
A header-only C++ library for large scale eigenvalue problems.
universal
Universal Number Arithmetic.
Library
Stars
Description
License
ugc
Incremental garbage collector.
Library
Stars
Description
License
FakeIt
C++ mocking made easy.
trompeloeil
C++14 mocking framework.
Library
Stars
Description
License
asio
Asio C++ Library.
asio-grpc
Asynchronous gRPC with Asio/unified executors.
brynet
Cross-platform C++ TCP network library.
cppzmq
Header-only C++ binding for libzmq.
nygma
Network packet processing and indexing.
uvw
libuv wrapper in modern C++.
Library
Stars
Description
License
ensmallen
C++ library for numerical optimization.
Library
Stars
Description
License
lexertl14
The Modular Lexical Analyser Generator.
Matcheroni & Parseroni
C++20 libraries for doing pattern matching using Parsing Expression Grammars
parsertl14
The Modular Parser Generator.
Parsing Expression Grammars
Library
Stars
Description
License
cpp-peglib
PEG (Parsing Expression Grammars) library.
PEGTL
Parsing Expression Grammar Template Library.
Library
Stars
Description
License
hedley
Move #ifdefs out of your code.
Library
Stars
Description
License
better-enums
C++ compile-time enum to string, iteration.
magic_enum
Static reflection for enums.
meta
Macro-free runtime reflection system.
nameof
Nameof operator for modern C++.
refl-cpp
Compile-time reflection library.
visit_struct
A miniature library for struct-field reflection.
Library
Stars
Description
License
manif
Small library for Lie theory.
Library
Stars
Description
License
alpaca
Serialization library written in C++17.
cereal
A C++11 library for serialization.
essentials
Transparent serialization/deserialization.
fuser
Automatic (de)serialization of C++ types to/from JSON.
YAS
A C++11 (de)serialization library with support for binary/text/json archives.
cista
simple, high-performance, zero-copy C++ serialization & reflection library.
Library
Stars
Description
License
libsimdpp
Low-level SIMD library.
simde
Implementations of SIMD instruction sets.
tsimd
Fundamental C++ SIMD types for Intel CPUs.
Standard/Support Libraries
Library
Stars
Description
License
bitflags
Easily managing set of flags.
cpp-typelist
Modern typelist for C++20
expected
C++11/14/17 std::expected.
expected-lite
Expected objects in C++11 and later.
gsl
ISO C++ Guidelines Support Library (GSL) by Microsoft.
gsl-lite
ISO C++ Guidelines Support Library (GSL).
hana
Your standard library for metaprogramming.
itlib
Standard-library-like containers and extensions.
leaf
Lightweight Error Augmentation Framework.
libunifex
Unified Executors
match(it)
A lightweight pattern-matching library for C++17 with macro-free APIs.
mp11
C++11 metaprogramming library.
NanoRange
Range-based goodness for C++17.
numeric_ranges
Numeric algorithms for C++20 Ranges.
optional
C++11/14/17 std::optional.
optional-lite
A C++17-like optional for C++98/11 and later.
range-v3
Range library for C++14/17/20.
rangesnext
Tanges features for c+23 ported to C++20.
span-lite
A C++20-like span for C++98/11 and later.
string-view-lite
A C++17-like string_view for C++98/11 and later.
uberswitch
Alternative to the C++ switch statement.
variant-lite
A C++17-like variant for C++98/11 and later.
Windows Implementation Libraries (WIL)
Readable type-safe C++ interfaces for common Windows coding patterns.
Library
Stars
Description
License
hfsm2
High-performance hierarchical finite state machine framework.
hsm
Finite state machine library based on the boost hana.
tinyfsm
A simple C++ finite state machine library.
SMLite
State machine library for C, C++, C#, Java, JavaScript, Python, VB.Net
.
cuestate
C++ template metaprogramming FSM.
Library
Stars
Description
License
histogram
Multi-dimensional generalized histograms.
kalman
Kalman Filtering Library (EKF, UKF) based on Eigen3.
stats
Statistical distribution functions.
Library
Stars
Description
License
utf-cpp
UTF-8/16/32 for Windows/Linux/MacOs.
wildcards
String matching using wildcards.
Library
Stars
Description
License
inja
A Template Engine for Modern C++.
Library
Stars
Description
License
indicators
Activity Indicators for Modern C++.
rang
A Minimal library for terminal goodies 💄✨.
termcolor
Print colored messages to the terminal.
Library
Stars
Description
License
ApprovalTests.cpp
Native ApprovalTests for C++.
Catch2
Test framework for unit-tests, TDD and BDD.
doctest
The fastest feature-rich C++11/14/17/20 testing framework.
iutest
Test framework for unit-tests.
lest
Tiny framework for unit-tests, TDD and BDD.
snitch
Lightweight C++20 testing framework.
ut
UT: C++20 μ(micro)/Unit Testing Framework.
Library
Stars
Description
License
cpp-unicodelib
C++17 Unicode library.
uni-algo
Unicode algorithms for C++17.
Library
Stars
Description
License
LLNL/units
Run-time unit representation and conversion.
mpusz/units
Compile-time dimensional analysis and unit/quantity manipulation.
nholthaus/units
Dimensional analysis and unit conversion library.
SI
Type safety and user defined literals for physical units.
Library
Stars
Description
License
cpp-validator
C++ library for data validation.
Library
Stars
Description
License
crow
Micro web framework inspired by Python Flask.