Skip to content
63

Awesome Hpp

A curated list of awesome header-only C++ libraries

4.2k stars282 forks262 entriesLast push Nov 6, 2025 (10 months ago)License Unlicense

This page lists names, links and short descriptions. The original list on GitHub is the source and belongs to its authors.

Argument Parsers

Argh!

Argh! A minimalist argument handler.

In 3 lists

argparse

Argument Parser for Modern C++.

In 3 lists

args

A simple header-only C++ argument parser library.

In 5 listsDetails

cmd_line_parser

Command line parser for C++17.

CLI11

CLI11 is a command line parser for C++11 and beyond.

In 5 listsDetails

clipp

Powerful & Expressive Argument Parsing for Modern C++.

In 4 listsDetails

cxxopts

Lightweight C++ GNU style option parser library.

In 5 listsDetails

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.

In 2 lists

Audio

miniaudio

Audio playback and capture library written in C, in a single source file.

In 5 listsDetails

minimp3

Minimalistic MP3 decoder single header library.

In 4 listsDetails

Benchmarking

criterion

Microbenchmarking for Modern C++.

In 2 lists

nanobench

Simple, fast, accurate microbenchmarking for C++11.

In 4 listsDetails

picobench

A small microbenchmarking library for C++11.

In 2 lists

Communication

comms

Implement binary communication protocols in >=C++11.

In 2 lists

Compression

Gzip

Gzip header-only C++ library.

In 2 lists

interpolative_coding

Binary Interpolative Coding algorithm.

In 2 lists

zstr

A C++ header-only ZLib wrapper.

In 2 lists

Concurrency

cs_libguarded

Multithreaded programming.

In 2 lists

taskflow

Modern C++ Parallel Task Programming.

In 6 listsDetails

task_system

Better Code: Concurrency - Sean Parent.

transwarp

A header-only C++ library for task concurrency.

In 4 listsDetails

taskpool

Modern C++ taskpool.

thread-pool

Modern C++20 thread-pool.

In 2 lists

Cryptography and Security

cppcodec

Encode/decode base64, base64url, base32, etc.

In 3 lists

digestpp

C++11 header-only message digest library.

In 3 lists

PicoSHA2

Header-file-only, SHA256 hash generator in C++.

plusaes

Header only C++ AES cipher library.

In 2 lists

stduuid

A C++17 cross-platform implementation for UUIDs.

In 2 lists

Databases

OTL

Oracle, ODBC and DB2-CLI Template Library.

In 2 lists

Data Formats

bencode

C++20 bencode library.

Boost.JSON

JSON parsing, serialization, inspection and modification.

In 2 lists

cpptoml

Header-only library for parsing TOML.

In 2 lists

csv2

Fast CSV parser and writer for Modern C++.

In 3 lists

CSV Parser

Reading, writing, and analyzing CSV files.

In 2 lists

daw_json_link

Static JSON parsing in C++.

In 2 lists

Fast C++ CSV Parser

Fast library for reading CSV files.

In 4 listsDetails

FlatJSON

Extremely fast just one allocation and zero copy JSON parser.

Glaze

Extremely fast, in memory, JSON and interface library for modern C++.

In 3 lists

inih

This is a header only C++ version of inih.

In 2 lists

nlohmann/json

JSON for Modern C++.

In 7 listsDetails

json_struct

High performance, single header only to serialize and deserialize JSON to C++ structs.

In 2 lists

jsoncons

Construct JSON and JSON-like data formats.

In 2 lists

minicsv

Bare minimal CSV stream based on C++ file streams.

picojson

a header-file-only, JSON parser serializer in C++.

In 4 listsDetails

pugixml

A C++ XML processing library with a DOM-like interface and XPath 1.0 support.

In 2 lists

rapidcsv

C++ CSV parser library.

In 2 lists

rapidjson

A fast JSON parser/generator for C++.

In 4 lists

rapidxml

RapidXML fork; XML namespacing, per-element parsing, etc.

simdjson

Parsing gigabytes of JSON per second.

In 3 lists

simpleini

Read and write INI-style configuration files.

In 3 lists

taocpp JSON

C++ header-only JSON library.

In 2 lists

toml11

TOML for Modern C++.

In 3 lists

tomlplusplus

TOML config file parser and serializer for >=C++17.

In 3 lists

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

dlib

A toolkit for real-world machine learning and data analysis.

In 3 lists

frugally deep

Use Keras models in C++.

In 4 listsDetails

gaenari

Incremental decision tree in C++17.

