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)