Table of Contents
Argument Parsers
| 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. |
 |
Audio
| Library |
Stars |
Description |
License |
| minimp3 |
 |
Minimalistic MP3 decoder single header library. |
 |
Benchmarking
| 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. |
 |
Communication
| Library |
Stars |
Description |
License |
| comms |
 |
Implement binary communication protocols in >=C++11. |
 |
Compression
| Library |
Stars |
Description |
License |
| Gzip |
 |
Gzip header-only C++ library. |
 |
| interpolative_coding |
 |
Binary Interpolative Coding algorithm. |
 |
| zstr |
 |
A C++ header-only ZLib wrapper. |
 |
Concurrency
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. |
 |
Databases
| Library |
Stars |
Description |
License |
| OTL |
|
Oracle, ODBC and DB2-CLI Template Library. |
OpenBSD |
Data Formats
| 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. |
 |
| 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). |
 |
| 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++. |
 |
Data Querying
| 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. |
 |
| tries |
 |
Fast and highly customisable C++20 trie implementation. |
 |
Debugging
| Library |
Stars |
Description |
License |
| backward-cpp |
 |
A beautiful stack trace pretty printer for C++. |
 |
Deep Learning
| Library |
Stars |
Description |
License |
| ceras |
 |
A deep learning engine in C++20. |
 |
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. |
 |
File System
| 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. |
 |
Functional Programming
| 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. |
 |
| 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. |
|
| 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. |
|
GPU
| Library |
Stars |
Description |
License |
| thrust |
 |
Parallel programming library. |
|
| vuda |
|
Vulkan-based library that provides a CUDA Runtime API interface for writing GPU-accelerated applications. |
 |
Graph
| Library |
Stars |
Description |
License |
| CXXGraph |
|
Graph Representation and Algorithms Library >= C++17 |
|
GUI
| 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
HTTP and the Web
| 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 |
 |
Image Processing
| 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. |
|
Language Bindings
| 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. |
 |
Language Development
| Library |
Stars |
Description |
License |
| Command Interpreter |
 |
Add a command interpreter (eg., REPL) to any C++ program. |
 |
Logging
| Library |
Stars |
Description |
License |
| easyloggingpp |
 |
Single header C++ logging library. |
 |
| plog |
 |
Portable, simple and extensible C++ logging library. |
 |
| spdlog |
 |
Fast C++ logging library. |
 |
Mathematics
| 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. |
 |
Memory Management
| Library |
Stars |
Description |
License |
| ugc |
 |
Incremental garbage collector. |
 |
Mocking
| Library |
Stars |
Description |
License |
| FakeIt |
 |
C++ mocking made easy. |
 |
| trompeloeil |
 |
C++14 mocking framework. |
 |
Networking
| Library |
Stars |
Description |
License |
| asio |
 |
Asio C++ Library. |
|
| 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++. |
 |
Optimization
| Library |
Stars |
Description |
License |
| ensmallen |
 |
C++ library for numerical optimization. |
 |
Parsing Expression Grammars
| Library |
Stars |
Description |
License |
| cpp-peglib |
 |
PEG (Parsing Expression Grammars) library. |
 |
| PEGTL |
 |
Parsing Expression Grammar Template Library. |
 |
Portability Definitions
| Library |
Stars |
Description |
License |
| hedley |
 |
Move #ifdefs out of your code. |
 |
Reflection
| 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. |
 |
Regular Expression
Robotics
| Library |
Stars |
Description |
License |
| manif |
 |
Small library for Lie theory. |
 |
Serialization
| Library |
Stars |
Description |
License |
| 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. |
 |
SIMD
| 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. |
|
State Machine
| 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. |
 |
Statistics
| Library |
Stars |
Description |
License |
| histogram |
 |
Multi-dimensional generalized histograms. |
 |
| kalman |
 |
Kalman Filtering Library (EKF, UKF) based on Eigen3. |
 |
| stats |
 |
Statistical distribution functions. |
 |
String Utilities
| Library |
Stars |
Description |
License |
| utf-cpp |
 |
UTF-8/16/32 for Windows/Linux/MacOs. |
 |
| wildcards |
 |
String matching using wildcards. |
 |
Templating Engines
| Library |
Stars |
Description |
License |
| inja |
 |
A Template Engine for Modern C++. |
 |
Terminal Utilities
| Library |
Stars |
Description |
License |
| indicators |
 |
Activity Indicators for Modern C++. |
 |
| rang |
 |
A Minimal library for terminal goodies 💄✨. |
 |
| termcolor |
 |
Print colored messages to the terminal. |
 |
Testing Frameworks
| 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. |
 |
| ut |
 |
UT: C++20 μ(micro)/Unit Testing Framework. |
 |
Units
| Library |
Stars |
Description |
License |
| 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
| Library |
Stars |
Description |
License |
| cpp-validator |
 |
C++ library for data validation. |
 |
Web Frameworks
| Library |
Stars |
Description |
License |
| crow |
 |
Micro web framework inspired by Python Flask. |
 |
原文:https://github.com/p-ranav/awesome-hpp