C/C++

repo: fffaraz/awesome-cpp
category: Programming Languages related: C


Awesome C++ Awesome Track Awesome List

A curated list of awesome C++ (or C) frameworks, libraries, resources, and shiny things. Inspired by awesome-... stuff.

Standard Libraries

C++ Standard Library - including STL Containers, STL Algorithm, STL Functional, etc.

Frameworks

C++ generic frameworks and libraries.

  • abseil-cpp - Abseil C++ Common Libraries. [Apache2]
  • Apache C++ Standard Library - STDCXX, A collection of algorithms, containers, iterators, and other fundamental components. [retired] [Apache2]
  • APR - Apache Portable Runtime. Another library of cross-platform utility functions. [Apache2]
  • ASL - Adobe Source Libraries provides peer-reviewed and portable C++ source libraries. [MIT]
  • AUI - Declarative UI toolkit for C++20. [MPL2]
  • Boost :zap: - A large collection of generic C++ libraries. [Boost] website
  • BDE - The BDE Development Environment from Bloomberg Labs. [Apache2]
  • C++ Workflow :zap: - C++ Parallel Computing and Asynchronous Networking Engine. [Apache2]
  • CGraph - A cross-platform DAG framework based on C++ without any 3rd-party. [MIT]
  • Cinder - A community-developed, free and open source library for professional-quality creative coding. [BSD]
  • Coost - A tiny boost library in C++11. [MIT]
  • Cxxomfort - A small, header-only library that backports various facilities from more recent C++ Standards to C++03 and later. [MIT]
  • Dlib :zap: - A toolkit for making real world machine learning and data analysis applications in C++. [Boost] website
  • EASTL - Electronic Arts Standard Template Library. [BSD]
  • ETL - Embedded Template Library. [MIT]
  • ffead-cpp - Framework for Enterprise Application Development. [Apache2]
  • Folly - An open-source C++ library developed and used at Facebook. [Apache2]
  • FunctionalPlus - Functional Programming Library for C++. Write concise and readable C++ code. [MIT]
  • GLib - GLib provides the core application building blocks for libraries and applications written in C. [LGPL]
  • itlib - A collection of std-like single-header C++ libraries [MIT]
  • JUCE - An all-encompassing C++ class library for developing cross-platform software. [Core-Module: ISC, Rest: GPL2/GPL3/Proprietary] website
  • Kigs framework - A free and open source C++ modular multi-purpose cross platform RAD framework. [MIT] website
  • libPhenom - libPhenom is an eventing framework for building high performance and high scalability systems in C. [Apache2]
  • LibSourcey - C++11 evented IO for real-time video streaming and high performance networking applications. [LGPL]
  • LibU - A multiplatform utility library written in C. [BSD]
  • libxutils - Simple and yet powerful cross-platform C library providing data structures, algorithms and much more. [MIT]
  • Loki - A C++ library of designs, containing flexible implementations of common design patterns and idioms. [MIT]
  • MiLi - Minimal headers-only C++ Library. [Boost]
  • OpenFrameworks - A cross platform open source toolkit for creative coding in C++. [MIT] website
  • PhotonLibOS - A comprehensive C++ framework featuring efficient user-space threading (coroutine with work-stealing), I/O, networking, RPC, HTTP, etc., and used extensively in Alibaba. It is compatible with C++ 14/17/20/23, Linux, MacOS, x86-64, ARM64, gcc and clang. [Apache2] website
  • Qt :zap: - A cross-platform application and UI framework. [GPL/LGPL/Proprietary] website
  • Reason - A cross platform framework designed to bring the ease of use of Java, .Net, or Python to developers who require the performance and strength of C++. [GPL2]
  • ROOT - A set of OO frameworks with all the functionality needed to handle and analyze large amounts of data in a very efficient way. Used at CERN. [LGPL]
  • rpp - Minimal Rust-inspired C++20 STL replacement. [MIT]
  • SaneCppLibraries - a set of C++ platform abstraction libraries for macOS, Windows and Linux. [MIT] website
  • Seastar - An advanced, open-source C++ framework for high-performance server applications on modern hardware. [Apache-2.0 License] seastar.io
  • sfl library - a header-only C++11 library that provides several new or lesser-known containers, some of which can be used in C++20 constant expressions. [zlib]
  • Siv3D - Siv3D (OpenSiv3D) is a C++20 framework for creative coding (2D/3D games, media art, visualizers, and simulators). [MIT] website
  • STLport - An exemplary version of STL. [Free]
  • STXXL - Standard Template Library for Extra Large Data Sets. [Boost]
  • tbox - A glib-like multi-platform c library. [Apache2] website
  • Ultimate++ - A C++ cross-platform rapid application development framework. [BSD]
  • Windows Template Library - A C++ library for developing Windows applications and UI components. [Public]
  • WUI - WUI (Window User Interface Library) is a cross-platform library for creating graphical user interfaces in C++17+ [Boost]website
  • xtd - Modern C++20 framework to create console (CLI), forms (GUI) and unit tests (xUnit) applications on Windows, macOS, Linux, iOS, Android, FreeBSD and Haiku. [MIT]
  • Yomm2 - Fast, Orthogonal, Open multi-methods. Supersedes Yomm11 [Boost]

