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
-
Compiler
- AMD C++ Compiler - Developed by AMD.
- Intel C++ Compiler - Developed by Intel.
- sierra - A CISC-oriented programming language focused on creating maintainable programs.
- movfuscator - The single instruction C compiler, compiling programs into only mov instructions. [MIT]
-
Compression
- bzip2 - A freely available, patent free, high-quality data compressor. [BSD]
- PhysicsFS - A library to provide abstract access to various archives. It is intended for use in video games, and the design was somewhat inspired by Quake 3's file subsystem. [zlib]
- LZHAM - Lossless data compression library with a compression ratio similar to LZMA but with much faster decompression. [BSD]
- LZMA - The default and general compression method of 7z format. [PublicDomain] [website](https://www.7-zip.org)
- ZLib - A very compact compression library for data streams. [zlib]
- ZZIPlib - Provides read access on ZIP-archives. [MPL/LGPL]
- LZMAT - An extremely fast real-time lossless data compression library. [GPL]
- bit7z - A C++ static library offering a clean and simple interface to the 7-zip shared libraries. [MPL2]
- Brotli - Brotli compression format. Developed by Google. [MIT]
- bzip2 - A freely available, patent free, high-quality data compressor. [BSD]
- FastLZ - Small & portable byte-aligned LZ77 compression. [MIT]
- FiniteStateEntropy - New generation entropy codecs : Finite State Entropy and Huff0.
- heatshrink - data compression library for embedded/real-time systems [ISC]
- Kanzi - a modern, modular, portable and efficient lossless data compressor implemented in C++. [Apache-2.0]
- libarchive - Multi-format archive and compression library. [New BSD] [website](http://www.libarchive.org/)
- LZ4 - Extremely Fast Compression algorithm. [BSD] [website](http://www.lz4.org/)
- LZFSE - LZFSE compression library and command line tool. Developed by Apple.
- miniz - Single C source file Deflate/Inflate compression library with zlib-compatible API, ZIP archive reading/writing, PNG writing. [MIT]
- minizip-ng - Fork of the popular zip manipulation library found in the zlib distribution. [zlib]
- Rapidgzip - Gzip Decompression and Random Access for Modern Multi-Core Machines. [Apache-2/MIT]
- smaz - Small strings compression library. [BSD]
- Snappy - A fast compressor/decompressor. [BSD]
- zlib-ng - zlib for the "next generation" systems. Drop-In replacement with some serious optimizations. [zlib]
- zstd - Zstandard - Fast real-time compression algorithm. Developed by Facebook. [BSD]
- ZZIPlib - Provides read access on ZIP-archives. [MPL/LGPL]
- LZHAM - Lossless data compression library with a compression ratio similar to LZMA but with much faster decompression. [BSD]
- bzip3 - A better and stronger spiritual successor to BZip2. [LGPL]
- cmix - A lossless data compression program that aims for the highest compression ratios at the cost of speed. [GPL-3.0]
- LZSSE-SIMDe - A portable SIMD implementation of LZSSE compression. [BSD-2-Clause]
- Zopfli - A compression library that performs very good but slow deflate/zlib compression. [Apache-2.0]
- OpenZL - A novel data compression framework. [BSD] [website](https://openzl.org/)
- ZXC - High-performance asymmetric lossless compression. [BSD-3-Clause]
- FSST - efficient random-access string compression. [MIT]
- LZAV - Fast In-Memory Data Compression Algorithm. [MIT]
- Minizip - Zlib with latest bug fixes that supports PKWARE disk spanning, AES encryption, and IO buffering. [zlib]
- KArchive - A library for creating, reading, writing and manipulating file archives like zip and tar. It also provides transparent compression and decompression of data, using formats like gzip, via a subclass of QIODevice. [LGPL]
- LZMA - The default and general compression method of 7z format. [PublicDomain] [website](https://www.7-zip.org)
-
Concurrency
- OpenCL - The open standard for parallel programming of heterogeneous systems.
- RaftLib - The RaftLib C++ library, streaming/dataflow concurrency via C++ iostream-like operators. [Apache2]
- STAPL - A C++ parallel programming framework designed to work on both shared and distributed memory parallel computers. [BSD]
- alpaka - Abstraction library for parallel kernel acceleration. [LGPLv3+]
- ArrayFire - A general purpose GPU library. [BSD]
- Async++ - A lightweight concurrency framework for C++11, inspired by the Microsoft PPL library and the N3428 C++ standard proposal. [MIT]
- Boost.Compute - A C++ GPU Computing Library for OpenCL. [Boost] [website](https://boost.org/libs/compute)
- Bolt - A C++ template library optimized for GPUs. [Apache2]
- BS::thread_pool - A fast, lightweight, and easy-to-use C++17 thread pool library [MIT]
- Channel - Thread-safe container for sharing data between threads. [MIT]
- ck - Concurrency primitives, safe memory reclamation mechanisms and non-blocking data structures. [BSD]
- concurrentqueue - A fast multi-producer, multi-consumer lock-free concurrent queue for C++11. [BSD,Boost]
- Coros - An easy-to-use and fast library for task-based parallelism, utilizing coroutines. [BSL-1.0]
- CUB - CUB provides state-of-the-art, reusable software components for every layer of the CUDA programming mode. [New BSD]
- cuda-api-wrappers - Lightweight, Modern-C++ wrappers for the CUDA GPU programming runtime API. [BSD]
- cupla - C++ API to run CUDA/C++ on OpenMP, Threads, TBB, ... through Alpaka. [LGPLv3+]
- C++React - A reactive programming library for C++11. [Boost]
- FiberTaskingLib - Task-based multi-threading library that supports task graphs with arbitrary dependencies. [Apache]
- Intel Games Task Scheduler - A task scheduling framework designed for the needs of game developers. [MIT]
- Intel TBB - Intel® Threading Building Blocks. [Apache2]
- junction - A library of concurrent data structures in C++. [BSD]
- Kokkos - A performance portable programming model for parallel execution and memory abstraction. [BSD]
- libcds - A C++ library of Concurrent Data Structures. [BSD]
- Libclsph - An OpenCL based GPU accelerated SPH fluid simulation library. [MIT]
- libfork - A bleeding-edge, lock-free, wait-free, continuation-stealing tasking library built on C++20's coroutines. [MPL-2.0] [website](https://conorwilliams.github.io/libfork/)
- marl - Marl is a hybrid thread / fiber task scheduler written in C++ 11. [Apache-2.0]
- moderngpu - moderngpu is a productivity library for general-purpose computing on GPUs. It is a header-only C++ library written for CUDA. The unique value of the library is in its accelerated primitives for solving irregularly parallel problems. [FreeBSD & Copyright, Sean Baxter]
- NCCL - Optimized primitives for collective multi-GPU communication. [BSD]
- Neco - Concurrency library for C (coroutines). [MIT]
- rotor - Event loop friendly C++ actor micro framework. [MIT]
- SObjectizer - An implementation of Actor, Publish-Subscribe, and CSP models in one rather small C++ framework. [BSD-3-Clause]
- Quantum - A powerful C++ coroutine dispatcher framework built on top of [Boost.Coroutine2](https://boost.org/libs/coroutine2).
- readerwriterqueue - A fast single-producer, single-consumer lock-free queue for C++. [BSD]
- stdgpu - Efficient STL-like Data Structures on the GPU. [Apache2]
- Taskflow - A General-purpose Parallel and Heterogeneous Task Programming System. (renamed from Cpp-Taskflow) [MIT]
- ThreadPool - A simple C++11 Thread Pool implementation [zlib]
- transwarp - A header-only C++ library for task concurrency. [MIT]
- VexCL - A C++ vector expression template library for OpenCL/CUDA. [MIT]
- STAPL - A C++ parallel programming framework designed to work on both shared and distributed memory parallel computers. [BSD]
- concurrencpp - A general concurrency library containing tasks, executors, timers and C++20 coroutines to rule them all.
- dispenso - A high-performance C++ library for parallel programming with thread pools, parallel for loops, futures, task graphs, and concurrent containers. [MIT]
- libcu++ - The NVIDIA C++ Standard Library, providing heterogeneous implementation of C++ Standard Library facilities. [Apache-2.0]
- nvthreads - A library for enabling efficient and persistent threading in C/C++. [LGPL-2.1]
- Intel Parallel STL - Intel® implementation of C++17 STL for C++11 and above. [Apache2]
- libdill - Introduces structured concurrency in C. [MIT]
- libdispatch - Grand Central Dispatch (GCD), developed by Apple Inc., is a task parallelism technology based on the thread pool pattern. libdispatch is a library that provides the implementation of GCD's services. [Apache-2.0] [website](https://apple.github.io/swift-corelibs-libdispatch/)
- atomic_queue - C++14 multiple-producer-multiple-consumer lock-free queues based on circular buffers and std::atomic. [MIT]
-
Configuration
- inifile-cpp - A header-only and easy to use Ini file parser for C++. [MIT]
- inih - Simple .INI file parser in C, good for embedded systems. [BSD-3-Clause]
- inih - Single header only C++ version of [inih](https://github.com/benhoyt/inih). [BSD-3-Clause]
- ini-cpp - Single header only C++ version, with some handy read/write interface, extend from [inih](https://github.com/benhoyt/inih). [BSD-3-Clause] [website](https://ssarcandy.tw/ini-cpp/index.html)
- iniparser - INI file parser. [MIT]
- inipp - Simple header-only C++ ini parser and generator. [MIT]
- libconfig - C, C++ library for processing structured configuration files. [LGPL-2.1] [website](https://hyperrealm.github.io/libconfig/)
- libconfuse - Small configuration file parser library for C. [ISC]
- mINI - INI file reader and writer. [MIT]
- simpleini - Cross-platform C++ library providing a simple API to read and write INI-style configuration files. [MIT]
- toml++ - Header-only TOML parser and serializer for C++17 and later. [MIT] [website](https://marzer.github.io/tomlplusplus/)
- toml11 - a C++11 (or later) header-only toml parser/encoder depending only on C++ standard library. [MIT]
-
Containers
- C++ B-tree - A template library that implements ordered in-memory containers based on a B-tree data structure. [Apache2]
- dynamic_bitset - Simple Useful Libraries: C++17/20 header-only dynamic bitset. [MIT] [website](https://pinam45.github.io/dynamic_bitset/)
- fixed-containers - Header-only C++20 library that provides fixed capacity constexpr containers. [MIT]
- flat_hash_map - A very fast flat hashtable with Fibonacci hashing.
- frozen - a header-only, constexpr alternative to gperf for C++14 users. [Apache-2.0]
- Hashmaps - Implementation of open addressing hash table algorithms in C++. [MIT]
- hat-trie - C++ implementation of a fast and memory efficient HAT-trie. [MIT]
- Hopscotch map - A fast header-only hash map which uses hopscotch hashing for collisions resolution. [MIT]
- librb - C implementation of ring (circular) buffer, with full thread awareness that allows for concurrent read/write and can automatically grow in size when needed. [BSD] [website](https://librb.bofc.pl/)
- LSHBOX - A c++ toolbox of locality-sensitive hashing (LSH), provides several popular LSH algorithms, also support Python and MATLAB. [GPL]
- parallel-hashmap - A family of header-only, very fast and memory-friendly hashmap and btree containers [Apache2] [website](https://greg7mdp.github.io/parallel-hashmap/)
- PGM-index - A data structure that enables fast lookup, predecessor, range searches and updates in arrays of billions of items using orders of magnitude less space than traditional indexes. [Apache2] [website](https://pgm.di.unipi.it)
- plf::colony - An unordered "bag"-type container which outperforms std containers in high-modification scenarios while maintaining permanent pointers to non-erased elements regardless of insertion/erasure. [zLib] [website](http://www.plflib.org/colony.htm)
- plf::list - A std::list implementation which removes range splicing in order to enable cache-friendlier structure, yielding significant performance gains. [zLib] [website](http://www.plflib.org/list.htm)
- plf::stack - A replacement container for the std::stack container adaptor, with better performance than any std container in a stack context. [zLib] [website](http://www.plflib.org/stack.htm)
- robin-hood-hashing - Fast & memory efficient hashtable based on robin hood hashing for C++14. [MIT]
- robin-map - Fast hash map and hash set using robin hood hashing. [MIT]
- sparsepp - A fast, memory efficient hash map for C++. [BSD 3-clause]
- sqlitemap - Persistent map backed by SQLite. [MIT]
- st_tree - A fast and flexible c++ template class for tree data structures. [Apache-2.0]
- svector - Compact SVO optimized vector for C++17 or higher. [MIT]
- tree.hh - An STL-like C++ header-only tree library. [GPL2+]
- unordered_dense - A fast & densely stored hashmap and hashset based on robin-hood backward shift deletion. [MIT]
- ring_span lite - A simplified implementation of Arthur O'Dwyer's ring_span implementation ie. a circular buffer view. [MIT]
- CRoaring - Roaring bitmaps in C (and C++), with SIMD optimizations. [Apache-2.0]
- fifo_map - A FIFO-ordered associative container for C++. [MIT]
- ordered-map - A C++ hash map and hash set which preserves the order of insertion. [MIT]
- marisa-trie - Matching Algorithm with Recursively Implemented StorAge. [BSD-2-Clause/LGPL-2.1]
-
Cryptography
- Bcrypt - A cross platform file encryption utility. Encrypted files are portable across all supported operating systems and processors. [BSD]
- BeeCrypt - A portable and fast cryptography library. [LGPLv2.1+]
- Botan - A crypto library for C++. [BSD-2]
- GnuPG - A complete and free implementation of the OpenPGP standard. [GPL]
- Libgcrypt - A general purpose cryptographic library originally based on code from GnuPG. [LGPLv2.1+]
- LibreSSL - A free version of the SSL/TLS protocol forked from OpenSSL in 2014. [?]
- Nettle - A low-level cryptographic library. [LGPL]
- Themis - crypto library for painless data security, providing symmetric and asymmetric encryption, secure sockets with forward secrecy, for mobile and server platforms. [Apache2]
- Bcrypt - A cross platform file encryption utility. Encrypted files are portable across all supported operating systems and processors. [BSD]
- BeeCrypt - A portable and fast cryptography library. [LGPLv2.1+]
- Crypto++ - A free C++ class library of cryptographic schemes. [Boost] [website](http://www.cryptopp.com/)
- digestpp - C++11 header-only message digest (hash) library. [PublicDomain]
- Libgcrypt - A general purpose cryptographic library originally based on code from GnuPG. [LGPLv2.1+]
- libsodium - P(ortable|ackageable) NaCl-based crypto library, opinionated and easy to use. [ISC]
- libhydrogen - A lightweight, secure, easy-to-use crypto library suitable for constrained environments. [ISC]
- LibTomCrypt - A fairly comprehensive, modular and portable cryptographic toolkit. [WTFPL]
- mbedTLS - An open source, portable, easy to use, readable and flexible SSL library, previously known as PolarSSL. [Apache2] [website](https://tls.mbed.org/)
- Nettle - A low-level cryptographic library. [LGPL]
- OpenSSL - A robust, commercial-grade, full-featured, and Open Source cryptography library. [Apache] [website](http://www.openssl.org/)
- retter - A collection of hash functions, ciphers, tools, libraries, and materials related to cryptography.
- sha1collisiondetection - Library and command line tool to detect SHA-1 collision in a file. [MIT]
- Tink - A multi-language, cross-platform library that provides cryptographic APIs that are secure, easy to use correctly, and hard(er) to misuse. [Apache-2.0]
- Tiny AES in C - Small portable AES128/192/256 in C. [PublicDomain]
- HEhub - A library for homomorphic encryption and its applications. [Apache2]
- s2n - An implementation of the TLS/SSL protocols. [Apache]
- tiny-ECDH-c - Small and portable implementation of the ECDH key agreement protocol in C. [PublicDomain]
- Qt-Secret - Simple encryption library based on Qt for C++ projects. [LGPL]
- micro-ecc - A small and fast ECDH and ECDSA implementation for 8-bit, 32-bit, and 64-bit processors. [BSD-2-Clause]
- crypto-algorithms - Basic implementations of standard cryptography algorithms (AES, SHA, etc.) in C. [PublicDomain]
- aes-stream - A fast AES-based stream cipher for C. [ISC]
- stduuid - A C++17 cross-platform implementation for UUIDs. [MIT]
-
CSV
- commata - Just another header-only C++17 CSV parser. [Unlicense]
- csv2 - Fast CSV parser for modern C++. [MIT]
- Csv::Parser - Compile-time and runtime CSV parser written in C++17. [Zlib]
- Fast C++ CSV Parser - Small, easy-to-use and fast header-only library for reading CSV files. [BSD-3-Clause]
- Glaze - High performance, header only, CSV library with reflection support. [MIT]
- lazycsv - A fast, lightweight and single-header csv parser for modern C++. [MIT]
- rapidcsv - An easy-to-use, header-only C++ CSV parser library. [BSD-3-Clause]
- ssp - A header only "csv" parser which is fast and versatile with modern C++ api. [MIT]
- Vince's CSV Parser - A fast, self-contained, streaming C++17 CSV parser with optional type-casting and statistics. [MIT]
- zsv - The world's fastest (simd) CSV parser, with an extensible CLI. [MIT]
-
Database
- DuckDB - in-process SQL OLAP Database Management System. [MIT]
- MySQL++ - A C++ wrapper for MySQL's C API. [LGPL]
- ODB - An open-source, cross-platform, and cross-database object-relational mapping (ORM) system for C++. [GPLv2]
- SQLite - A completely embedded, full-featured relational database in a few 100k that you can include right into your project. [PublicDomain]
- upscaledb - An embedded "typed" key/value store with a built-in query interface. [GPLv3]
- ClickHouse - C++ client for ClickHouse DBMS. [Apache2]
- CrossDB - Ultra High-performance Lightweight Embedded and Server OLTP RDBMS. [MPL-2.0] [website](https://crossdb.org/)
- hiberlite - C++ Object-relational mapping for sqlite3. [BSD]
- Hiredis - A minimalistic C client library for the Redis database. [BSD]
- Infinity - The AI-native database built for LLM applications, providing incredibly fast vector and full-text search. [Apache2]
- Kuzu - Embeddable property graph database management system built for query speed and scalability. Implements Cypher. [MIT] [website](https://kuzudb.com/)
- LevelDB - A fast key-value storage library written at Google that provides an ordered mapping from string keys to string values. [BSD]
- libpg_query - C library for accessing the PostgreSQL parser outside of the server environment. [BSD-3-Clause]
- libpqxx - The official C++ client API for PostgreSQL. [BSD-3-Clause]
- mgclient - C/C++ Memgraph Client. [Apache2]
- MongoDB C Driver - MongoDB client library for C. [Apache2]
- MongoDB C++ Driver - C++ driver for MongoDB. [Apache2]
- MongoDB Libbson - A BSON utility library. [Apache2]
- nanodbc - A small C++ wrapper for the native C ODBC API. [MIT]
- redis3m - Wrapper of hiredis with clean C++ interface, supporting sentinel and ready to use patterns. [Apache2]
- Reindexer - Embeddable, in-memory, document-oriented database with a high-level Query builder interface. [Apache2] [website](https://reindexer.io/)
- RocksDB - Embedded key-value store for fast storage from facebook. [BSD]
- SimDB - High performance, shared memory, lock free, cross platform, single file, minimal dependencies, C++11 key-value store. [Apache2]
- SOCI - A database abstraction layer for C++. [Boost]
- Speedb - Community-led project: A RocksDB compliant high performance scalable embedded key-value store. [Apache2]
- sqlgen - A reflection-based ORM and SQL query generator for C++-20, similar to Python's SQLAlchemy/SQLModel or Rust's Diesel. [MIT]
- SQLiteC++ - SQLiteC++ (SQLiteCpp) is a smart and easy to use C++ SQLite3 wrapper. [MIT]
- sqlite_modern_cpp - Header only C++14 wrapper around sqlite library. [MIT]
- sqlite_orm - SQLite ORM light header only library for modern C++. [AGPL + paid MIT]
- sqlpp11 - A type safe embedded domain specific language for SQL queries and results in C++. [BSD-2-Clause]
- TidesDB - High-performance, durable, transactional embedded storage engine designed for flash and RAM optimization. [MPL-2.0] [website](https://tidesdb.com/)
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