C++ libraries

CLI

  • ​cxxopts - Lightweight C++ command line option parser.
  • ​FTXUI - C++ Functional Terminal User Interface.
  • ​Command Interface - Add a command-line interface to any C++ program. (HN)
  • ​Argh - Minimalist argument handler.

Testing

  • ​Catch2 - Modern, C++-native, header-only, test framework for unit-tests, TDD and BDD - using C++11, C++14, C++17 and later.
  • ​Google Test - Google Testing and Mocking Framework.
  • ​utest.h - Single header unit testing framework for C and C++.
  • ​Mutate - C++ Mutation Test Environment.
  • ​RapidCheck - C++ framework for property based testing inspired by QuickCheck and other similar frameworks.

Concurrency

  • ​Cpp-Taskflow - Fast C++ header-only library to help you quickly write parallel programs with complex task dependencies.
  • ​Async++ - Lightweight concurrency framework for C++11.
  • ​Thrust - C++ parallel programming library which resembles the C++ Standard Library.

UI

  • ​Dear ImGui - Bloat-free Immediate Mode Graphical User interface for C++ with minimal dependencies. (Awesome Dear ImGui)
  • ​giu - Cross platform rapid GUI framework for golang based on Dear ImGui.
  • ​GuiLite - Smallest UI framework for all platform -- 5K lines code.
  • ​Yue - Library for creating native cross-platform GUI apps.
  • ​MyGUI - Fast, flexible and simple GUI.
  • ​Plywood - Cross-platform framework for building all kinds of C++ software. (HN)
  • ​Elements - Lightweight, fine-grained, resolution independent, modular GUI library. (HN)
  • ​wxWidgets - Cross-Platform GUI Library.
  • ​Fast UI Draw - Library that provides a higher performance Canvas interface. It is designed so that it always draws using a GPU. (HN)
  • ​JUCE - Open-source cross-platform C++ application framework for desktop and mobile applications.

Web

  • ​NFHTTP - Cross platform C++ HTTP framework.
  • ​Drogon - C++14/17-based rapid HTTP and web application framework.
  • ​Asio - 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. (Code)
  • ​Pistache - High-performance REST Toolkit written in C++.
  • ​Malloy - C++ library providing embeddable server & client components for both HTTP and WebSocket.
  • ​Crow - Fast and Easy to use microframework for the web. (Web)
  • ​Oat++ - Light and powerful C++ web framework for highly scalable and resource-efficient web application. It's zero-dependency and easy-portable.
  • ​libhttpserver - C++ library for building high performance RESTful web servers.
  • ​async-sockets-cpp - Simple thread-based asynchronous TCP & UDP Socket classes in C++.

Graphics

  • ​Cinder - Peer-reviewed, free, open source C++ library for creative coding. (Web) (Docs) (HN)
  • ​Terathon Math Library - C++ math library containing classes for vectors, matrices, quaternions, and elements of projective geometric algebra.
  • ​VGC - Next-Gen Graphic Design and 2D Animation. (Web)
  • ​Yocto/GL - C++ Libraries for Data-Driven Physically-based Graphics. (Docs) (HN)
  • ​Methane Kit - Easy to use modern 3D graphics rendering abstraction API and cross-platform application framework.
  • ​Tahoma2D - 2D and Stop Motion Animation Software. (Web)
  • ​gfx - Minimalist and easy to use graphics API built on top of Direct3D12/HLSL intended for rapid prototyping.
  • ​bigger - Prototype-oriented middleware library for 3D interactive applications.
  • ​Treexy - Brutally fast, sparse, 3D Voxel Grid.
  • ​neoGFX - Cross-platform GPU-oriented C++ application/game framework. (Web)
  • ​NanoGUI - Minimalistic C++/Python GUI library for OpenGL, GLES2/3, Metal, and WebAssembly/WebGL.
  • ​Anti-Grain Geometry - Open Source, 2D vector graphics library. Produces pixel images in memory from vectorial data.
  • ​JNGL - Easy to use cross-platform 2D game library for C++.