In 2 lists

hnswlib

Fast approximate nearest neighbors.

In 4 listsDetails

MiniDNN

A header-only C++ library for deep neural networks.

In 2 lists

mlpack

mlpack: a fast, header-only C++ machine learning library.

In 6 listsDetails

nanoflann

Nearest Neighbor (NN) search with KD-trees.

In 5 listsDetails

tiny-dnn

Dependency-free deep learning framework in C++14.

In 5 listsDetails

Data Formatting and Presentation

asap

Creating, displaying, iterating and manipulating dates.

cxx prettyprint

Pretty-printing of any container in C++(0x).

In 3 lists

emio

A safe and fast high-level and low-level character input/output C++20 library.

In 3 lists

fmt

A modern formatting library.

In 5 listsDetails

pprint

Pretty Printer for Modern C++.

In 3 lists

strf

A fast formatting library for C++14.

In 2 lists

tabulate

Table Maker for Modern C++.

In 4 listsDetails

Data Querying

boolinq

Simplest C++ header-only LINQ template library.

In 2 lists

Data Structures and Algorithms

BitMagic

Compressed bit-vectors, logical operations, memory compact containers.

In 2 lists

concurrent queue

Fast multi-producer, multi-consumer lock-free concurrent queue.

In 4 listsDetails

dynamic bitset

The C++17 header-only dynamic bitset.

In 3 lists

frozen

Constexpr alternative to gperf for C++14 users.

In 4 listsDetails

hopscotch map

Fast hash map and hash set using hopscotch hashing.

In 3 lists

immer

Postmodern immutable and persistent data structures.

In 3 lists

MPMCQueue

A bounded multi-producer multi-consumer concurrent queue.

In 3 lists

outcome

Lightweight outcome and result.

In 2 lists

parallel hashmap

Very fast and memory-friendly hashmap and btree containers.

In 4 listsDetails

PGM-index

Blazing fast queries and updates over billions of items using orders of magnitude less memory than other containers.

In 3 lists

robin-hood hashing

Fast & memory efficient hashtable based on robin hood hashing.

In 4 listsDetails

robin-map

Fast hash map and hash set using robin hood hashing.

In 4 listsDetails

sfl-library

Small vector. Small flat map/multimap/set/multiset (ordered and unordered). C++11.

In 3 lists

small

Implementations of the main STL containers optimized for the case when they are small.

In 2 lists

tries

Fast and highly customisable C++20 trie implementation.

In 2 lists

Debugging

backward-cpp

A beautiful stack trace pretty printer for C++.

In 5 listsDetails

Deep Learning

ceras

A deep learning engine in C++20.

In 2 lists

Dependency Injection

inversify-cpp

C++17 inversion of control and dependency injection container library.

In 2 lists

Event Handling Mechanisms

eventbus

Mediator pattern event bus for C++.

In 2 lists

eventpp

Event Dispatcher and callback list for C++.

In 3 lists

periodic-function

Callbacks at a specified time interval.

In 2 lists

File System

simplebinstream

C++ Simplistic Binary Stream.

filesystem

Cross-platform implementation of std::filesystem for C++11/14/17.

In 2 lists

glob

Glob for C++17.

llfio

P1031 low-Level file i/o and filesystem library.

mio

Cross-platform C++11 memory mapped file IO.

In 2 lists

mm_file

Memory-mapped files for C++.

tinydir

Lightweight, portable C directory and file reader.

In 3 lists

Functional Programming

FunctionalPlus

Functional Programming Library for C++.

In 4 listsDetails

immer

Postmodern immutable and persistent data structures.

In 3 lists

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

arcball_camera

Immediate-mode camera for your graphics demos.

Brutus

Marching cubes implementation.

cinolib

Process polygonal and polyhedral meshes.

In 2 lists

cr

A Simple C Hot Reload Header-only Library.

In 2 lists

CxxSwizzle

Modern C++ swizzling header-only library.

earcut.hpp

Fast Polygon triangulation.

entt

Entity component system (ECS) and much more.

In 4 listsDetails

glm

OpenGL Mathematics (GLM).

In 5 listsDetails

librg

🚀 Making multi-player gamedev simpler since 2017.

In 4 lists

micro-gl

👾 CPU Vector Graphics Engine (No FPU or std-lib needed).

In 3 lists

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++.

In 4 lists

stb

Single-file public domain libraries.

In 8 listsDetails

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.

In 4 listsDetails

tweeny

A modern C++ tweening library.

In 2 lists

Vookoo

