Namespaces
Variants
Actions

A list of open-source C++ libraries

From cppreference.com
< cpp‎ | links

The objective of this page is to build a comprehensive list of open-source C++ libraries, so that when one needs an implementation of particular functionality, one needn’t to waste time searching on web (DuckDuckGo, Google, Bing, etc.)

If you know a library that might be useful to others, please add a link to it here. There are no restrictions on what can be included except that the source of the library must be readily available to download.

The page is provided “as is” - with the hope of being useful, but without any warranties. Outdated, misleading or wrong links might appear here. If you’ve noticed one of these, it would be great if you fixed the error.

Libraries: Table Of Contents

Libraries:


Contents

[edit] Package managers

Package manager Description
build2 An open-source (MIT), cross-platform build toolchain that aims to approximate Rust Cargo’s convenience for developing and packaging C/C++ projects while providing more depth and flexibility, especially in the build system.
cget Cmake package retrieval. This can be used to download and install cmake packages.
cmodule Non-intrusive cmake dependency management.
conan Decentralized, open-source (MIT), C/C++ package manager.
CPM.cmake A cmake script that adds dependency management capabilities to cmake. It’s built as a thin wrapper around cmake’s FetchContent module that adds version control, caching, a simple API and more.
hunter A cmake driven cross-platform package manager for C/C++ projects.
spack A package manager for supercomputers, Linux, and macOS. It makes installing scientific software easy. It isn’t tied to a particular language.
teaport A cocoapods inspired dependency manager.
vcpkg A C/C++ package manager for Windows, Linux, and macOS.
xmake A cross-platform Lua-based C/C++ build tool and package manager.

[edit] Libraries

[edit] Audio

Library Description License Configuration
Amplitude Audio SDK A cross-platform audio engine designed with the needs of games in mind. (Src) Apache-2.0 cmake, vcpkg
Aquila An open-source and cross-platform DSP library for C++11. MIT cmake
Aubio A C/Python library for audio and music analysis. (Src) GPL-3.0 make
audioFlux A C library for audio and music analysis, feature extraction. MIT
Essentia An open-source library and tools for audio and music analysis, description and synthesis (MIR) (Src) Affero GPLv3
FFTW A library for computing the DFT (SSE/SSE2/AVX/Altivec/ARM Neon). (Src) GPL-2.0 cmake
FMOD An easy to use cross-platform audio engine and audio content creation tool for games. Free for non-commercial/Commercial cmake
KFR A fast, modern, C++17, open-source, cross-platform DSP/DFT framework, supports Audio resampling, FIR/IIR filters, Biquad, (SSE, AVX, AVX-512, ARM NEON). (Src) GPL-2.0 cmake
libsoundio A C library for cross-platform real-time audio input and output. (Src) MIT cmake
Maximilian C++ Audio and Music DSP Library. MIT cmake
Miniaudio An audio playback and capture C library. (Src) Unlicense single source file
ni-media C++ library for reading and writing audio files. MIT cmake, vcpkg
OpenAL A cross-platform audio API. BSD/LGPL/Proprietary cmake
PortAudio PortAudio is a free, cross-platform, open-source, audio I/O library. (Src) MIT cmake, vcpkg
rnnoise Recurrent neural network for audio noise reduction. BSD-3-Clause make
SELA SimplE Lossless Audio. MIT cmake
SoLoud Easy, portable audio engine for games. zlib
Soundtouch The SoundTouch is an open-source cross-platform audio processing library for changing the Tempo, Pitch and Playback Rates of audio streams or audio files. (Src) LGPL-2.1 make
Tonic Easy and efficient audio synthesis in C++. Unlicense
Verovio A fast and lightweight music notation engraving library. (Src) LGPL cmake, qmake
Wav2Letter++ A fast speech recognition toolkit written entirely in C++ and uses the ArrayFire tensor library and the flashlight machine learning library for maximum efficiency. BSD License cmake

CD
Library Description License Configuration
libkcompactdisc A library for interfacing with CDs GPL v2.0 cmake