DB

  • ​SOCI - C++ Database Access Library.
  • ​taoPQ - C++ client library for PostgreSQL.
  • ​Velox - C++ vectorized database acceleration library aimed to optimizing query engines and data processing systems.
  • ​Supersonic - Ultra-fast, column oriented query engine library written in C++.
  • ​SQLite ORM - Light header only library for modern C++.

Crypto

  • ​OpenABE - Open source cryptographic library with attribute-based encryption implementations in C/C++.

Other

  • ​{fmt} - Modern formatting library.
  • ​simdjson - Parsing gigabytes of JSON per second.
  • ​nlohmann/json - JSON for Modern C++.
  • ​Folly - Library of C++14 components designed with practicality and efficiency in mind.
  • ​jet-live - C++ hot code reload for linux and macos.
  • ​cpr - Curl for People, a spiritual port of Python Requests.
  • ​argparse - Argument Parser for Modern C++.
  • ​lager - C++ library to assist value-oriented design by implementing the unidirectional data-flow architecture.
  • ​Immutable++ - Persistent immutable data structures providing practically O(1) for appends, updates and lookups.
  • ​cpp-httplib - C++ single-file header-only cross platform HTTP/HTTPS library.
  • ​Proxygen - Collection of C++ HTTP libraries including an easy to use HTTP server.
  • ​RESTinio - Header-only C++14 library that gives you an embedded HTTP/Websocket server.
  • ​Enoki - Structured vectorization and differentiation on modern processor architectures.
  • ​Marl - Hybrid thread / fiber task scheduler written in C++ 11.
  • ​Quantum Library - Full-featured and powerful C++ framework build on top of the Boost coroutine library.
  • ​Wangle - Framework providing a set of common client/server abstractions for building services in a consistent, modular, and composable way.
  • ​Typeclasses in C++ - Future C++ implementation of Rust-like trait objects with no boilerplate.
  • ​Basic Development Environment - Set of foundational C++ libraries used at Bloomberg.
  • ​BareMetalLib - C++ support library for bare-metal programming.
  • ​matplotlib-cpp - Extremely simple yet powerful header-only C++ plotting library built on the popular matplotlib.
  • ​re2 - Fast, safe, thread-friendly alternative to backtracking regular expression engines like those used in PCRE, Perl, and Python.
  • ​Boost.Hana - Your standard library for metaprogramming.
  • ​xtensor - C++ tensors with broadcasting and lazy computing.
  • ​Choreograph - Simple, modern C++ animation and timing library.
  • ​cppast - Library to parse and work with the C++ AST.
  • ​thread-pool-cpp - High performance C++11 thread pool.
  • ​pytest-cpp - Use pytest's runner to discover and execute C++ tests.
  • ​MFEM - Lightweight, general, scalable C++ library for finite element methods.
  • ​Backward-cpp - Beautiful stack trace pretty printer for C++.
  • ​sparsehash - C++ associative containers.
  • ​tabulate - Table Maker for Modern C++.
  • ​stb - Single-file public domain libraries for C/C++.
  • ​Diligent Engine - Modern cross-platform low-level graphics library and rendering framework.
  • ​Loguru - Lightweight C++ logging library.
  • ​DFHack - Dwarf Fortress memory access library, distributed with scripts and plugins implementing a wide variety of useful functions and tools.
  • ​Tweeny - Inbetweening library designed for the creation of complex animations for games and other beautiful interactive software.
  • ​libff - C++ library for finite fields and elliptic curves.
  • ​SDSL - Succinct Data Structure Library.
  • ​Acutest - Simple header-only C/C++ unit testing facility.
  • ​Boost Multiprecision Library - Provides integer, rational, floating-point, complex and interval number types in C++ that have more range and precision than C++'s ordinary built-in types.
  • ​scnlib - Modern C++ library for replacing scanf and std::istream.
  • ​Plog - Portable, simple and extensible C++ logging library.
  • ​Nano - C++ library for developing high-performance applications for macOS, iOS, tvOS, Android, Linux, and Microsoft Windows.
  • ​span lite - C++20-like span for C++98, C++11 and later in a single-file header-only library.
  • ​atomic_queue - C++ lock-free queue.
  • ​RTTR - C++ Reflection Library.
  • ​lager - C++ library for value-oriented design using the unidirectional data-flow architecture (Redux for C++).
  • ​Heteroflow - Header-only C++ library to help you quickly write concurrent CPU-GPU programs using task models.
  • ​GEOS - C++11 library for performing operations on two-dimensional vector geometries.
  • ​subprocess.h - Simple one header solution to launching processes and interacting with them for C and C++.
  • ​OpenMesh - Generic and efficient data structure for representing and manipulating polygonal meshes.
  • ​Skia - Complete 2D graphic library for drawing Text, Geometries, and Images. (Web)
  • ​nbind - Magical headers that make your C++ library accessible from JavaScript.
  • ​Fiber Tasking Lib - Library for enabling task-based multi-threading. It allows execution of task graphs with arbitrary dependencies.
  • ​ozz-animation - Open source c++ skeletal animation library and toolset.
  • ​sqlpp11 - Type safe embedded domain specific language for SQL queries and results in C++.
  • ​Tiny Differentiable Simulator - Header-only C++ physics library with zero dependencies.
  • ​Fastor - Light-weight high performance tensor algebra framework for modern C++.
  • ​FastNoise - Fast C++ Noise Library.
  • ​libigl - Simple C++ geometry processing library.
  • ​Kodiak - C++ library that implements a generic branch and bound algorithm for rigorous numerical approximations.
  • ​cilantro - Lean and fast C++ library for working with point cloud data, with emphasis given to the 3D case.
  • ​Frozen - Header-only library that provides 0 cost initialization for immutable containers and various algorithms.
  • ​fast_io - C++ general-purpose exception-safe RAII I/O library based on C++ 20 Concepts. It is at least ten times faster than cstdio or iostream.
  • ​LEAF - Lightweight Error Augmentation Framework.
  • ​nacro - Better C/C++ macro extension. Implemented in Clang plugins. Inspired by Rust's macro system.
  • ​Magic Enum - Static reflection for enums (to string, from string, iteration) for modern C++, work with any enum type without any macro or boilerplate code.
  • ​Nameof - Nameof operator for modern C++, simply obtain the name of a variable, type, function, macro, and enum.
  • ​ALEX - Library for building an in-memory, Adaptive Learned indEX. (HN)
  • ​cereal - C++11 library for serialization.
  • ​ELFIO - Header-only C++ library intended for reading and generating files in the ELF binary format.
  • ​DataFrame - C++ statistical library that provides an interface similar to Pandas package in Python. (Reddit)
  • ​structopt - Parse command line arguments by defining a struct. (HN)
  • ​Derecho - Open-source C++ distributed computing toolkit that provides strong forms of distributed coordination and consistency at RDMA speeds.
  • ​Jungle - Embedded key-value storage library, based on a combined index of LSM-tree and copy-on-write (append-only) B+tree.
  • ​NuRaft - C++ implementation of Raft core logic as a replication library.
  • ​Hyperscan - High-performance multiple regex matching library. (Web)
  • ​libcu++ - NVIDIA C++ Standard Library.
  • ​OpenR - Distributed platform for building autonomic network functions.
  • ​Abseil - Open-source collection of C++ code designed to augment the C++ standard library. (How to contribute to Abseil with a visible performance gain)
  • ​semver - Semantic Versioning for modern C++.
  • ​Aleph - Library for Exploring Persistent Homology.
  • ​Terminal - Small header only C++ library for writing multiplatform terminal applications.
  • ​Draco - Object-oriented component library geared towards numerically intensive, radiation (particle) transport applications built for parallel computing hardware.
  • ​cpu_features - Cross platform C99 library to get cpu features at runtime.
  • ​VSTGUI - User interface toolkit mainly for audio plug-ins.
  • ​libunifex - Prototype implementation of the C++ sender/receiver async programming model.
  • ​random - Random for modern C++ with convenient API.
  • ​fifo_map - FIFO-ordered associative container for C++.
  • ​TensorRT - C++ library for high performance inference on NVIDIA GPUs and deep learning accelerators.
  • ​Hnswlib - Header-only C++/python library for fast approximate nearest neighbors.
  • ​Non-Metric Space Library (NMSLIB) - Efficient similarity search library and a toolkit for evaluation of k-NN methods for generic non-metric spaces.
  • ​Dyno - Runtime polymorphism done right.
  • ​Geometry Central - Applied 3D geometry in C++, with a focus on surface meshes. (Docs)
  • ​Bullet Physics SDK - Real-time collision detection and multi-physics simulation for VR, games, visual effects, robotics, machine learning etc.
  • ​lexy - C++ parser combinator library.
  • ​PEGTL - Parsing Expression Grammar Template Library. Zero-dependency C++ header-only parser combinator library for creating parsers according to a Parsing Expression Grammar (PEG).
  • ​incbin - Include binary files in C/C++.
  • ​uDepot - Multi-threaded, scalable, persistent store that is flash optimized by using a log-structured space allocation and GC framework.
  • ​PDAL - Point Data Abstraction Library. GDAL for point cloud data. (Docs)
  • ​painless - Header-only C++ library that provides an easy way to use interactive parameters in your program.
  • ​C++ B-tree - Modern C++ B-tree containers.
  • ​Blitz++ - Multi-Dimensional Array Library for C++.
  • ​ATen - TENsor library for C++11.
  • ​AsyncFuture - Use QFuture like a Promise object.
  • ​concurrencpp - C++ concurrency library.
  • ​Buildβ†’It - Type based library framework for multi-stage imperative programming. (Web)
  • ​FLANN - Fast Library for Approximate Nearest Neighbors.
  • ​TVLLib - Template Vector Library.
  • ​Ceres Solver - Open source C++ library for modeling and solving large, complicated optimization problems. (Docs)
  • ​sdbus-c++ - High-level C++ D-Bus library for Linux designed to provide expressive, easy-to-use API in modern C++.
  • ​DGtal - Digital Geometry Tools and Algorithm Library. (Web)
  • ​libpy - Library to help you write amazing Python extensions in C++.
  • ​cppcoro - Library of C++ coroutine abstractions for the coroutines TS.
  • ​DynaMix (Dynamic Mixins) - New take on polymorphism. It lets the user compose and modify polymorphic objects at run time in C++.
  • ​maths - Linear algebra library with vector swizzling, intersection tests and useful functions for games and graphics dev.
  • ​Edlib - Lightweight, super fast C/C++ (& Python) library for sequence alignment using edit (Levenshtein) distance.
  • ​Corrade - C++11/C++14 multiplatform utility library. (Web)
  • ​Vineyard - In-memory immutable data manager. (Docs) (HN)
  • ​Dionysus - Library for computing persistent homology.
  • ​Parallel Hashmap - Family of header-only, very fast and memory-friendly hashmap and btree containers.
  • ​Kimera - C++ library for real-time metric-semantic simultaneous localization and mapping.
  • ​libtensor - C++ library for tensor computations.
  • ​RadixSpline - Read-only learned index structure that can be built in a single pass over sorted data.
  • ​Minisketch - Optimized library for BCH-based set reconciliation.
  • ​TiledArray - Massively-parallel, block-sparse tensor framework written in C++.
  • ​FBGEMM - Low-precision, high-performance matrix-matrix multiplications and convolution library for server-side inference.
  • ​Cista++ - Simple C++ Serialization & Reflection. (Web)
  • ​Memkind - User extensible heap manager built on top of jemalloc which enables control of memory characteristics and a partitioning of the heap between kinds of memory. (Web)
  • ​FunctionalPlus - Functional Programming Library for C++. Write concise and readable C++ code.
  • ​polylabel - Fast algorithm for finding the pole of inaccessibility of a polygon (in JavaScript and C++).
  • ​GBDT - High performance and full featured C++ implementation of Jerome H. Friedman's Gradient Boosting Decision Trees Algorithm and its modern offsprings.
  • ​DSPatch - Refreshingly Simple C++ Dataflow Framework.
  • ​libcuckoo - High-performance, concurrent hash table.
  • ​libmprompt - Robust multi-prompt delimited control and effect handlers in C/C++.
  • ​IceCream-Cpp - Little (single header) library to help with the print debugging on C++11 and forward.
  • ​expected - C++11/14/17 std::expected with functional-style extensions. (Tweet)
  • ​monolish - MONOlithic Liner equation Solvers for Highly-parallel architecture.
  • ​EVE - Expressive Velocity Engine.
  • ​Galois - C++ library designed to ease parallel programming, especially for applications with irregular parallelism.
  • ​timemory - Timing + Memory + Hardware Counter Utilities for C / C++ / CUDA / Python.
  • ​Casbin-CPP - Authorization library that supports access control models like ACL, RBAC, ABAC in C/C++.
  • ​SON-RPC-CXX - JSON-RPC for modern C++.
  • ​PTHash - Fast and compact minimal perfect hash functions in C++.
  • ​Zadeh - Blazing fast library for fuzzy filtering, matching, and other fuzzy things.
  • ​Workflow - C++ Parallel Computing and Asynchronous Networking Engine. (HN)
  • ​AFF3CT - Fast simulator and a library dedicated to the channel coding. (Web)
  • ​Boost.Hof - Higher-order functions for C++.
  • ​aids - std replacement for C++.
  • ​POCO (Portable Components) - Powerful cross-platform C++ libraries for building network- and internet-based applications that run on desktop, server, mobile, IoT, and embedded systems. (Web)
  • ​Operon - C++ Large Scale Genetic Programming. (Docs)
  • ​CppCoro - Library of C++ coroutine abstractions for the coroutines TS.
  • ​TinyGLTF - Header only C++11 tiny glTF 2.0 library.
  • ​Pipes - Small components for writing expressive code when working on collections.
  • ​NamedType - Implementation of strong types in C++.
  • ​kari.hpp - Experimental library for currying in C++17.
  • ​cpp-lazy - Fast and easy lazy evaluation library.
  • ​memory-allocators - Custom memory allocators in C++ to improve the performance of dynamic memory allocation.
  • ​Vc - Portable, zero-overhead C++ types for explicitly data-parallel programming.
  • ​cinolib - Generic programming header only C++ library for processing polygonal and polyhedral meshes.
  • ​ordered-map - C++ hash map and hash set which preserve the order of insertion.
  • ​CIDLib - General purpose C++ development environment.
  • ​CrossWindow - Cross platform system abstraction library written in C++ for managing windows and performing OS tasks. (Web)
  • ​dr_libs - Single file audio decoding libraries for C/C++.
  • ​EASTL - Alternative C++ Standard Library From Electronic Arts. (HN)
  • ​Inja - Template Engine for Modern C++.
  • ​Reckless - Low-latency, high-throughput, asynchronous logging library for C++.
  • ​CPP-Libp2p - C++17 implementation of libp2p.
  • ​¡React - Minimalistic reactive library for c++.
  • ​Minicore - Fast and memory-efficient clustering + coreset construction, including fast distance kernels for Bregman and f-divergences.
  • ​EXOTica - Extensible Optimization Framework. (Docs)
  • ​subprocess - C++ high level library for running shell processes.
  • ​HOT - Height Optimized Trie.
  • ​Okasaki - Functional data structures in C++.
  • ​rlottie - Platform independent standalone library that plays Lottie Animation.
  • ​simdutf - Unicode validation and transcoding at billions of characters per second. (Talk)
  • ​Boost.PFR - std::tuple like methods for user defined types without any macro or boilerplate code.
  • ​double-conversion - Efficient binary-decimal and decimal-binary conversion routines for IEEE doubles.
  • ​FastNoise2 - Modular node graph based noise generation library using SIMD, C++17 and templates.
  • ​TensorPipe - Tensor-aware point-to-point communication primitive for machine learning.
  • ​Rotor - Event loop friendly C++ actor micro framework.
  • ​optional - Single header implementation of std::optional with functional-style extensions and support for references.
  • ​ZAB - Asynchronous framework for building event-driven, multi-threaded programs.
  • ​Ensmallen - High-quality C++ library for non-linear numerical optimization. (Web) (Docs) (HN)
  • ​Fleet - C++ library for programming language of thought models.
  • ​MatX - Efficient C++17 GPU numerical computing library with Python-like syntax.
  • ​oneMKL - Open-source implementation of the oneMKL Data Parallel C++ (DPC++) interface according to the oneMKL specification.
  • ​mathiu.cpp - Simple computer algebra system in C++.
  • ​Avendish - Declarative, non-intrusive, compile-time C++ reflection.
  • ​libossia - Modern C++, cross-environment distributed object model for creative coding.
  • ​RtAudio - Set of C++ classes that provide a common API for real time audio input/output.
  • ​RtMidi - Set of C++ classes that provide a common API for real time MIDI input/output.
  • ​HPX - C++ Standard Library for Parallelism and Concurrency.
  • ​agrpc - Async GRPC with C++20 coroutine support.
  • ​Marius - Large scale embeddings on a single machine.
  • ​Compute Library - Set of computer vision and machine learning functions optimised for both Arm CPUs and GPUs using SIMD technologies.
  • ​ahsohtoa - Structure-of-array synthesis in C++20.
  • ​LIEF - Library to Instrument Executable Formats.
  • ​AStarix - Fast and Optimal Sequence-to-Graph Aligner.
  • ​dtl - Diff template library written by C++.
  • ​TinyFSM - Simple C++ finite state machine library.
  • ​Tongrams - C++ library providing fast language model queries in compressed space.
  • ​Autocomplete - Efficient and effective query auto-completion in C++.
  • ​Sexpresso - C++ centric s-expression parser library.
  • ​baidu-allreduce - Small C++ library, demonstrating the ring allreduce and ring allgather techniques.
  • ​HIP - C++ Heterogeneous-Compute Interface for Portability.
  • ​SMACC - Event-driven, asynchronous, behavioral state machine library for real-time ROS (Robotic Operating System) applications written in C++.
  • ​refl-cpp - Modern compile-time reflection library for C++ with support for overloads, templates, attributes and proxies.
  • ​NymphRPC - Compact, C++-based Remote Procedure Call (RPC) library.
  • ​libgo - Go-style concurrency in C++11.
  • ​xatlas - Mesh parameterization / UV unwrapping library.
  • ​ohm - Efficient, extensible occupancy map supporting probabilistic occupancy, normal distribution transforms in CPU and GPU.
  • ​Flecs - Fast entity component system (ECS) for C & C++.
  • ​Caches - C++ cache with LRU/LFU/FIFO policies implementation.
  • ​SML - C++14 State Machine Library.
  • ​Kokkos - Programming model in C++ for writing performance portable applications targeting all major HPC platforms.
  • ​CPPItertools - Range-based for loop add-ons inspired by the Python builtins and itertools library.
  • ​libs - Single-file public domain libraries for C/C++.
  • ​asyncio - C++20 library to write concurrent code using the async/await syntax.
  • ​CTPG - C++ Compile Time Parser Generator. (HN)
  • ​Binlog - High performance C++ log library to produce structured binary logs.
  • ​robin-hood-hashing - Fast & memory efficient hashtable based on robin hood hashing for C++.
  • ​ParlayLib - Toolkit for Programming Parallel Algorithms on Shared-Memory Multicore Machines.
  • ​YACLib - C++ library for concurrent tasks execution. (Docs)
  • ​triSYCL - Generic system-wide modern C++ for heterogeneous platforms with SYCL from Khronos Group.
  • ​Xcdat - Fast compressed trie dictionary library.
  • ​Poplar-trie - C++17 implementation of memory-efficient dynamic tries.
  • ​eraft - Generic raft library inspired etcd in C++.
  • ​cpp-subprocess - Subprocessing with modern C++.
  • ​CPP-JWT - JSON Web Token library for C++.
  • ​libkdtree++ - C++ template container implementation of k-dimensional space sorting, using a kd-tree.
  • ​promise-cpp - C++ promise/A+ library in JavaScript style.

Links

Last modified 10d ago