Artificial Intelligence

  • ANNetGPGPU - A GPU (CUDA) based Artificial Neural Network library. [LGPL]
  • btsk - Game Behavior Tree Starter Kit. [zlib]
  • Evolving Objects - A template-based, ANSI-C++ evolutionary computation library which helps you to write your own stochastic optimization algorithms insanely fast. [LGPL]
  • frugally-deep - Header-only library for using Keras models in C++. [MIT]
  • Genann - Simple neural network library in C. [zlib]
  • MXNet - Lightweight, Portable, Flexible Distributed/Mobile Deep Learning with Dynamic, Mutation-aware Dataflow Dep Scheduler; for Python, R, Julia, Scala, Go, JavaScript and more. website
  • PyTorch - Tensors and Dynamic neural networks in Python with strong GPU acceleration. website
  • flashlight - Flashlight is a fast, flexible machine learning library written entirely in C++. [BSD]
  • Recast/Detour - (3D) Navigation mesh generator and pathfinder, mostly for games. [zlib]
  • TensorFlow - An open source software library for numerical computation using data flow graphs. [Apache]
  • Txeo - A modern C++ wrapper for TensorFlow. [Apache]
  • oneDNN - An open-source cross-platform performance library for deep learning applications. [Apache] website
  • CNTK - Microsoft Cognitive Toolkit (CNTK), an open source deep-learning toolkit. [Boost]
  • tiny-dnn - A header only, dependency-free deep learning framework in C++11. [BSD]
  • Veles - Distributed platform for rapid Deep learning application development. [Apache]
  • Kaldi - Toolkit for speech recognition. [Apache]

Asynchronous Event Loop

  • Asio - A cross-platform C++ library for network and low-level I/O programming that provides developers with a consistent asynchronous model using a modern C++ approach. [Boost] website
  • Boost.Asio - A cross-platform C++ library for network and low-level I/O programming. [Boost] website
  • C++ Actor Framework - An Open Source Implementation of the Actor Model in C++. [BSD-3-Clause] website
  • Ichor - An event queue which focuses on thread safety and provides dependency injection. [MIT]
  • libev - A full-featured and high-performance event loop that is loosely modelled after libevent, but without its limitations and bugs. [BSD and GPL]
  • libevent - An event notification library. [BSD]
  • libhv - Cross-platform event loop library. [BSD]
  • libuv - Cross-platform asynchronous I/O. [BSD]
  • promise-cpp - Header only library that implements Promise/A+ standard. [Anti-996]
  • uvw - C++ wrapper for libuv. [MIT]
  • uv-cpp - a simple interface, high-performance network library based on C++11. [MIT]