Fingerprinting
Library Description License Configuration
chromaprint The Chromaprint is an audio fingerprint library designed to identify near-identical audio. It trades precision and robustness for search performance. Chromaprint can use multiple FFT libraries - FFmpeg, FFTW3, KissFFT or vDSP. (Src) MIT, LGPL 2.1 cmake
libmusicbrainz The MusicBrainz Client Library (libmusicbrainz), also known as mb_client, is a development library geared towards developers who wish to add MusicBrainz lookup capabilities to their applications. The library supports Windows, Linux and Mac OS X (Src) LGPL-2.1 cmake
libofa An open-source audio fingerprint by MusicIP APL make

Formats
Library Description License Configuration
AudioFile A simple C++ library for reading and writing audio files. MIT cmake
audio_file A library that handles reading and writing audio files in many common formats. (Src) LGPL-2.1 make
dr_libs Single-file audio (FLAC, MP3, WAV) decoding libraries for C and C++. Unlicense
flac The FLAC stands for Free Lossless Audio Codec, meaning that audio compressed in FLAC has no loss in quality. FLAC stands out as the fastest and most widely supported lossless audio codec, non-proprietary, and unencumbered by patents. Open Source, BSD, GPL
LAME LAME is a high quality MPEG Audio Layer III (MP3) encoder. LGPL
libsndfile A C library with C++ wrapper for reading and writing files containing sampled sound (e.g. WAV, AIFF) through one standard library interface. (Src) LGPL-2.1 cmake, make, vcpkg
minimp3 Minimalistic MP3 decoder CC0-1.0 header-only
Opus A totally open, royalty-free, highly versatile audio codec. BSD cmake
Vorbis Ogg Vorbis is a fully open, non-proprietary, patent-and-royalty-free, general-purpose compressed audio format. BSD cmake

Tagging
Library Description License Configuration
id3lib An open-source, cross-platform library for reading, writing, and manipulating ID3v1 and ID3v2 tags, and retrieving some basic mp3 header info like bitrate. However, we now recommend moving to taglib :) LGPL v2
taglib The TagLib Audio Metadata Library is a library for reading and editing the meta-data of several popular audio formats: ID3v1, ID3v2 for MP3 files, Ogg Vorbis comments and ID3 tags and Vorbis comments in FLAC, MPC, Speex, WavPack, TrueAudio, WAV, AIFF, MP4 and ASF files. (Src) LGPL and MPL v1.1

[edit] Benchmarking

Library Description License Configuration
benchmark A library to benchmark code snippets, similar to unit tests Apache 2.0 cmake
Celero A feature-rich C++ Benchmark Authoring Library/Framework. Supports Windows, Linux, and OSX using C++11. Apache cmake
Criterion A micro-benchmarking library for modern C++ MIT header-only; cmake
gperftools The 'Google Performance Tools' includes a high-performance, multi-threaded malloc implementation plus tools for benchmarking heap allocation and CPU utilization. BSD 3-Clause "New" or "Revised" configure
nanobench A simple, fast, accurate single-header micro-benchmarking functionality for C++11/14/17/20. (Src) MIT header-only; cmake
picobench A tiny (micro) micro-benchmarking library MIT header-only; cmake
plf::nanotimer A lowest-overhead, cross-platform simple timer class for benchmarking. zlib header-only

[edit] Communication

