An open API service indexing awesome lists of open source software.

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/)
Sub Categories