Audio

Audio, Sound, Music, Digitized Voice Libraries

  • Amplitude Audio SDK - A cross-platform audio engine designed with the needs of games in mind. [Apache-2.0] website
  • Aubio - A library for audio and music analysis.[GPL-3.0] website
  • AudioFile - A simple C++ library for reading and writing audio files. [MIT]
  • audioFlux - A C library for audio and music analysis, feature extraction. [MIT]
  • dr_libs - Single file audio decoding libraries for C and C++. [Unlicense]
  • FMOD - An easy to use crossplatform audio engine and audio content creation tool for games. [Free for non-commercial/Commercial]
  • KFR - Fast, modern C++ DSP framework, FFT, FIR/IIR filters, Sample Rate Conversion. [GPL/Proprietary]
  • LAME - LAME is a high quality MPEG Audio Layer III (MP3) encoder. [LGPL]
  • libsndfile - C library with C++ wrapper for reading and writing files containing sampled sound through one standard library interface. [LGPL-2.1] website
  • libsoundio - C library for cross-platform real-time audio input and output. [MIT] website
  • Maximilian - C++ Audio and Music DSP Library. [MIT]
  • OpenAL - Open Audio Library - A crossplatform audio API. [BSD/LGPL/Proprietary]
  • miniaudio - Single file audio playback and capture library. [Unlicense] website
  • ni-media - C++ library for reading and writing audio files. [MIT]
  • Opus - A totally open, royalty-free, highly versatile audio codec. [BSD]
  • PortAudio - PortAudio is a free, cross-platform, open-source, audio I/O library. [MIT]
  • rnnoise - Recurrent neural network for audio noise reduction. [BSD-3-Clause]
  • SELA - SimplE Lossless Audio. [MIT]
  • SoLoud - Easy, portable audio engine for games. [zlib]
  • Speex - A free codec for free speech. Obsoleted by Opus. [BSD]
  • Tonic - Easy and efficient audio synthesis in C++. [Unlicense]
  • Vorbis - Ogg Vorbis is a fully open, non-proprietary, patent-and-royalty-free, general-purpose compressed audio format. [BSD]
  • minimp3 - Public domain, header-only MP3 decoder with clean-room implementation. [CC0]
  • Verovio - Verovio is a fast and lightweight music notation engraving library. [LGPL] website
  • Wav2Letter++ - Public domain, a fast open source speech processing toolkit written entirely in C++ and uses the ArrayFire tensor library and the flashlight machine learning library for maximum efficiency. [BSD]
  • PocketSphinx - A lightweight speech recognition engine. [BSD-2-Clause] website

Biology

Bioinformatics, Genomics, Biotech

  • BioC++ - C++ Computational Libraries for Bioinformatics. [BSD]
  • Chaste - An open source C++ library for the computational simulation of mathematical models developed for physiology and biology. [BSD]
  • libsequence - A C++ library for representing and analyzing population genetics data. [GPL]
  • SeqAn - Algorithms and data structures for the analysis of sequences with the focus on biological data. [BSD/3-clause]
  • Vcflib - A C++ library for parsing and manipulating VCF files. [MIT]
  • Wham - Structural variants (SVs) in Genomes by directly applying association tests to BAM files. [MIT]
  • htslib - A C library for reading/writing high-throughput sequencing data. [MIT/BSD] website

BitTorrent

  • jech/dht - BitTorrent DHT library in C. [MIT]
  • libtorrent (a.k.a. libtorrent-rasterbar) - An efficient feature complete C++ bittorrent implementation. [BSD]
  • LibTorrent (a.k.a. libtorrent-rakshasa) - BitTorrent library. [GPL]
  • libutp - uTorrent Transport Protocol library. [MIT]

Chemistry