Library Description License Configuration
ACE Asynchronous networking, event de-multiplexing, messaging (Src) (Doc) Custom make
Apache Thrift The Apache Thrift software framework, for scalable cross-language services development, combines a software stack with a code generation engine to build services that work efficiently and seamlessly between C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, OCaml and Delphi and other languages. (Src) Apache-2.0 cmake, vcpkg
Boost.Asio Asynchronous and synchronous networking, timers, serial I/O BSL-1.0
Boost.Beast An HTTP and WebSocket library built on top of Boost.Asio BSL-1.0
Breep An event based, high-level, peer-to-peer library, allowing users to directly send and receive objects. European Union Public License 1.1 cmake
brpc An industrial-grade RPC framework used throughout Baidu, with 1,000,000+ instances and thousands kinds of services. (Src) (Doc) Apache 2.0 cmake
C++ REST SDK An asynchronous HTTP client and listener, asynchronous Stream, URI, JSON MIT cmake
cpp-httplib A C++11 single-file header-only cross platform HTTP/HTTPS library MIT header-only; cmake
cpp-netlib A C++ Network Library BSL-1.0 cmake
cppsimpleuri A modern C++ uri & query parser MIT cmake
cpr A modern C++ HTTP requests library MIT cmake
Crow A C++ micro web framework (inspired by Python Flask) BSD-3-Clause header-only; cmake
curlpp C++ wrapper for libcURL (CURL library). (Src) cmake, vcpkg
DumaisLib Various utilities such as WebServer, JSON, WebSocket server, REST framework (a library for creating a REST API in your c++ app) MIT make
EasyHttp A cross-platform HTTP client library with a focus on usability and speed, supporting http response caching and more. MIT cmake
eCAL A high performance inter-process communication library Apache 2.0 cmake
fineftp-server An FTP-server library for Windows and Unix MIT cmake
FPNN Fast Programmable Nexus Network. High performance fully asynchronous RPC service framework. Simultaneously supporting HTTP, WebSocket, TCP, and reliable UDP. Support the development of ultra-high load servers, with corresponding client SDKs. 未知 make
gRPC A modern open-source high performance RPC framework that can run in any environment. (Src) (Doc) Apache-2.0 bazel, cmake, vcpkg
gsoap A C/C++ development toolkit for XML data bindings, fast WSDL/SOAP/XML Web services, WS-Security, JSON/XML-RPC RESTful services GPLv2
hmbdc A lightweight and high performance C++17 message pub/sub middleware framework/lib header-only
HTTPP A simple, C++14, production ready HTTP-server built on top of Boost and a client built on top of libcurl. BSD 2-Clause "Simplified" cmake, make
IXWebSocket An open-source WebSocket + HTTP library without dependency, supports SSL and the per message deflate WebSocket extension. BSD 3-Clause "New" or "Revised" cmake, make
KCP A fast and reliable ARQ protocol that helps applications to reduce network latency. MIT cmake
libashttp An asynchronous HTTP client library GNU Lesser General Public v3.0
libjson-rpc-cpp

A framework that provides cross-platform JSON-RPC (remote procedure call) support for C++, fully JSON-RPC 2.0 & 1.0 compatible.

MIT cmake, conan
libnavajo A C++ framework including a fast multithreaded http server, HTML5 Websockets, SSL, X509 and HTTP authentification, compression, cookies and advanced session management, IPv4 and IPv6 (CeCILL-C). CeCILL-C FREE SOFTWARE LICENSE AGREEMENT cmake
libtins A network packet crafting and sniffing library (Src) (Doc) BSD-2 cmake, vcpkg
LiteNetLibPP A lightweight reliable UDP library for games MIT cmake
mailio MIME and email library BSD 2-Clause "Simplified" cmake
nanomsg A fast message queue, zeromq successor
netif A C++14 library for getting network addresses on Windows, Linux, macOS, and FreeBSD. BSD 3-Clause "New" or "Revised" header-only; cmake
nghttp2 HTTP/2 C Library and tools (server, client, proxy and benchmarking tools) MIT cmake, configure
ngrest A fast and easy in use JSON RESTful Web Services Framework Apache 2.0 cmake
nng A fast message queue, nanomsg successor
Oat++ A Web Framework: REST-API and Request implementation (Src) (Doc) Apache 2.0 cmake
omniORB The fastest, complete and portable CORBA ORB implementation in C++
OpenDDS DDS (Data Distribution Service) implementation
Paho MQTT A modern C++ client for MQTT from Eclipse cmake
paozhu A C++20 Web Framework Support HTTP/2 ORM WebSocket MIT cmake
PcapPlusPlus Multi-platform C++ network sniffing and packet parsing and crafting framework. Provides C++ wrappers for many popular packet processing engines such as libpcap, Npcap, WinPcap, DPDK, AF_XDP, and PF_RING. (Src) Unlicense conan, homebrew, cmake, vcpkg
POCO Networking: encryption, HTTP; Zip files (Doc)
rest_rpc A C++11, high performance, cross-platform, easy to use RPC framework. MIT cmake
restbed A cross-platform feature rich framework brings asynchronous RESTful functionality (secure communication over HTTP) to C++14 applications. License cmake
restc-cpp Accessing JSON API's from C++. HTTP Client, native C++ class to/from JSON serialization, asynchronous IO trough boost::asio coroutines. C++14. MIT cmake
restful_mapper ORM for consuming RESTful JSON APIs in C++ cmake, make
seastar A high performance server-side application framework, based on C++14/C++17. Apache 2.0 cmake, etc.
Silicon The Silicon C++14 Web Framework: Fast and Robust Web APIs MIT cmake
sockpp A simple, modern C++ socket library BSD 3-Clause "New" or "Revised" cmake
stream-client A lightweight Boost-based client-side socket/connector/socket pool/resolver Apache 2.0 header-only; cmake
tacopie A C++11 TCP Library MIT cmake
TAO CORBA
taox11 A C++11 based CORBA implementation MIT
Unicomm Asynchronous networking, high-level TCP communication framework
uvw A libuv (cross-platform asynchronous I/O) wrapper in C++17 MIT header-only; cmake
WNetWrap A WinInet wrapper in C++ MIT
wvstreams A C++ networking library including UniConf and a convenient D-Bus API GPL
zeromq A fast message queue

