awesome-cpp
A curated list of awesome C++ (or C) frameworks, libraries, resources, and shiny things. Inspired by awesome-... stuff.
https://github.com/fffaraz/awesome-cpp
Last synced: 12 days ago
JSON representation
-
Machine Learning
- Fido - A highly-modular C++ machine learning library for embedded electronics and robotics. [MIT] [website](http://fidoproject.github.io/)
- ggml - Tensor library for machine learning with 16-bit and 4-bit quantization support. [MIT]
- libsvm - A simple, easy-to-use, efficient library for Support Vector Machines. [BSD-3-Clause] [website](https://www.csie.ntu.edu.tw/~cjlin/libsvm/)
- m2cgen - A CLI tool to transpile trained classic ML models into a native C code with zero dependencies. [MIT]
- MeTA - A modern C++ data sciences toolkit. [MIT] [website](https://meta-toolkit.org/)
- Minerva - A fast and flexible system for deep learning. [Apache2]
- mlpack - A scalable c++ machine learning library. [LGPLv3] [website](http://www.mlpack.org/)
- ncnn - A high-performance neural network inference computing framework optimized for mobile platforms. [BSD]
- ONNX runtime - C and C++ library for training and inference ONNX models. ONNX is a standard that AI models can be converted into, regardless of the library they are trained with. [MIT] [website](https://onnxruntime.ai/)
- Recommender - C library for product recommendations/suggestions using collaborative filtering (CF). [BSD]
- RNNLIB - RNNLIB is a recurrent neural network library for sequence learning problems. [GPLv3]
- SHOGUN - The Shogun Machine Learning Toolbox. [GPLv3]
- USearch - Fast search and clustering library for vectors and strings. [Apache2]
- VLFeat - The VLFeat open source library implements popular computer vision algorithms specialising in image understanding and local featurexs extraction and matching. [BSD-2-Clause] [website](http://www.vlfeat.org/)
- xgboost - Scalable, Portable and Distributed Gradient Boosting (GBDT, GBRT or GBM) Library, for Python, R, Java, Scala, C++ and more. Runs on single machine, Hadoop, Spark, Flink and DataFlow. [Apache2]
- sofia-ml - The suite of fast incremental algorithms for machine learning. [Apache2]
- oneDAL - A powerful machine learning library that helps speed up big data analysis. [Apache]
- TensorComprehensions - A fully-functional C++ library to automatically synthesize high-performance machine learning kernels. [Apache-2.0]
- kann - A lightweight C library for artificial neural networks. [MIT]
-
Math
- ceres-solver - C++ library for modeling and solving large complicated nonlinear least squares problems from google. [BSD]
- cml - free C++ math library for games and graphics. [Boost]
- ExprTk - The C++ Mathematical Expression Toolkit Library (ExprTk) is a simple to use, easy to integrate and extremely efficient run-time mathematical expression parser and evaluation engine. [MIT]
- Geometric Tools - C++ library for computing in the fields of mathematics, graphics, image analysis and physics. [Boost] [website](https://www.geometrictools.com)
- GMTL - Graphics Math Template Library is a collection of tools implementing Graphics primitives in generalized ways. [GPL2]
- GMP - A C library for arbitrary precision arithmetic, operating on signed integers, rational numbers, and floating-point numbers. [LGPL3 & GPL2]
- muparser - muParser is an extensible high performance math expression parser library written in C++. [MIT]
- lp_solve - A library used to formulate and solve linear programming problems. [LGPL] [website](http://lpsolve.sourceforge.net)
- PCG-rand - PCG is a family of simple fast space-efficient statistically good algorithms for random number generation. Unlike many general-purpose RNGs, they are also hard to predict. [Apache]
- Versor - A (fast) Generic C++ library for Geometric Algebras, including Euclidean, Projective, Conformal, Spacetime (etc).
- Wykobi - A C++ library of efficient, robust and simple to use C++ 2D/3D oriented computational geometry routines. [MIT]
- Apophenia - A C library for statistical and scientific computing. [GPL2]
- Armadillo - Fast C++ library for linear algebra & scientific computing. [Apache2] [website](http://arma.sourceforge.net/)
- autodiff - A modern, fast and expressive C++ library for automatic differentiation. [MIT] [website](https://autodiff.github.io)
- blaze - high-performance C++ math library for dense and sparse arithmetic. [BSD]
- Boost.Multiprecision - provides higher-range/precision integer, rational and floating-point types in C++, header-only or with GMP/MPFR/LibTomMath backends. [Boost] [website](https://boost.org/libs/multiprecision)
- ceres-solver - C++ library for modeling and solving large complicated nonlinear least squares problems from google. [BSD]
- CGAL - Collection of efficient and reliable geometric algorithms. [LGPL&GPL] [website](http://www.cgal.org/)
- cml - The configurable math library. [Boost]
- DirectXMath - An all inline SIMD C++ linear algebra library for use in games and graphics apps.
- GLM - Header-only C++ math library that matches and inter-operates with OpenGL's GLSL math. [MIT] [website](https://glm.g-truc.net/)
- Klein - A fast, SIMD-optimized C++17 Geometric Algebra library for point, line, and plane projections, intersections, joins, rigid-body motion, and more. [MIT] [website](https://jeremyong.com/klein)
- libfixmath - Cross Platform Fixed Point Maths Library. [MIT]
- linalg.h - Single header, public domain, short vector math library for C++. [Unlicense]
- MATIO - MATLAB MAT File I/O Library. [BSD-2-Clause] [website](https://sourceforge.net/projects/matio/)
- MatX - A GPU-accelerated C++17 numerical computing library with a MATLAB/Python-like syntax. [BSD 3-clause]
- mexce - A single-header, dependency-free JIT compiler for scalar mathematical expressions that generates optimized x87 FPU machine code. [BSD]
- NumCpp - A templatized header only C++ implementation of the Python Numpy library. [MIT]
- OMath - Cross-platform modern general purpose math library written in C++23 that suitable for cheat/game development. [ZLIB]
- LibTomMath - A free open source portable number theoretic multiple-precision integer library written entirely in C. [PublicDomain & WTFPL] [website](http://www.libtom.net/)
- linmath.h - A lean linear math library, aimed at graphics programming. [WTFPL]
- OpenBLAS - An optimized BLAS library based on GotoBLAS2 1.13 BSD version. [BSD 3-clause] [website](http://www.openblas.net/)
- QuantLib - A free/open-source library for quantitative finance. [Modified BSD] [website](http://quantlib.org/)
- sebsjames/maths - A templated C++20 math library which emphasizes convenience and pleasure for the client programmer (used in [mathplot](https://github.com/sebsjames/mathplot)). [Apache2] [website](https://sebsjames.github.io/maths/)
- SimSIMD - Vector distance functions for x86 AVX2, AVX-512, Arm NEON, and SVE. [Apache2]
- StatsLib - A C++ header-only library of statistical distribution functions. [Apache2] [website](https://www.kthohr.com/statslib.html)
- SymEngine - Fast symbolic manipulation library, a rewriting of SymPy's core in C++. [MIT]
- TinyExpr - A C library for parsing and evaluating math expressions from strings. [zlib]
- Vc - SIMD Vector Classes for C++. [BSD]
- Versor - A (fast) Generic C++ library for Geometric Algebras, including Euclidean, Projective, Conformal, Spacetime (etc).
- Wagyu - A general library for geometry operations of union, intersections, difference, and xor. [mapbox-wagyu original]
- xtensor - A C++14 library for numerical analysis with multi-dimensional array expressions, inspired by NumPy syntax. [BSD 3-clause] [website](https://xtensor-stack.github.io/xtensor)
- universal - A C++14 header-only library implementing arbitrary posit arithmetic. The posit number system is a tapered floating point that is more efficient than IEEE floating point. Posits enable reproducible computational science. [MIT license]
- utl::random - A C++17 header-only library implementing fast random for Monte-Carlo simulations & gamedev. [MIT]
- XAD - Powerful Automatic Differentiation for C++. [AGPL] [website](https://auto-differentiation.github.io/)
- MIRACL - A Multiprecision Integer and Rational Arithmetic Cryptographic Library. [AGPL]
- GMTL - Graphics Math Template Library is a collection of tools implementing Graphics primitives in generalized ways. [GPL2]
- CNL - A Compositional Numeric Library for C++. [Boost]
- Eigen - A high-level C++ library of template headers for linear algebra, matrix and vector operations, numerical solvers and related algorithms. [MPL2]
- Fastor - A lightweight high performance tensor algebra framework for modern C++. [MIT]
- geogram - A programming library of geometric algorithms. [BSD-3-Clause]
- std-simd - A portable implementation of std::experimental::simd for C++. [BSD-3-Clause]
- libdivide - Optimized integer division for C/C++ using libdivide. [zlib] [website](https://libdivide.com)
- fpsqrt - Fast fixed point and floating point square root for C. [MIT]
- fastmod - Header-only fast C/C++ library for computing remainders and modular reductions. [Apache-2.0]
- Spectra - A C++ library for large scale eigenvalue problems, built on top of Eigen. [MPL2] [website](https://spectralib.org)
- FastNoiseSIMD - A library for SIMD-accelerated noise generation functions. [MIT]
- NumKong - SIMD-accelerated distances, dot products, matrix ops, geospatial & geometric kernels for 16 numeric types. [Apache2] (previously named SimSIMD)
- geo-utils - Header-only C++17 library for spherical lat/lng geometry: distance, bearing, area, point-in-polygon. [Apache2]
- muparser - muParser is an extensible high performance math expression parser library written in C++. [MIT]
- Wykobi - A C++ library of efficient, robust and simple to use C++ 2D/3D oriented computational geometry routines. [MIT]
-
Memory Allocation
- Boehm GC - Conservative garbage collector for C and C++. [similar to X11] [website](http://www.hboehm.info/gc/)
- C Smart Pointers - Smart pointers for the (GNU) C programming language. [MIT]
- Hoard - Fast, Scalable, and Memory-efficient Malloc for Linux, Windows, and Mac. [Apache-2.0] [website](http://hoard.org/)
- jemalloc - General purpose malloc(3) implementation that emphasizes fragmentation avoidance and scalable concurrency support. [BSD] [website](http://jemalloc.net/)
- memory - STL compatible C++ memory allocator library. [ZLib]
- memory-allocators - Custom memory allocators to improve the performance of dynamic memory allocation. [MIT]
- mimalloc - A compact general purpose allocator with excellent performance. [MIT]
- rpmalloc - Cross platform lock free thread caching 16-byte aligned memory allocator implemented in C. [PublicDomain]
- snmalloc - Message passing based high-performance allocator. [MIT]
- TCMalloc - Google's fast, multi-threaded malloc implementation. [Apache-2.0] [website](https://google.github.io/tcmalloc/)
- buddy_alloc - A single header buddy memory allocator for C with bounded allocation costs. [0BSD]
- tgc - A tiny garbage collector for C written in \~500 LOC. [BSD]
- Mesh - A memory allocator that automatically reduces the memory footprint of C/C++ applications. [Apache-2.0]
- rpmalloc - A public domain cross-platform lock-free thread-caching 16-byte aligned memory allocator. [PublicDomain]
- TLSF - Two-Level Segregated Fit memory allocator, a general purpose dynamic memory allocator. [BSD]
-
Miscellaneous
- American fuzzy lop - fuzz - Crazy fuzzing tool that automatically discovers bugs given time and minimal example input. [Apache2]
- Cheat Sheets of HackingCPP - Cool cheat sheets and infographics for algorithms, views, containers, randomness, etc.
- FastFormat - Fast, Safe C++ Formatting inspired by log4j and Pantheios. [Simplified BSD]
- libusb - A universal USB library which allows for portable access to USB devices. [LGPL2]
- Remote Call Framework - Inter-process communication framework for C++. [GPL2/Proprietary]
- Scintilla - A free source code editing component. [MIT]
- sigslot - C++ Signal/Slot Library. [PublicDomain]
- StrTk - A C++ library consisting of high performance string processing routines. [MIT]
- Tulip Indicators - A C library of over 100 financial technical analysis indicators. [LGPL]
- ZBar - A barcode scanner library, which allows to scan photos/images/video streams for barcodes and return their value. [LGPL2]
- casacore - A set of c++ core libraries derived from aips++. [LGPL]
- access_profiler - A tool to count accesses to member variables in c++ programs. [GPL3]
- Argon2 - The password hash Argon2, winner of PHC. [CC0/Apache2]
- AsmJit - Low-latency machine code generation. [Zlib] [website](https://asmjit.com)
- Boost.Signals2 - An implementation of a managed signals and slots system. [Boost] [website](https://boost.org/libs/signals2)
- casacore - A set of c++ core libraries derived from aips++. [LGPL]
- CCTZ - a C++ library for translating between absolute and civil times using the rules of a time zone. [Apache-2.0]
- Concord - A Discord API wrapper library written in C. [MIT] [website](https://cogmasters.github.io/concord)
- CPPItertools - Range-based for loop add-ons inspired by the Python builtins and itertools library. [BSD-2-Clause]
- CPP-JWT - JSON Web Token library for C++. [MIT]
- cpp-lazy - a fast and easy lazy evaluation library for C++11/14/17/20. [MIT]
- CRCpp - Easy to use and fast C++ CRC library. [BSD-3-Clause]
- cxx-prettyprint - A pretty printing library for C++ containers. [Boost]
- date - A date and time library based on the C++11/14/17 <chrono> header. [MIT] [website](https://howardhinnant.github.io/date/date.html)
- D++ (DPP) - A lightweight, high performance and scalable C++ library for creating Discord Bots. [Apache2] [website](https://dpp.dev)
- DynaMix - A library which allows you to compose and modify objects at run time. [MIT]
- emio - A safe and fast high-level and low-level character input/output library. [MIT]
- faker-cxx - C++20 Faker library for generating fake (but realistic) data for testing and development. [MIT]
- fast_float - Fast, Exact C++ from_chars, 4x to 10x faster than strtod, part of GCC 12, Chromium, Redis, Webkit/Safari. [Apache2/BSL-1.0/MIT]
- fast_io - Significantly faster input/output for C++20. [MIT]
- fccf - A command-line tool that recursively searches a directory to find C/C++ source code matching a search string. [MIT]
- {fmt} - Small, safe and fast formatting library for C++. [Simplified BSD] [website](https://fmt.dev)
- gcc-poison - A simple header file for developers to ban unsafe C/C++ functions from applications.
- happly - A C++ header-only parser for the PLY file format. Parse .ply happily! [MIT]
- hedley - A C/C++ header file designed to smooth over some platform-specific annoyances. [website](https://nemequ.github.io/hedley/)
- Hexi - Header-only, lightweight C++ library for binary streaming & serialization. [Apache-2.0/MIT]
- HighwayHash - Fast strong hash functions: SipHash/HighwayHash. [Apache-2.0]
- inja - A Template Engine for Modern C++. [MIT]
- Jinja2С++ - almost full-conformance template engine implementation. [website](https://jinja2cpp.github.io/)
- jwt-cpp - A header only library for creating and validating JSON web tokens in C++. [MIT]
- Kangaru - A dependency injection container for C++11 and C++14. [MIT]
- Klib - Small and lightweight implementations of common algorithms and data structures. [MIT]
- KOMIHASH - Very fast, high-quality hash function, discrete-incremental and streamed hashing-capable. [MIT]
- libcpuid - A small C library for x86 CPU detection and feature extraction. [BSD]
- libenvpp - A modern C++ library for type-safe environment variable parsing. [Apache-2.0]
- libevil - The Evil License Manager. [GPLv3]
- libnih - A lightweight library of C functions and structures. [GPL2.1]
- libONVIF - Yet another ONVIF library. [GPL-3.0]
- libpopcnt - Fast C/C++ bit population count library. [BSD-2-Clause]
- libsigc++ - A typesafe callback system for standard C++. [LGPL] [website](https://libsigcplusplus.github.io/libsigcplusplus)
- Mach7 - A Pattern-matching library for C++. [BSD]
- minja.hpp - A minimalistic C++ Jinja templating engine for LLM chat templates. [MIT]
- MPark.Variant - C++17 `std::variant` for C++11/14/17. [BSL-1.0]
- MPH - C++20 [Minimal] Static Perfect Hash library. [MIT]
- PEGTL - The Parsing Expression Grammar Template Library. [MIT]
- Pipes - Pipelines for expressive code on collections in C++. [MIT]
- pprint - Pretty Printer for Modern C++. [MIT]
- pspsdk - An open-source SDK for PSP homebrew development. [BSD/GNU GPL3]
- QtVerbalExpressions - This Qt lib is based off of the C++ VerbalExpressions library. [MIT]
- RapidFuzz - Rapid fuzzy string matching in C++ using the Levenshtein Distance. [MIT] [website](https://rapidfuzz.github.io/rapidfuzz-cpp/)
- rapidhash - Very fast, high quality, platform-independent hashing algorithm. [BSD-2-Clause]
- Reaction - A lightweight, header-only reactive programming framework leveraging modern C++20 features for building efficient dataflow applications. [MIT]
- reproc - A cross-platform (C99/C++11) process library. [MIT]
- SafetyHook - C++23 procedure hooking library. [BSL-1.0]
- scnlib - scanf for modern C++. [Apache-2.0] [website](https://v1.scnlib.dev/)
- SDS - Simple Dynamic Strings library for C. [BSD]
- semver.c - A semver parser and render in ANSI C. [MIT]
- SLJIT - Platform independent low-level JIT compiler. [BSD] [website](https://zherczeg.github.io/sljit/)
- palacaze/sigslot - A simple, header only, C++14 signal-slots implementation [MIT]
- simdzone - Fast and standards compliant DNS zone parser. [BSD-3-Clause]
- SimpleSignal - High performance C++11 signals. [PublicDomain]
- Stage - Mobile robot simulator. [GPL2]
- stb - A range of single-file libraries for C/C++. [PublicDomain]
- stdman - A tool that parses archived HTML files from [cppreference](https://cppreference.com) and generates groff-formatted manual pages for Unix-based systems. [MIT]
- StringZilla - the Godzilla of string libraries, splitting, sorting, and shuffling large textual datasets faster than you can say "Tokyo Tower". [Apache-2.0]
- tgbotxx - Telegram Bot C++ Library. [MIT]
- Tulip Indicators - A C library of over 100 financial technical analysis indicators. [LGPL]
- ub-canaries - A collection of C/C++ programs that try to get compilers to exploit undefined behavior.
- value-category-cheatsheet
- VarTypes - A feature-rich, object-oriented framework for managing variables in C++ / Qt4. [LGPL]
- xxHash - Extremely fast non-cryptographic hash algorithm. [BSD-2-Clause] [website](https://xxhash.com/)
- xxhash_cpp - Port of the xxhash library to C++17. [BSD-2-Clause]
- Remote Call Framework - Inter-process communication framework for C++. [GPL2/Proprietary]
- sigslot - C++ Signal/Slot Library. [PublicDomain]
- mio - Cross-platform C++11 header-only library for memory mapped file IO. [MIT]
- American fuzzy lop - fuzz - Crazy fuzzing tool that automatically discovers bugs given time and minimal example input. [Apache2]
- xjb - A fast float to string algorithm. [Apache-2.0]
- Better String - An alternative to the string library for C which is more functional and does not have buffer overflow overrun problems. Also includes a C++ wrapper. [BSD, GPL2]
- Dragonbox - Reference implementation of a new float-to-string conversion algorithm in C++. [Apache2/BSL-1.0]
- Gear-Lib - A collection of basic libraries in POSIX C for embedded and network service development. [MIT]
- single_file_libs - C/C++ open-source libraries with minimal dependencies. [Various]
- spy - A C++17 constexpr library for detecting OS, compiler, architecture, and SIMD at compile time. [MIT]
- tinydir - A lightweight, portable, and easy to integrate C directory and file reader. [BSD-2-Clause]
- Cello - Higher level programming in C, including generic data structures and polymorphism. [BSD-2-Clause] [website](http://libcello.org/)
- dyno - A C++ library for runtime polymorphism with value semantics. [Boost]
- PolyHook - A C++ x86/x64 hooking library. [MIT]
- Verdigris - A header-only library that allows using Qt without the need for moc. [MIT]
- Flicks - A unit of time defined by Facebook/Oculus for exact representation of common frame rates. [BSD]
- Linq - Provides a LINQ syntax for list comprehension in C++. [Boost]
- libcorrect - A C library for convolutional codes and Reed-Solomon error correction. [BSD-3-Clause]
- libfsm - A library for building and executing finite state machines, including regex and glob. [BSD-2-Clause]
- origin - A C++ library for concepts, diagnostics, and other foundational utilities.
- SIMD Everywhere - Implementations of SIMD instruction sets for systems which don't natively support them. [MIT]
- The RaBitQ Library - A lightweight library for the RaBitQ algorithm. [Apache-2.0] [website](https://vectordb-ntu.github.io/RaBitQ-Library/)
- ZXing - An open-source, multi-format 1D/2D barcode image processing library implemented in Java, with ports to other languages. [Apache]
Programming Languages
Categories
Miscellaneous
107
Networking
70
Math
61
Websites
61
Frameworks
53
Debug
51
Concurrency
47
Database
44
JSON
43
Image Processing
41
Compression
37
Scripting
35
GUI
35
CLI
35
Graphics
32
Cryptography
31
Articles
31
Containers
28
Game Engine
28
Build Systems
27
Audio
27
Machine Learning
25
Other Awesome Projects
24
Logging
22
Serialization
21
Integrated Development Environment
20
Web Application Framework
20
Inter-process communication
19
Reflection
19
Artificial Intelligence
18
Physics
17
Online Compiler
17
Static Code Analysis
16
Memory Allocation
15
XML
15
Regular Expression
14
Compiler
14
Weblogs
13
Videos
13
PDF
13
Configuration
12
Multimedia
12
CSV
10
Asynchronous Event Loop
10
Robotics
10
Video
9
Biology
8
Scientific Computing
8
Chemistry
7
Internationalization
7
Yaml
7
Office Open XML
7
Coding Style
7
Font
6
DSP
6
Standard Libraries
6
Coding Style Tools
6
Documentation
6
Coding Standards
5
Debugger
5
Data visualization
5
Sorting
4
Talks
4
BitTorrent
4
Serial Port
3
Virtual Machines
3
Books
3
API Design
2
Graph
2
Podcasts
2
Sub Categories
Keywords
cpp
193
c-plus-plus
109
c
89
cpp17
64
header-only
62
cross-platform
42
cpp11
38
json
37
cplusplus
36
cpp20
35
library
34
python
31
cpp14
30
linux
24
windows
23
machine-learning
22
serialization
22
simd
21
opengl
20
cmake
20
http
18
game-engine
18
cpp-library
18
parser
17
modern-cpp
17
gamedev
17
game-development
17
reflection
16
deep-learning
14
embedded
14
http-server
14
graphics
13
audio
13
javascript
12
java
12
clang
12
logging
11
database
11
performance
11
cuda
11
c-plus-plus-11
11
no-dependencies
11
scientific-computing
11
high-performance
11
data-structures
11
csv
10
networking
10
compression
10
neon
10
gui
10