Take the pain out of Vulkan.

In 2 lists

voxelizer

Header only mesh voxelizer in c99.

GPU

thrust

Parallel programming library.

In 2 lists

vuda

Vulkan-based library that provides a CUDA Runtime API interface for writing GPU-accelerated applications.

In 2 lists

muda

Elegant kernel launch, debug-friendly memory accessor, automatic CudaGraph generation & updating for CUDA.

Graph

CXXGraph

Graph Representation and Algorithms Library >= C++17

In 2 lists

Graaf

A general-purpose lightweight C++20 graph library.

In 2 lists

GUI

Centurion

A modern C++17/20 wrapper library for SDL2.

GuiLite

The smallest header-only GUI library(5 KLOC) for all platforms.

In 4 listsDetails

Nuklear

Immediate mode cross-platform GUI library.

In 7 listsDetails

WinLamb

C++11 native Win32 GUI library.

High-performance Computing

MPL

A C++11 message passing library based on the Message Passing Interface standard.

In 2 lists

HTTP and the Web

cinatra

Modern (c++17), Cross-platform Http Framework.

In 2 lists

cpp-httplib

A C++11 Cross platform HTTP/HTTPS library.

In 4 listsDetails

jwt-cpp

Create and validate JSON web tokens.

In 2 lists

RESTinio

Asynchronous HTTP/WebSocket server C++14 library

In 4 listsDetails

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.

Image Processing

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.

noise2d

2D Noise generation for C++17 and later.

Language Bindings

jni.hpp

A modern, type-safe, C++14 wrapper for JNI.

pybind11

Seamless operability between C++11 and Python.

In 6 listsDetails

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.

In 5 listsDetails

v8pp

Bind C++ functions and classes into V8 JavaScript engine.

In 3 lists

Language Development

Command Interpreter

Add a command interpreter (eg., REPL) to any C++ program.

Logging

easyloggingpp

Single header C++ logging library.

In 2 lists

plog

Portable, simple and extensible C++ logging library.

In 4 listsDetails

spdlog

Fast C++ logging library.

In 10 listsDetails

Mathematics

amgcl

Solve large sparse linear systems with algebraic multigrid method.

In 2 lists

dj_fft

FFT library.

eigen

Template library for linear algebra.

In 2 lists

exprtk

C++ Mathematical Expression Toolkit.

In 3 lists

fpm

Fixed-point math library.

In 2 lists

kfr

Fast DSP framework, FFT, Sample Rate Conversion, etc.

In 2 lists

libmorton

Methods to efficiently encode/decode Morton codes in/from 2D/3D coordinates.

linalg

Short vector math library for C++.

In 3 lists

matplotlib-cpp

C++ plotting library built on the popular matplotlib.

In 3 lists

mathplot

Data visualization for simulations (C++20).

In 2 lists

matrix

A 2D matrix lib in C++20.

NumCpp

C++ implementation of the Python Numpy library.

In 4 listsDetails

random

Random for modern C++ with convenient API.

spectra

A header-only C++ library for large scale eigenvalue problems.

In 2 lists

universal

Universal Number Arithmetic.

In 2 lists

Memory Management

ugc

Incremental garbage collector.

Mocking

FakeIt

C++ mocking made easy.

In 4 listsDetails

trompeloeil

C++14 mocking framework.

Networking

asio

Asio C++ Library.

In 4 listsDetails

asio-grpc

Asynchronous gRPC with Asio/unified executors.

In 2 lists

brynet

Cross-platform C++ TCP network library.

cppzmq

Header-only C++ binding for libzmq.

In 2 lists

nygma

Network packet processing and indexing.

uvw

libuv wrapper in modern C++.

In 4 listsDetails

Optimization

ensmallen

C++ library for numerical optimization.

Parsing

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

cpp-peglib

PEG (Parsing Expression Grammars) library.

In 2 lists

lug

A C++17 embedded domain specific language for expressing parsers as extended PEG.

PEGTL

Parsing Expression Grammar Template Library.

In 2 lists

Portability Definitions

hedley

Move #ifdefs out of your code.

In 2 lists

Reflection

better-enums

C++ compile-time enum to string, iteration.

In 4 listsDetails

magic_enum

Static reflection for enums.

In 5 listsDetails

meta

Macro-free runtime reflection system.

In 4 listsDetails

nameof

Nameof operator for modern C++.

In 5 listsDetails

refl-cpp

Compile-time reflection library.

In 2 lists

visit_struct

A miniature library for struct-field reflection.