[edit] Concurrency

Library Description License Configuration
AdaptiveCpp Provides a SYCL and C++ parallel STL offloading compiler and runtime system for CPUs and GPUs from NVIDIA, AMD, Intel BSD-2-Clause cmake
Asyncpp An asynchronous c++ library that provides various concurrent operations MIT cmake
BlockingCollection C++11 thread safe, multi-producer, multi-consumer blocking queue, stack & priority queue class GPL-3.0 header-only
Boost.Atomic Provides atomic data types and operations on these data types, as well as memory ordering constraints required for coordinating multiple threads through atomic variables. BSL-1.0
Boost.Compute A GPU/parallel-computing library for C++ based on OpenCL. BSL-1.0 cmake
Boost.Context A C++11 library that provides a cooperative multitasking abstraction on a single thread. BSL-1.0
Boost.Interprocess Simplifies the use of interprocess communication and synchronization mechanisms and offers a wide range of them: shared memory, memory-mapped files, semaphores, mutexes, condition variables and upgradable mutex types, named versions of the synchronization objects, file locking, message queues. BSL-1.0
Boost.Lockfree Provides non-blocking (aka lock-free) concurrent data structures: a queue, a stack, and a ringbuffer (spsc_queue). BSL-1.0
Boost.MPI A C++-friendly interface to the standard Message Passing Interface BSL-1.0
Boost.Thread Enables the use of multiple threads of execution with shared data and means for synchronizing data between the threads. BSL-1.0
concurrencpp Modern concurrency for C++. Tasks, executors, timers and C++20 coroutines. MIT cmake
dispenso High-performance concurrency for C++. parallel_for, Futures, pipelines, timers, timed/periodic tasks, and concurrent data structures. MIT cmake
Highway Provides performance-portable, length-agnostic SIMD/vector intrinsics. Supports: SSE3, SSE4, AVX*, NEON, SVE*, WASM SIMD, RISC-V, POWER. (Doc) Apache-2.0 cmake
HPX A general purpose C++ runtime system for parallel and distributed applications of any scale (Doc) BSL-1.0 cmake, vcpkg
Intel TBB Intel® TBB is a cross-platform C++ library for shared memory parallel programming and heterogeneous computing. The library provides: generic parallel algorithms, concurrent containers, a scalable memory allocator, work-stealing task scheduler, and low-level synchronization primitives. (Src) (Doc) Apache-2.0 or Commercial cmake, make
KOKKOS A programming model for writing performance portable HPC applications, using CUDA, HIP, SYCL, HPX, OpenMP and C++ threads as backends (Doc) Custom cmake, make