Chemistry, Quantum Chemistry, Solid-State Chemistry/Physics, Geochemistry, Biochemistry

  • d-SEAMS - A molecular dynamics trajectory analysis engine in C++ and Lua with Nix. It is an acronym for Deferred Structural Elucidation Analysis for Molecular Simulations. [GPL] website
  • gromacs - A message-passing parallel molecular dynamics implementation. [GPL] website
  • Reaktoro - A computational framework in C++ and Python for modeling chemically reactive systems. [LGPL] website
  • LAMMPS - A classical molecular dynamics code with a focus on materials modeling. It's an acronym for Large-scale Atomic/Molecular Massively Parallel Simulator. [GPL] website
  • MADNESS - Multiresolution Adaptive Numerical Environment for Scientific Simulation. [GPL] website
  • MPQC - The Massively Parallel Quantum Chemistry program, MPQC, computes properties of atoms and molecules from first principles using the time independent Schrödinger equation. [GPL] website
  • Psi - An ab initio computational chemistry package. [GPL] website

CLI

Console/Terminal User Interface, Command Line Interface

  • Argh! - A minimalist, frustration-free, header-only argument handler. [BSD]
  • argparse - Argument Parser for Modern C++. [MIT]
  • args - A simple header-only C++ argument parser library. [MIT]
  • Argy - Command-Line Argument Parsing Library for Modern C++ — Simple, Intuitive, and Header-only with Zero Dependencies [MIT]
  • barkeep - Small C++ header to display async animations, counters, and progress bars. [Apache-2.0] website
  • Boost.Program_options - A library to obtain program options via conventional methods such as command line and config file. [Boost] website
  • cli - A cross-platform header only C++14 library for interactive command line interfaces (Cisco style). [Boost]
  • CLI11 - Header only single or multi-file C++11 library for simple and advanced CLI parsing. [BSD]
  • clipp - Easy to use, powerful and expressive command line argument handling for C++11/14/17 contained in a single header file. [MIT]
  • cpp-terminal - Small header only C++ library for writing multiplatform terminal applications. [MIT]
  • Ctrl+C - Crossplatform C++11 library to handle Ctrl+C event in custom functions. [MIT]
  • cxxopts - Lightweight C++ command line option parser. [MIT]
  • docopt.cpp - A library to generate option parser from docstring. [MIT/Boost]
  • FINAL CUT - Library for creating terminal applications with text-based widgets. [LGPL]
  • FTXUI - C++ Functional Terminal User Interface. [MIT]
  • gflags - Commandline flags module for C++. [BSD]
  • imtui - Immediate Mode Text-based User Interface. [MIT]
  • indicators - Activity indicators for Modern C++. [MIT]
  • linenoise - A small self-contained alternative to readline and libedit. [BSD-2-Clause]
  • linenoise-ng - A small, portable GNU readline replacement for Linux, Windows and MacOS which is capable of handling UTF-8 characters. [BSD]
  • Lyra - A simple to use, composable, command line parser for C++ 11 and beyond. [Boost]
  • Ncurses - A terminal user interface. [MIT]
  • oof - Convenient, high-performance RGB color and position control for console output. [MIT]
  • PDCurses - Public domain curses library with both source code and pre-compiled library available. [PublicDomain]
  • popl - A single-header templated command line arguments and ini file parser for C++ 11 and beyond. [MIT]
  • replxx - A readline and libedit replacement that supports UTF-8, syntax highlighting, hints, works on Unix and Windows. [BSD]
  • tabulate - Table Maker for Modern C++. [MIT]
  • TCLAP - A mature, stable and feature-rich library for defining and accessing command line arguments in ANSI C++. [MIT]
  • termbox - A C library for writing text-based user interfaces. [MIT]
  • TermOx - C++17 Terminal User Interface(TUI) Library. [MIT]
  • tuibox - A single-header terminal UI (TUI) library, capable of creating mouse-driven, interactive applications on the command line. [MIT]
  • Ginseng - A C++ command-line argument parser. [MIT]

Compression