Regular Expression

compile-time regular expressions

A Compile time regular expression matcher.

In 4 listsDetails

SRELL

A ECMAScript (JavaScript) compatible regular expression engine.

Robotics

manif

Small library for Lie theory.

In 2 lists

Serialization

alpaca

Serialization library written in C++17.

cereal

A C++11 library for serialization.

In 5 listsDetails

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.

In 2 lists

cista

simple, high-performance, zero-copy C++ serialization & reflection library.

In 5 listsDetails

SIMD

libsimdpp

Low-level SIMD library.

In 2 lists

simde

Implementations of SIMD instruction sets.

In 3 lists

tsimd

Fundamental C++ SIMD types for Intel CPUs.

Standard/Support Libraries

bitflags

Easily managing set of flags.

cpp-typelist

Modern typelist for C++20

expected

C++11/14/17 std::expected.

In 3 lists

expected-lite

Expected objects in C++11 and later.

flux

A C++20 library for sequence-orientated programming.

In 2 lists

gsl

ISO C++ Guidelines Support Library (GSL) by Microsoft.

In 3 lists

gsl-lite

ISO C++ Guidelines Support Library (GSL).

hana

Your standard library for metaprogramming.

In 2 lists

itlib

Standard-library-like containers and extensions.

In 3 lists

leaf

Lightweight Error Augmentation Framework.

libunifex

Unified Executors

In 2 lists

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.

In 2 lists

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.

In 2 lists

State Machine

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.

In 2 lists

SMLite

State machine library for C, C++, C#, Java, JavaScript, Python, VB.Net.

cuestate

C++ template metaprogramming FSM.

Statistics

histogram

Multi-dimensional generalized histograms.

kalman

Kalman Filtering Library (EKF, UKF) based on Eigen3.

In 2 lists

stats

Statistical distribution functions.

In 3 lists

String Utilities

utf-cpp

UTF-8/16/32 for Windows/Linux/MacOs.

wildcards

String matching using wildcards.

In 2 lists

Templating Engines

inja

A Template Engine for Modern C++.

In 3 lists

Terminal Utilities

indicators

Activity Indicators for Modern C++.

In 4 listsDetails

rang

A Minimal library for terminal goodies 💄✨.

In 3 lists

termcolor

Print colored messages to the terminal.

Testing Frameworks

ApprovalTests.cpp

Native ApprovalTests for C++.

Catch2

Test framework for unit-tests, TDD and BDD.

In 4 listsDetails

doctest

The fastest feature-rich C++11/14/17/20 testing framework.

In 4 listsDetails

iutest

Test framework for unit-tests.

lest

Tiny framework for unit-tests, TDD and BDD.

snitch

Lightweight C++20 testing framework.

In 2 lists

ut

UT: C++20 μ(micro)/Unit Testing Framework.

In 2 lists

Unicode

cpp-unicodelib

C++17 Unicode library.

uni-algo

Unicode algorithms for C++17.

In 2 lists

Units

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.

Validation

cpp-validator

C++ library for data validation.

Web Frameworks

crow

Micro web framework inspired by Python Flask.

In 2 lists
See category
94

Awesome Mac

jaywcjlove/awesome-mac

 This project is dedicated to collecting high-quality macOS software and organizing them systematically by different categories for easy search and use.

Fresh★ 115k1316 entriesPushed today
91

Open Source Mac Os Apps

serhii-londar/open-source-mac-os-apps

🚀 Awesome list of open source applications for macOS. https://t.me/s/opensourcemacosapps

Fresh★ 51k700 entriesPushed 20 days ago
91

Awesome-Kubernetes

ramitsurana/awesome-kubernetes

A curated list for awesome kubernetes sources :ship::tada:

Fresh★ 16k47 entriesPushed 8 days ago
90

Awesome Nodejs

sindresorhus/awesome-nodejs

:zap: Delightful Node.js packages and resources [BECAUSE OF TOO MUCH SPAM AND LOW-QUALITY SUBMISSIONS, SUBMISSIONS ARE PAUSED TEMPORARILY]

Fresh★ 67k588 entriesPushed 28 days ago
90

Awesome Home Assistant

frenck/awesome-home-assistant

A curated list of amazingly awesome Home Assistant resources.

Fresh★ 8.5k312 entriesPushed 2 days ago
90

Awesome Ios

vsouza/awesome-ios

A curated list of awesome iOS ecosystem, including Objective-C and Swift Projects

Fresh★ 53k1812 entriesPushed 1 month ago