Compression and Archiving Libraries

  • 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]
  • bzip3 - A better and stronger spiritual successor to BZip2. [LGPL]
  • FastLZ - Small & portable byte-aligned LZ77 compression. [MIT]
  • FiniteStateEntropy - New generation entropy codecs : Finite State Entropy and Huff0.
  • FSST - efficient random-access string compression. [MIT]
  • 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]
  • 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]
  • libarchive - Multi-format archive and compression library. [New BSD] website
  • LZ4 - Extremely Fast Compression algorithm. [BSD] website
  • LZFSE - LZFSE compression library and command line tool. Developed by Apple.
  • LZHAM - Lossless data compression library with a compression ratio similar to LZMA but with much faster decompression. [BSD]
  • LZMA :zap: - The default and general compression method of 7z format. [PublicDomain] website
  • LZMAT - An extremely fast real-time lossless data compression library. [GPL]
  • miniz - Single C source file Deflate/Inflate compression library with zlib-compatible API, ZIP archive reading/writing, PNG writing. [MIT]
  • Minizip - Zlib with latest bug fixes that supports PKWARE disk spanning, AES encryption, and IO buffering. [zlib]
  • minizip-ng - Fork of the popular zip manipulation library found in the zlib distribution. [zlib]
  • OpenZL - A novel data compression framework. [BSD] website
  • 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]
  • 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 - A very compact compression library for data streams. [zlib]
  • 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]
  • ZXC - High-performance asymmetric lossless compression. [BSD-3-Clause]
  • ZZIPlib - Provides read access on ZIP-archives. [MPL/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]

Concurrency

Concurrency and Multithreading

  • 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
  • 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]
  • dispenso - A high-performance C++ library for parallel programming with thread pools, parallel for loops, futures, task graphs, and concurrent containers. [MIT]
  • FiberTaskingLib - Task-based multi-threading library that supports task graphs with arbitrary dependencies. [Apache]
  • HPX - A general purpose C++ runtime system for parallel and distributed applications of any scale. [Boost]
  • Intel Games Task Scheduler - A task scheduling framework designed for the needs of game developers. [MIT]
  • Intel Parallel STL - Intel® implementation of C++17 STL for C++11 and above. [Apache2]
  • 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]
  • 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
  • libfork - A bleeding-edge, lock-free, wait-free, continuation-stealing tasking library built on C++20's coroutines. [MPL-2.0] website
  • libmill - Introduces Go-style concurrency in C. [MIT]
  • 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]
  • OpenCL - The open standard for parallel programming of heterogeneous systems.
  • OpenMP - The OpenMP API.
  • 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.
  • RaftLib - The RaftLib C++ library, streaming/dataflow concurrency via C++ iostream-like operators. [Apache2]
  • 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]
  • Thrust - A parallel algorithms library which resembles the C++ Standard Template Library (STL). [Apache2]
  • TooManyCooks - High-performance C++20 coroutine framework with advanced hardware detection features. [BSL-1.0]
  • 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.
  • 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]

Configuration

Configuration files, INI files

  • 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. [BSD-3-Clause]
  • ini-cpp - Single header only C++ version, with some handy read/write interface, extend from inih. [BSD-3-Clause] website
  • 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
  • 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
  • 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
  • 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
  • LSHBOX - A c++ toolbox of locality-sensitive hashing (LSH), provides several popular LSH algorithms, also support Python and MATLAB. [GPL]
  • marisa-trie - Matching Algorithm with Recursively Implemented StorAge. [BSD-2-Clause/LGPL-2.1]
  • parallel-hashmap - A family of header-only, very fast and memory-friendly hashmap and btree containers [Apache2] website
  • 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
  • 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
  • plf::list - A std::list implementation which removes range splicing in order to enable cache-friendlier structure, yielding significant performance gains. [zLib] website
  • plf::stack - A replacement container for the std::stack container adaptor, with better performance than any std container in a stack context. [zLib] website
  • ring_span lite - A simplified implementation of Arthur O'Dwyer's ring_span implementation ie. a circular buffer view. [MIT]
  • 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]
  • 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]

Cryptography

Cryptography and Encryption Libraries

  • 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]
  • Crypto++ - A free C++ class library of cryptographic schemes. [Boost] website
  • digestpp - C++11 header-only message digest (hash) library. [PublicDomain]
  • GnuPG - A complete and free implementation of the OpenPGP standard. [GPL]
  • GnuTLS - A secure communications library implementing the SSL, TLS and DTLS protocols. [LGPL2.1]
  • 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. [?]
  • 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
  • Nettle - A low-level cryptographic library. [LGPL]
  • OpenSSL - A robust, commercial-grade, full-featured, and Open Source cryptography library. [Apache] website
  • retter - A collection of hash functions, ciphers, tools, libraries, and materials related to cryptography.
  • s2n - An implementation of the TLS/SSL protocols. [Apache]
  • sha1collisiondetection - Library and command line tool to detect SHA-1 collision in a file. [MIT]
  • stduuid - A C++17 cross-platform implementation for UUIDs. [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]
  • tiny-ECDH-c - Small and portable implementation of the ECDH key agreement protocol in C. [PublicDomain]
  • Themis - crypto library for painless data security, providing symmetric and asymmetric encryption, secure sockets with forward secrecy, for mobile and server platforms. [Apache2]
  • HEhub - A library for homomorphic encryption and its applications. [Apache2]
  • 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]

CSV

Libraries for parsing Comma Separated Value (CSV) files

  • 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

Database Libraries, SQL Servers, ODBC Drivers, and Tools

  • ClickHouse - C++ client for ClickHouse DBMS. [Apache2]
  • CrossDB - Ultra High-performance Lightweight Embedded and Server OLTP RDBMS. [MPL-2.0] website
  • DuckDB - in-process SQL OLAP Database Management System. [MIT] website
  • 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
  • Kvrocks - A distributed key value NoSQL database that uses RocksDB as storage engine and is compatible with Redis protocol. [Apache2]
  • Ladybug - an embedded graph database built for query speed and scalability. [MIT] website
  • 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]
  • LMDB - Very fast embedded key/value store with full ACID semantics. [OpenLDAP]
  • LMDB++ - C++11 wrapper for the LMDB embedded database library. [PublicDomain]
  • 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]
  • MySQL++ - A C++ wrapper for MySQL's C API. [LGPL]
  • nanodbc - A small C++ wrapper for the native C ODBC API. [MIT]
  • ODB - An open-source, cross-platform, and cross-database object-relational mapping (ORM) system for C++. [GPLv2]
  • 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
  • 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]
  • SQLite - A completely embedded, full-featured relational database in a few 100k that you can include right into your project. [PublicDomain]
  • 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
  • TileDB - Fast Dense and Sparse Multidimensional Array DBMS. [MIT] website
  • TinyORM - Modern C++ ORM library. [MIT] website
  • UnQLite - A self-contained, serverless, zero-configuration, transactional NoSQL engine. [BSD-2-Clause] website
  • upscaledb - An embedded "typed" key/value store with a built-in query interface. [GPLv3]
  • TigerBeetleDB C++ client (Community) - TigerBeetle is a financial accounting database designed for mission critical safety and performance to power the future of financial services. [BSL-1.0]
  • Trilogy - a client library for MySQL-compatible database servers, designed for performance, flexibility, and ease of embedding. [MIT]
  • UStore - Multi-Modal database for BLOBs, JSON, and graphs. [Apache2]
  • Velox - A C++ vectorized database acceleration library aimed to optimizing query engines and data processing systems. [Apache-2.0] website
  • constexpr-sql - A compile-time SQL query parser and executor in C++17. [MIT]
  • NuDB - A fast, append-only key/value store for SSD drives. [Boost]

truncated — full list on GitHub

[[curator]]
I'm the Curator. I can help you navigate, organize, and curate this wiki. What would you like to do?