[C/C++] A list of open source C++ libraries

A list of open source C++ libraries

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.

 [ExpandLibraries: Table Of Contents

 

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++ package manager for Windows, Linux, and macOS.
xmake A cross-platform Lua-based C/C++ build tool and package manager.

 

Libraries

Audio

Library Description License Configuration
Aquila Open-source and cross-platform DSP library for C++11. MIT CMake
Essentia 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
KFR 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
soundtouch 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 Makefile

 

CD
Library Description License Configuration
libkcompactdisc Library for interfacing with CDs GPL v2.0 CMake

 

Fingerprinting
Library Description License Configuration
chromaprint 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 Open-source audio fingerprint by MusicIP APL makefile

 

Formats
Library Description License Configuration
audiofile AudioFile Library handles reading and writing audio files in many common formats. (Src) LGPL-2.1 makefile
flac FLAC stands for Free Lossless Audio Codec, meaning that audio is compressed in FLAC without any loss in quality. FLAC stands out as the fastest and most widely supported lossless audio codec, non-proprietary, is unencumbered by patents. Open Source, BSD, GPL  
libsndfile Libsndfile is a cross-platform, open-source library for reading and writing files containing sampled sound (such as Windows WAV and the Apple/SGI AIFF format) through one standard library interface. LGPL v2.0 or v3.0  

 

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 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  

Benchmarking

Library Description License Configuration
benchmark A library to benchmark code snippets, similar to unit tests Apache 2.0 CMake
Celero Feature-rich C++ Benchmark Authoring Library/Framework. Supports Windows, Linux, and OSX using C++11. Apache CMake
gperftools '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 Simple, fast, accurate single-header microbenchmarking functionality for C++11/14/17/20. (Src) MIT CMake
plf::nanotimer Lowest-overhead, cross-platform simple timer class for benchmarking. zlib  

Communication

Library Description License Configuration
ACE asynchronous networking, event demultiplexing, messaging    
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.    
Boost.Asio asynchronous and synchronous networking, timers, serial I/O BSL-1.0  
Boost.Beast HTTP and WebSocket library built on top of Boost.Asio BSL-1.0  
Breep Event based, high-level, peer-to-peer library, allowing users to directly send and receive objects. European Union Public License 1.1 CMake
brpc 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 asynchronous HTTP client and listener, asynchronous Stream, URI, JSON MIT CMake
cpp-netlib cpp-netlib: The 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 header-only C++ micro web framework (inspired by Python Flask) BSD-3-Clause CMake
curlpp C++ wrapper for CURL library    
DumaisLib Various utilities such as WebServer, JSON, WebSocket server, REST framework (a library for creating a REST API in your c++ app) MIT Makefile
EasyHttp A cross-platform HTTP client library with a focus on usability and speed, supporting http response caching and more. MIT CMake
eCAL high performance inter-process communication Apache 2.0 CMake
fineftp-server ftp server library for windows and unix MIT CMake
gRPC A modern open-source high performance RPC framework that can run in any environment.    
gsoap C/C++ development toolkit for XML data bindings, fast WSDL/SOAP/XML Web services, WS-Security, JSON/XML-RPC RESTful services    
hmbdc Headers-only, lightweight and high performance C++17 message pub/sub middleware framework/lib   Headers-only
HTTPP Simple, production ready HTTP server built on top of Boost and a client built on top of libcurl. BSD 2-Clause "Simplified" CMake, Makefile
IXWebSocket Open-source WebSocket + HTTP library without dependency, supports SSL and the per message deflate WebSocket extension. BSD 3-Clause "New" or "Revised" CMake, Makefile
KCP A fast and reliable ARQ protocol that helps applications to reduce network latency. MIT CMake
libashttp asynchronous HTTP client library GNU Lesser General Public v3.0  
libjson-rpc-cpp

This framework provides cross platform JSON-RPC (remote procedure call) support for C++. It is fully JSON-RPC 2.0 & 1.0 compatible.

MIT CMake, Conan
libnavajo 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 Network packet crafting and sniffing library    
nanomsg fast message queue, zeromq successor    
netif Header-only C++14 library for getting network addresses on Windows, Linux, macOS, and FreeBSD. BSD 3-Clause "New" or "Revised" CMake
nghttp2 HTTP/2 C Library and tools (server, client, proxy and benchmarking tools) MIT CMake, configure
ngrest Fast and easy in use JSON RESTful Web Services Framework Apache 2.0 CMake
nng fast message queue, nanomsg successor    
Oat++ 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 Modern C++ client for MQTT from Eclipse   CMake
PcapPlusPlus Multiplatform C++ network sniffing and packet parsing and crafting framework    
POCO networking: encryption, HTTP; Zip files (Doc)    
rest_rpc modern, simple, easy to use rpc framework   CMake
restbed Restbed framework brings asynchronous RESTful functionality to C++11 applications. License CMake
restc-cpp Takes the pain out of 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, Makefile
seastar 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 Lightweight, header-only, Boost-based client-side socket/connector/socket pool/resolver Apache 2.0 CMake
tacopie C++11 TCP Library MIT CMake
TAO CORBA    
taox11 C++11 based CORBA implementation MIT  
Unicomm asynchronous networking, high-level TCP communication framework    
uvw libuv wrapper in modern C++ MIT CMake
WNetWrap WinInet wrapper in C++ MIT  
wvstreams C++ networking library including UniConf and a convenient D-Bus API GPL  
zeromq fast message queue    

Concurrency

Library Description License Configuration
Asyncpp An asynchronous c++ library that provides various concurrent operations MIT CMake
BlockingCollection A C++11 thread safe collection class modeled after .NET BlockingCollection.    
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 (unofficial) 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
hipSYCL provides a clang-based toolchain and a runtime SYCL implementation that can run on multiple target devices (NVIDIA/AMD GPU’s, CPU’s) BSD-2-Clause CMake
HPX A general purpose C++ runtime system for parallel and distributed applications of any scale    
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, Makefile
KOKKOS A programming model in C++ for writing performance portable HPC applications    
libopenmpi The Open MPI Project is an open source Message Passing Interface implementation 3-clause BSD  
libsimdpp A portable header-only zero-overhead C++ low level SIMD library. Boost CMake
MPL A C++-17-friendly header-only interface to the standard Message Passing Interface BSD 3-Clause "New" or "Revised" CMake
MutexGear Mutex-only synchronization (wheel, rwlock, work queues) The MutexGear Library configure, MSVC
OpenMP The OpenMP API specification for parallel programming    
RaftLib C++17 stream-like concurrent actors that enable parallel data-flow computations Apache-2.0 CMake
SObjectizer A small framework for simplification of development of concurrent and event-driven applications in C++ by using actor and publish-subscribe models.    
subprocess C++17/20 cross platform library for running subprocesses MIT CMake, Teaport
Taskflow Parallel Task Programming in Modern C++ TASKFLOW MIT CMake
Thrust STL-like parallel algorithms and data-structures on top of CUDA, TBB, or OpenMP Apache v2.0, Boost v1.0. CMake
VexCL C++ vector expression template library for OpenCL, CUDA, OpenMP MIT CMake
ViennaCL Linear algebra and algorithms with OpenMP, CUDA, and OpenCL backends    
Xenium A header-only C++17 library that provides various concurrent data structures and reclamation schemes. MIT CMake

Configuration

Library Description License Configuration
Boost.Program_options The library allows to obtain program options, that is (name, value) pairs from the user, via conventional methods such as command line, config file, and environment variables. BSL-1.0  
gconfmm      
libconfig      
libconfini INI parser    
uconfig Lightweight, header-only, C++17 configuration library Apache 2.0 CMake

 

Command Line
Library Description License Configuration
Boost.Program_options The library allows to obtain program options, that is (name, value) pairs from the user, via conventional methods such as command line, config file, and environment variables. BSL-1.0  
CLI11 A header-only command line parser for C++11 and beyond that provides a rich feature set with a simple and intuitive interface. BSD-3-Clause CMake
cxxopts A lightweight header-only C++11 (or C++17) command-line arguments parser, supporting the standard GNU style syntax for options. MIT CMake
gflags Library that implements commandline flags processing. It includes built-in support for standard types such as string and the ability to define flags in the source file in which they are used. BSD CMake
hbristow/argparse A slimline C++ class for parsing command-line arguments, with an interface similar to python's class of the same name. BSD  
morrisfranken/argparse A lightweight header-only library for parsing command line arguments in an elegant manner. Apache 2 CMake
p-ranav/argparse Single header argument Parser for C++17 MIT CMake
tclap A simple templatized C++ library for parsing command line arguments. The library provides a simple, flexible object-oriented interface. MIT CMake

 

CSS
Library Description License Configuration
mycss CSS Parser    

 

HOCON
Library Description License Configuration
cpp-hocon The C++ implementation of the HOCON format developed by Pupplet.    

 

JSON
Library Description License Configuration
ArduinoJson ArduinoJson    
Boost.JSON JSON parsing, serialization, and DOM in C++11/17 BSL-1.0  
CAJUN      
DAW JSON Link C++17 static C++ bindings with type checking allowing of parsing directly to user data structures without library allocation, push/pull modes, allocator support, constexpr BSL 1.0 CMake
jansson Jansson is C library for encoding, decoding and manipulating JSON data.    
jeayeson A very sane (header only) C++14 JSON library    
jios JSON Input Output Streams MIT CMake
JOST      
json Niels Lohmann JSON    
JSON Voorhees Killer JSON for C++    
JSON++      
json-cpp      
json11 json11 is a tiny JSON library for C++11, providing JSON parsing and serialization.    
JsonBox      
jsoncons A header-only library for JSON and JSON-like data formats, with JSON Pointer, JSON Patch, JSONPath, CSV, MessagePack, CBOR, BSON, UBJSON.    
jsoncpp   MIT CMake, Conan, vcpkg
jsonme--      
libjson      
minijson C++ DOM-less and allocation-free JSON parsing and serialization    
qjson      
rapidjson      
simdjson Parsing gigabytes of JSON per second taking advantage of modern micro-architectures and parallelizing with SIMD (Doc) (Kino) Apache-2.0 CMake, vcpkg
struct_mapping Mapping json to and from a c++ structure    
ThorsSerializer JSON/BSON/YAML Input Output Streams MIT Makefile
ujson µjson is a small, C++11, UTF-8, JSON library    
zoolib ZooLib is a C++ toolkit. MIT  

 

TOML
Library Description License Configuration
toml++ TOML parser and serializer for C++17 and later    
toml11 TOML parsing library based on C++11    

 

XML
Library Description License Configuration
ai-xml Serialize objects to and from XML by adding a single, minimal, function to a class. Uses libxml++ under the hood.    
GPDS General purpose data serializer to serialize objects to and from XML. Uses TinyXML under the hood.    
gSOAP XML data bindings    
libxml++      
pugixml Light-weight, simple and fast XML parser for C++ with XPath support MIT CMake, Conan
tinyxml      
tinyxml2 Another and work in progress of TinyXML.    
Xerces      

 

YAML
Library Description License Configuration
yaml-cpp      

Containers

Library Description License Configuration
Boost.Bimap a bidirectional maps library that offers associative containers such as bimap<X,Y> in which both X and Y can be used as a key. BSL-1.0  
Boost.Container a header-only library that implements several well-known containers, including STL-like containers, as well as recursive containers, and new useful containers: flat_mapflat_setflat_multimapflat_multisetstable_vectorstatic_vectorsmall_vectordevector. BSL-1.0  
Boost.Fusion a library for working with heterogeneous collections of tuples. Provides a set of containers (vectorlistset and map), along with transformed presentation of their underlying data, a.k.a views." BSL-1.0  
Boost.Heap an implementation of priority queues with more functionality and different performance characteristics, than STL has. BSL-1.0  
Boost.Pointer Container provides containers for holding heap-allocated objects in an exception-safe manner and with minimal overhead. BSL-1.0  
Boost.Tuple implements pre-C++11 n-tuple (a fixed size collection of elements) BSL-1.0  
Boost.Variant implements pre-C++17 variant (a safe, generic, stack-based discriminated union container) BSL-1.0  
cpp-btree header-only; B-tree containers make better use of the CPU cache: btree_mapbtree_setbtree_multimapbtree_multiset. (Src) Apache-2.0 CMake
DataFrame C++ DataFrame for statistical, Financial, and ML analysis -- in modern C++ using native types and continuous memory storage BSD-3-Clause CMake, Makefile, Conan, vcpkg
eggs::variant Eggs.Variant is a C++11/14/17 generic, type-safe, discriminated union. It is notable in particular for having very good constexpr support. BSL-1.0 CMake
Frozen constexpr perfect-hashing-based frozen sets and maps Apache-2.0  
Immer A library of persistent and immutable data structures Boost CMake
plf::colony Unordered "bag-like" container which outperforms std:: containers in high-modification scenarios while maintaining valid pointers to non-erased elements regardless of insertion and erasure. C++98/11/14/etc-compatible. See also P0447, std::hive. (Src) zlib conan build2
plf::list std::list implementation which sacrifices range-splicing for cache-friendliness, yielding faster insertion, erasure and iteration. C++98/11/14/etc-compatible. (Src) zlib  
plf::queue Drop-in replacement container for the std::queue container adaptor with better performance than std::deque and std::list in a queue context. C++98/11/14/etc-compatible. (Src) zlib  
plf::stack Drop-in replacement container for the std::stack container adaptor with better performance than std::vector and std::deque in a stack context. C++98/11/14/etc-compatible. (Src) zlib  
ring_span A header-only lite implementation of Arthur O'Dwyer's ring_span, a.k.a. circular buffer view. C++98- compatible. BSL-1.0 CMake
strict_variant A realtime/embedded-friendly (i.e. -fno-exceptions/-fno-rtti compatible), never-empty variant targetting C++11. Fast, prevents many undesirable implicit conversions. BSL-1.0 CMake
Ygg An intrusive C++11 implementation of high-performance containers and data structures such as a Red-Black-Tree, an Interval Tree and an Interval Map. MIT CMake

Cryptography

Library Description License Configuration
Botan      
crypto++      
gnutls      
openssl      
TomCrypt      

Databases

Library Description License Configuration
cpp-redis C++11 Lightweight Redis client: async, thread-safe, no dependency, pipelining, multi-platform.    
DTL      
EasyQtSql A lightweight header-only C++11 library for quick and easy SQL querying with QtSql    
Galera The Galera Cluster is the synchronous multi-master replication library (Galera) and a Write Set Replication (WSREP) API for MySQL/MariaDB (Src) GPLv2 CMake, Scons
LevelDB A C++ library developed by Google that handles billion-scale Key-Value data persistence storage.    
libpqxx      
lmdb++ C++11 wrapper for the LMDB embedded B+ tree database library.    
mongocxx C++11 driver library for MongoDB    
mysql++      
nanodbc A small, cross-platform, C++14 wrapper for the native C ODBC API MIT CMake
ODB ODB is an open-source, cross-platform, and cross-database object-relational mapping (ORM) system for C++. ODB supports MySQL, SQLite, PostgreSQL, Oracle, and Microsoft SQL Server relational databases as well as C++98/03 and C++11 language standards. GPL2 and/or NCUEL  
OTL      
Pgfe The PostgreSQL client (FrontEnd) API in modern C++ Zlib CMake
QTL A friendly and lightweight C++ database library for MySQL, SQLite and ODBC.    
QUINCE QUeries IN C++ Expressions (ORM+EDSL) Boost  
QxOrm Object Relational Mapping (ORM) database library for C++/Qt, supports most common databases, serialization (JSON, binary, XML); standalone multi-threaded HTTP web server GPLv3 or Proprietary  
redis-cpp C++17 Lightweight C++ client header-only library for executing Redis commands.    
redis-plus-plus A Redis client written in C++ 11, and supports Redis Sentinel, Redis Cluster, pipeline, transaction, pubsub, connection pool and STL-like interface    
SOCI      
SQLAPI++      
SQLiteCPP      
sqlpp11      
taoPQ Lightweight C++17 PostgreSQL client library Boost CMake

Embedded languages bindings

Library Description License Configuration
AngelScript A scripting language like C++. ZLib  
ChaiScript An easy to use embedded scripting language for C++. BSD-3-Clause  
ExprTk A simple to use, easy to integrate and extremely efficient run-time mathematical expression parser and evaluation engine. ExprTk supports numerous forms of functional, logical and vector processing semantics and is very easily extendible.    
Jinx Scripting language designed for videogames. MIT CMake
spidermonkey.dev Mozilla’s JavaScript and WebAssembly Engine.    
muparser Many applications require the parsing of mathematical expressions. The main objective muparser is to provide a fast, easy and secure way of doing this. muparser is an extensible high performance math expression parser library written in C++. BSD-2-Clause CMake
PythonQt Dynamic Python binding for the Qt framework. It offers an easy way to embed the Python scripting language into C++ Qt applications. LGPL 2.1  
ScriptCaller a header only library allowing us to call ruby scripts.    
lua Lightweight multi-paradigm scripting language designed primarily for embedded use. C library. MIT  
sol2 A modern header-only C++ library binding to Lua. MIT CMake
v8pp Bind C++ functions and classes into V8 JavaScript engine.    

Embedded/Realtime

Library Description License Configuration
distortos object-oriented C++ RTOS for microcontrollers    
ETL Embedded Template Library - C++03, Portable template library tailored for low resource (embedded) platforms ((Src)) MIT  
QP/C++ RTOS kernel: Real-Time Embedded Frameworks based on active objects & state machines GPLv3  
µcuREST C++11 REST/JSON server framework for microcontrollers    

File metadata

Library Description License Configuration
exempi      
exiv2      
libkexiv2      
rarian      

Financial Calculations

Library Description License Configuration
DataFrame C++ DataFrame for statistical, Financial, and ML analysis -- in modern C++ using native types and continuous memory storage BSD-3-Clause CMake, Makefile, Conan
QuantLib Quantitative finance Library - A free/open-source library for quantitative finance modified BSD  

Game Engine Architecture

Library Description License Configuration
Anax      
BOX2D Physics engine    
EntityPlus      
EntityX      
EnTT      

General Multimedia

Library Description License Configuration
Kigs-framework Modular Multi-purpose Cross Platform Framework MIT  
openFrameworks   MIT  
SDL Simple DirectMedia Layer: cross-platform, low level access to audio, keyboard, mouse, joystick, and graphics hardware via that platform's graphics API (usually OpenGL or Direct3D) zlib  
SFML Simple and Fast Multimedia Library; multi-platform (Windows, Linux, macOS and soon Android & iOS); provides a simple interface to ease the development of games and multimedia applications. It is composed of five modules: system, window, graphics (over OpenGL), audio and network. zlib/png CMake
SIGIL Sound, Input, and Graphics Integration Library; mind-bogglingly simple, cross-platform, minimalist library for text, shapes, input, audio, and 2D images. Supported platforms: Windows, Linux and Raspberry Pi License CMake

Generic

Library Description License Configuration
Abseil An open-source collection of C++ library code from Google designed to augment the C++ standard library. (Doc) (Src) Apache-2.0 CMake
Abstract Intrusive Containers More flexible than Boost.Intrusive, but not STL-compatible.    
BDE The Bloomberg Development Environment core libraries from Bloomberg L.P. Apache  
Better Enums Reflective enums (enum to string, iteration, etc.) with constexpr support. BSD  
bitfield.h Bit field structure facility, more portable/flexible than the base language facility.    
Boost large collection of generic libraries BSL-1.0  
CAF The C++ Actor Framework (CAF) is an open source C++11 actor model implementation featuring lightweight & fast actor implementations, pattern matching for messages, network transparent messaging, and more BSD  
Cinder A community-developed, free and open source library for professional-quality creative coding in C++. (Doc) (Src) Modified BSD CMake
CommonPP Multi-purpose library with a strong emphasis on getting metrics out of a project. BSD  
composite_op.h Basic class data member introspection, cumbersome and often non-re-entrant, but sometimes useful.    
cpp-mmf A C++98 library that encapsulates memory-mapped-files for POSIX or Windows    
cxxomfort Backports of C++ features (C++11 to C++03 and C++1y proposals to C++11/C++03).    
Dlib networking, threads, graphical interfaces, data structures, linear algebra, machine learning, XML and text parsing, numerical optimization, Bayesian nets, and numerous other tasks Boost  
eventpp eventpp is a C++ event library for callbacks, event dispatcher, and event queue. With eventpp you can easily implement signal and slot mechanism, publisher and subscriber pattern, or observer pattern. Apache 2.0  
fcppt Freundlich's C++ Toolkit (fcppt) is a collection of libraries focusing on improving general C++ code by providing better types and making use of functional programming.    
Folly Facebook open-source library. A crossplatform library of C++14 components designed with practicality and efficiency in mind. (Doc) Apache-2.0 CMake, vcpkg
GSL C++ Core Guidelines Support Library implementation, recommended by Bjarne Stroustrup, Herb Sutter and Co in C++ Core Guidelines MIT CMake, vcpkg
gsl-lite A single-file header-only version of ISO C++ Guideline Support Library (GSL) for C++98, C++11 and later MIT  
GUL14 General Utility Library for C++14 from DESY: Often-used utility functions and types, including String utilities, Statistics and Numeric functions, Containers, Debugging means, etc. (Src) LGPL-2.1 Meson, vcpkg
History Modern C++17 Undo/Redo Framework Unlicense  
hspp An experimental library to bring Haskell Style Programming to C++. Apache-2.0 header-only
IP-DOS (tm) IdeaFarm (tm) Piggyback Distributed Operating System: A general purpose programming environment for the C++ language. Proprietary Open Source Open Watcom 2.0
JUCE An extensive, mature, cross-platform C++ toolkit GPL  
Kangaru A dependency injection container for C++11 and C++14 MIT  
Kerbal Backports of modern STL facilities to previous standard. More features! More constexpr! LGPL-3.0 header-only
libsourcey Cross-platform C++14 library for high speed networking and media encoding. HTTP, WebSockets, TURN, STUN, Symple and more. LGPL-2.1 CMake
LLNL/units A run-time C++ library for working with units of measurement and conversions between them and with string representations of units and measurements BSD 3-Clause "New" or "Revised" CMake
Loki design patterns    
match(it) A lightweight pattern-matching library for C++17 with macro-free APIs. Apache-2.0 header-only
nonstd-lite Parent of *-lite repositories, a migration path to post-C++11 features for pre-C++11 environments Boost  
nytl Generic C++17 header-only utility template library. Boost  
OnPosix C++ library providing several abstractions (e.g., threading, networking, logging, IPC, etc.) on POSIX platforms.    
Reason  ?? xml, xpath, regex, threads, sockets, http, sql, date-time, streams, encoding and decoding, filesystem, compression GPL  
SaferCPlusPlus Safe compatible substitutes for unsafe C++ primitives, including pointers, int and std::vector. Boost  
Smart Enum "to_string", "from_string" and more for your enums. Boost  
units A compile-time, header-only, dimensional analysis and unit conversion library built on c++14 with no dependencies MIT  
yaal Yet Another Abstraction Layer - algorithms, collections, arbitrary precision calculation, generic-DSL grammar driven parsers and more CC BY-ND-NC 4.0 CMake
Yato Modern C++(14/17) cross-platform STL-styled and STL-compatible library with implementing containers, ranges, iterators, type traits and other tools; actors system; type-safe config interface. Apache-2.0 CMake
yomm2 Open multi-methods for C++17 Boost  

GPS

Library Description License Configuration
gpsd gpsd is an open-source, cross-platform (Linux/Unix/BSD flavors, including Android and OS X) GPS-aware set of tools, such as a translator and replicator daemon for GPS devices, AIS radios, and other navigational sensors. gpsd is mostly written in C and Python, but also has C++ wrapper. gpsd is everywhere in mobile embedded systems. Every location-aware Android app is indirectly a gpsd client. (Doc) (Src) BSD 2-clause scons

Graphic user interface

Library Description License Configuration
Dear ImGui A bloat-free graphical user interface library that is highly optimized.    
FLTK A cross-platform C++ GUI toolkit (Linux, Windows, MacOS) that provides modern GUI functionality, and supports 3D graphics via OpenGL/GLUT. Designed to be small and modular. Includes an UI builder. LGPL ver.2  
nana GUI programming in modern C++ style (Doc) Boost  
nanogui Minimalistic cross-platform widget library for OpenGL 3.x or higher (Doc)    
OWLNext Modern update to OWL for writing GUI applications in standard C++ on Windows    
tiny file dialogs a single C C++ cross-platform file (no init, no main loop, 6 modal function calls)    
U++ Cross-platform (Windows, GNU/Linux, macOS) rapid application development framework with bundled IDE. C++17 Compatible. (Doc) (Src) BSD-3-Clause Makefile
WxWidgets A free and open source cross-platform (Windows, GNU/Linux, macOS) C++ framework for writing advanced GUI applications using native controls. (Doc) Modified LGPL CMake, Makefile
xtd Modern C++17/20 framework to create console, GUI and unit tests applications on Windows, macOS, Linux, iOS and android. (Website) (Doc) MIT CMake

 

CopperSpice
Library Description License Configuration
CopperSpice A set of C++ libraries used to develop cross-platform software applications. It uses modern idiomatic C++ and integrates seamlessly with the STL. CopperSpice was derived from the Qt framework. (Doc) (Src) LGPL-2.1 CMake
CsSignal Standalone C++ thread aware signal/slot library LGPL-2.1 CMake
CsString Standalone C++ unicode aware string library LGPL-2.1 CMake
libGuarded Standalone C++ multithreading library for managing access to shared data LGPL-2.1 CMake

 

GTK+
Library Description License Configuration
evince      
flowcanvas      
glibmm      
goocanvasmm      
gtkmm A cross-platform C++ interface for the GTK+ GUI library. LGPL  
libglademm      
libgnomecanvasmm      
webkitgtk      

 

Qt
Library Description License Configuration
libdbusmenu-qt A small library designed to make sharing and displaying of menu structures over DBus simple and easy to use. It works for both QT and GTK+ and makes building menus simple.    
Qt (Doc) (Src)    
QuickQanava C++14 network/graph visualization library / Qt node editor. BSD 2.0 CMake
qwt5 Qt Widgets for Technical Applications    
qwtplot3d      

 

U++
Library Description License Configuration
U++ U++ is a C++ cross-platform rapid application development framework focused on programmers productivity. It includes a set of libraries (GUI, SQL, etc.), and an integrated development environment. (Src/Bin) BSD  
upp-components A collection of 3rd party packages for U++ like TerminalCtrl, MessageCtrl etc.. BSD-3-Clause  

Graphics

Library Description License Configuration
bgfx Powerful cross-platform graphics rendering library, support platforms include Windows Mac Linux iOS Android Web, rendering backend including DX, opengl, metal webgl and so on.    
cairomm A C++ wrapper for the cairo graphics library that is 2D library with support for multiple output devices: X Window, Quartz, Win32, image buffers, PostScript, PDF, SVG, OpenGL (experimental). LGPL  
dfpsr 2D, 3D and isometric software renderer with desktop GUI toolkit, minimalistic dependency, designed for long time maintenance and can run without any 3D accelerated drivers zlib  
gegl GEGL (Generic Graphics Library) is a data flow based image processing framework, providing floating point processing and non-destructive image processing capabilities. (Src) LGPL  
io2d Reference Implementations of P0267, the proposed 2D graphics API for ISO C++ Boost CMake
nanovg 2D drawing library based on openGL/DX/metal.    
nux An OpenGL toolkit LGPL v3  
pangomm is the official C++ interface for the Pango font layout library. (Src) LGPL v2.1 Makefile
Skia is an open-source 2D-graphics library written in C++. Skia is used in Google Chrome, Chrome OS, Mozilla Firefox, Android, LibreOffice, Flutter, etc. Skia has several back-ends: software rasterization, (PDF) output, OpenGL, SVG, etc. New BSD  
TXLib TX Library is a tiny 2D graphics library for Win32 written in C++.    
ULIS Cross-Platform C++14 Library, Generic digital image processing, 2D Software rasterizer, Unlimited image formats (u8, u16, u32, float, double), Custom bit-ordered memory layout, All Photoshop pixel blending modes + 11 additional modes, Color models (RGB, HSL, HSV, CMYK, ...), Color-managed pipelines, Color Space support (icm profiles and device-independant), Optimized algorithms with multithreading, Optimized algorithms with SIMD Extensions (SSE2), Image pools and caches for optimisations, Memory storage of animated image sequences Custom (free-of-charge for non-commercial purposes only) CMake

Graphics (3D)

Library Description License Configuration
assimp 3D model loading    
bgfx Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library.    
Diligent Engine A modern cross-platform low-level 3D graphics library.    
Epoxy Modern successor to GLEW. Abstracts difference between some kinds of GL contexts, which makes it sometimes simpler to use than GLEW. Used by GTK+ project since 2015.    
G3D The G3D Innovation Engine is a fully featured, open source, cross platform (Windows, Linus, Mac OS) 3D game engine written in C/C++. G3D is used in commercial games, research papers, simulators, and university courses. It supports real-time and offline hardware rendering, ray tracing, model loading, linear algebra, and GP-computation on GPUs. Supports 3DS, OBJ, MP4, PNG, JPG, MD3 and many other formats, includes a native OpenGL skinnable GUI. (Src) (Doc) BSD-2  
GLAD Customizable, lightweight library for loading OpenGL functions    
GLEW OpenGL function loading    
GLFW OpenGL window manager    
GLM Header only C++ mathematics library for rendering    
hlsl++ Header only C++ math library for rendering using hlsl syntax. Supports SSE and NEON    
Horde3D Horde3D is a small open source 3D rendering engine. It is written in an effort to create a graphics engine that offers the stunning visual effects expected in next-generation games being lightweight and as clean as possible.    
Irrlicht The Irrlicht Engine is an open source realtime 3D engine written in C++. It is cross-platform, using D3D, OpenGL and its own software renderers.    
klein C++11/14/17 SSE-optimized Projective Geometric Algebra library for graphics and animation    
Magnum Lightweight and modular C++11/C++14 graphics middleware for games and data visualization    
O3DE Open-source 3D Engine (former Amazon's Lumberyard) is a C++ multi-platform 3D engine to build AAA games, cinema-quality 3D worlds, and high-fidelity simulations. Includes physics simulation, script engine, networking, and more. (Doc) Apache 2.0 CMake
Ogre3D OGRE - Object-Oriented Graphics Rendering Engine - is a multipurpose visualization library, suitable for scientific visualization, games, simulation, virtual reality and other graphic projetcs. It is multiplatform and very robust, with a good documentation. MIT CMake
Open CASCADE SDK for 3D CAD/CAM/CAE applications    
OpenGL 3D language, graphics and SDK for developing 3D applications.    
OpenSceneGraph OpenSceneGraph is an open source high performance 3D graphics toolkit, used by application developers in fields such as visual simulation, games, virtual reality, scientific visualization and modelling.    
Visionaray A C++ ray tracing template library.    
VTK Visualization Toolkit (VTK) is an open source software for manipulating and displaying scientific data. It comes with state-of-the-art tools for 3D rendering, a suite of widgets for 3D interaction, and extensive 2D plotting capability.    
Vulkan Vulkan is by design a low-level API that removes many of the abstractions found in previous generation graphics APIs. This is great for delivering maximum performance, but has the side effect of exposing more complexity to the developer. Fortunately, several excellent tutorials exist to help clear this hurdle and get productive quickly.    

Images

Library Description License Configuration
Adobe/boost GIL high-level generic library, focused on algorithms that operate on 2D images. Very limited I/O options. BSL-1.0  
agge Anti-Grain Evolution. 2D graphics engine for Speed and Quality in C++ MIT CMake
FreeImage An Open-Source library project for developers who would like to support popular graphics image formats like PNG, BMP, JPEG, TIFF and others GPLv2, GPLv3, FIPL  
GraphicsMagick Reading, writing, and manipulating images in over 88 major formats. Forked from ImageMagick in 2002 Copyright Mercurial
SAIL Reading and writing static, animated, multi-paged images along with their meta data and ICC profiles. Converting capabilities. Targets simplicity and speed. MIT CMake
stb The header-only libraries for C/C++, mostly game-dev oriented. The noteworthy caps: image loader/writer/resizer; font text rasterizer; type-safe containers; ogg vorbis decoder; real-time DXT compressor; Perlin noise generator; lexer for pet DSLs; fast sprintf. MIT header-only

 

Formats
Library Description License Configuration
djvulibre      
imagemagick      
Kaitai Struct C++ runtime      
libraw      
openexr      
poppler      
qimageblitz      
SVG++      

 

Plotting
Library Description License Configuration
Matplot++ gnuplot based C++ Graphics Library for Data Visualization. Matplot++ can take advantage of the following libs: OpenCV, OpenGL, LAPACK, BLAS, FFTW, JPEG, TIFF, ZLIB, PNG, GLAD, GLFW3. (Doc) MIT CMake
plotutils The GNU plotutils package contains libplot, a C/C++ library for exporting 2-D vector graphics in many file formats, both vector and bitmap. libplot can animate 2-D vector graphics and uses a Postscript-like API for file export and graphics animations. GPL  
sciplot A modern header-only C++ scientific plotting library powered by gnuplot, with the export to pdf, svg, png, eps, etc. MIT CMake, vcpkg

Image Processing

Library Description License Configuration
dlib      
Halide A C++-embedded DSL for high-performance processing of images and tensors. MIT CMake, vcpkg
ITK - Insight Toolkit ITK is an open-source, cross-platform library that provides developers with an extensive suite of software tools for image analysis. Developed through extreme programming methodologies, ITK builds on a proven, spatially-oriented architecture for processing, segmentation, and registration of scientific images in two, three, or more dimensions. Apache 2.0 CMake
opencv      
OTB      

Internationalization

Library Description License Configuration
gettext      
ICU International Components for Unicode is a mature, widely used set of C/C++ libraries providing Unicode and Globalization support for software applications. (Src) icu4c/LICENSE  
spirit-po A small, header-only library which parses po-files and provides an interface similar to GNU libintl. Based on boost::spirit.    

Logging

Library Description License Configuration
Backward Printing nice Python-styled stack traces with colors and source snippets, especially on crashes. Header-only. MIT CMake, Conan
Boost.Log A cross-platform logging library that is simple to use, extensible, and performant. BSL-1.0  
clutchlog Single-header logging system which targets versatile DEBUGGING instead of service event storage. BSD CMake
glog Google Logging Library for C++98 based on C++-style streams License Bazel, CMake, vcpkg
Log4cplus Cross-platform, C++17 Logging API (modeled after the Java log4j API) providing thread-safe, flexible, and arbitrarily granular control over log management and configuration. BSD (two clause) or Apache 2.0 Autotools, CMake, Visual Studio
Log4cpp A library of C++ classes for flexible logging to files, syslog, IDSA and other destinations. LGPL  
log4cxx Apache log4cxx is a logging framework for C++ patterned after Apache log4j. (Src) Apache CMake
Pantheios Diagnostic Logging API library, offering a combination of type-safety, efficiency, genericity and extensibility BSD-style  
plog Portable and simple log for C++ in less than 1000 lines of code MPL-2.0  
Quill Cross-platform, C++14 Asynchronous Low Latency Logging Library MIT CMake
spdlog Super fast, header only, C++ logging library MIT CMake, Conan

Error handling

Library Description License Configuration
Boost.LEAF Lightweight error-handling library for C++11: single-header format, no dependencies, no dynamic memory allocations, can be used with or without exception handling, multi-threading ready. BSL-1.0  

Math

Library Description License Configuration
alglib ALGLIB is a cross-platform (Windows/POSIX/Linux) numerical analysis and data processing library. ALGLIB features include: Data analysis, Optimization and nonlinear solvers, Interpolation, Linear algebra and linear solvers, FFT and many others. Free (GPL/Personal/Academic) and Commercial  
ArrayFire is a cross-platform (Windows/OSX/Linux) general purpose HPC (CPU/GPU/OpenCL/CUDA/GPGPU) library for parallel computing. ArrayFire domains are: Vector Algorithms, Image Processing, Computer Vision, Signal Processing, Linear Algebra, Statistics, and more. (Src) Custom  
BigNumber C++ class for creating and computing arbitrary-length integers    
Boost.Math includes several contributions in the domain of mathematics: Floating Point Utilities, Mathematical Constants, Statistical Distributions and Functions, Statistics, Vector Functionals - Norms, Special Functions, Root Finding & Minimization Algorithms, Polynomials and Rational Functions, Interpolation, Quadrature and Differentiation, Filters, Complex Number Functions, Quaternions, Octonions, Integer Utilities (Greatest Common Divisor and Least Common Multiple), Series, Rationals and Continued Fractions. BSL-1.0  
Boost.Multiprecision The Multiprecision Library provides integer, rational, floating-point, and complex types in C++ that have more range and precision than C++'s ordinary fundamental (built-in) types. BSL-1.0  
Boost.Random provides a variety of generators and distributions to produce random numbers having useful properties, such as uniform distribution. BSL-1.0  
Boost.SafeNumerics C++14, header only, Guaranteed Correct Integer Arithmetic, a drop-in replacement for the built-in integer types. BSL-1.0  
C++ Matrix High performance and accurate (e.g. edge cases) matrix math library with expression template arithmetic operators BSD-3-Clause CMake, Makefile
CasADi Symbolic framework for nonlinear optimization and algorithmic differentiation. Supports C++ code generation for symbolic expressions and dynamic connection of compiled generated code.    
cpp-measures A header-only C++11 library to handle physical measures    
G+Smo cross-platform library for isogeometric analysis    
GNU MP bignum C++ interface C++ convenience class interface that offers overloaded functions and operators. The GMP is a free C library for arbitrary precision arithmetic, operating on signed integers, rational and floating-point numbers. GNU LGPL v3 and GNU GPL v2  
libmpdec++ Cross-platform library for correctly-rounded arbitrary precision decimal floating point arithmetic. BSD-2-Clause Autoconf, Visual Studio build scripts
mathiu.cpp A simple computer algebra system in C++17 Apache-2.0 CMake
PCGrand PCG is a family of simple fast space-efficient statistically good algorithms for random number generation. Unlike many general-purpose RNGs, they are also hard to predict. Apache  
NTL A Library for doing Number Theory. NTL is a high-performance, portable C++ library providing data structures and algorithms for manipulating signed, arbitrary length integers, and for vectors, matrices, and polynomials over the integers and over finite fields. LGPLv2.1+  
SEMT Compile time symbolic differentiation    
stats++ Advanced, comprehensive statistical software: data collection and preprocessing, statistics, machine learning, and optimization, with open C++ source code.    
StatsLib A templated, header-only library of statistical distribution functions.    

 

Automata theory
Library Description License Configuration
yasmine C++11 UML state machine framework (Doc) (Src) License  
UML_StateMachine UML State Machine is a pure C++20 library for defining state charts statically and executing them. (Doc) GPLv3 CMake

 

Class Library for Numbers
Library Description License Configuration
cln CLN is a library for efficient computations with all kinds of numbers in arbitrary precision. GPL  
CNL Compositional Numeric Library - fixed-precision numeric types BSL-1.0 CMake, Conan
Universal Numbers A C++17/20 template library providing plug-in replacements for the native arithmetic types (integer/decimal/fixed-point/floating-point/posits/logarithmic/interval) MIT CMake, Vcpkg, Conan

 

Computational geometry
Library Description License Configuration
CGAL Computational geometry algorithms library GPL-3.0 or commercial CMake
PCL Point Cloud library    
pmp-library Polygon Mesh Processing Library    
Wykobi Computational geometry library    

 

Graph theory
Library Description License Configuration
Boost.Graph   BSL-1.0  
CXXGraph A C++17 Header-Only Library for Graph Representation, Manipulation, Partitioning and Algorithms AGPL-3.0 CMake
GTpo A C++14 directed graphs modelling library, part of QuickQanava project BSD QMake, CMake
LEMON Library for Efficient Modeling and Optimization in Networks implements common data structures and algorithms focusing on combinatorial optimization, graphs and networks. (Doc) License  
NGraph A simple (Network) Graph library in C++    
OGDF Open Graph algorithms and Data structures Framework - is a C++ library for graph algorithms, in particular for automatic graph drawing. GPL v2 or v3  

 

Linear algebra
Library Description License Configuration
Armadillo      
Blaze      
Blitz++      
Boost.uBLAS   BSL-1.0  
DecompLib A header-only C++11 library to decompose a vector into a set of positive definite weighted basis vectors.    
Dlib - linear algebra tools      
Eigen A C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms. MPL2 CMake, Conan
ETL      
IT++      
Matrix Easy-to-use Scientific Computing library in/for C++ available for Linux and Windows. MIT CMake
PETSc A suite of data structures and routines for the parallel solution of scientific applications modeled by partial differential equations. It supports MPI, and GPUs through CUDA or OpenCL, as well as hybrid MPI-GPU.    
Spectra Sparse Eigenvalue Computation Toolkit as a Redesigned ARPACK is an open-source header-only C++ library for large scale eigenvalue problems, built on top of Eigen linear algebra library (also open-source and header-only). (Src) MPL-2.0 CMake, vcpkg
xtensor A C++ library meant for numerical analysis with multi-dimensional array expressions. BSD  

 

Machine Learning
Library Description License Configuration
Dlib machine learning tools    
FANN Fast Artificial Neural Network Library    
gaenari C++17 based incremental decision tree Apache-2.0 CMake
liblinear      
libtorch C++ frontend to the popular PyTorch Python library (backend is written in C++) BSD-style CMake
MLPACK machine learning package    
Shogun large scale machine learning toolbox    
stats++      
tensorflow An Open Source Machine Learning Framework for Everyone; provides stable C++ API and written mainly in C++ Apache-2.0  

 

Numeral Calculations
Library Description License Configuration
LibBF An arbitrary precision numerical calculation library developed by Bellard with a sample program that calculates pi to billions of bits    

 

Optimization
Library Description License Configuration
ceres-solver Open-source C++ library for modeling and solving large, complicated optimization problems. It is a feature rich, mature and performant library which has been used in production at Google since 2010. Apache CMake, Conan
OptimLib A C++11 library of numerical optimization methods for nonlinear functions.    

Metaprogramming

Library Description License Configuration
Boost.CallableTraits   BSL-1.0  
Boost.Hana New metaprogramming library for both types and values BSL-1.0  
Boost.Metaparse Compile-time parser library, producing types, values, and metafunctions from compile-time strings BSL-1.0  
Boost.Mp11   BSL-1.0  
Boost.MPL Original metaprogramming library, targeted at C++03, slow BSL-1.0  
Boost.PFR A header only C++14 library for basic reflection (without macros): visiting members of a user defined type by index, IO streaming. BSL-1.0  
Boost.Proto A library for building expression template-backed EDSLs BSL-1.0  
Brigand Uses eager metafunctions, optimized for best performance    
CoMeta Lightweight, header-only C++14 metaprogramming library    
Meta Uses eager metafunctions, middle ground between metal and brigand wrt performance    
Metal Uses eager metafunctions, 100% SFINAE-friendly    
refl-cpp A modern compile-time reflection library for C++ with support for overloads, templates, attributes and proxies    
Refureku C++17 runtime reflection and code generation library MIT CMake
visit_struct A miniature reflection library, providing structure visitors for C++11/14. Self-contained, 200-400 lines of code depending how you count.    

PDF

Library Description License Configuration
HARU      
JagPDF      
PoDoFo      

Physics and Simulations

Library Description License Configuration
Bullet Physics simulation for games, visual effects, robotics and reinforcement learning    
HELICS Co-simulation framework for synchronizing time and exchanging data between different types of simulators BSD 3-Clause "New" or "Revised" CMake
ProjectCHRONO An Open Source Multi-physics Simulation Engine    
ReactPhysics3D C++ physics engine library for 3D simulations and game    

Robotics

 

Perception
Library Description License Configuration
GTSAM Sensor Fusion, SLAM, SFM, VO, Computer vision (Src) BSD CMake
opencv Computer vision and perception, Calibration, Feature Matching (Src) (Doc) BSD, Apache 2 CMake

Serialization

Library Description License Configuration
Boost.Serialization   BSL-1.0  
C++ XML objects      
cereal C++11 serialization BSD  
cppcodec Header-only C++11 library to encode/decode base64, base32 and hex with consistent, flexible API MIT  
GPDS General purpose data serializer to serialize objects to and from XML. Uses TinyXML under the hood.    
gSOAP accurate XML serialization    
iguana A modern, universal and easy-to-use serialization engine developed in C++17, based on compile-time Reflection. Supported formats: JSON, XML, user-defined. Apache-2.0 CMake
jios JSON serialization MIT CMake
libs11n      
protobuf      
rpnx-serial A library that can (de)serialize types like std::map, std::vector, etc.    
ThorsSerializer C++ Serialization library for JSON MIT Makefile
yaml-cpp      
YAS Yet Another Serialization. YAS is C++11 library; no third-party libraries dependencies. Archives can be binary, text, JSON Boost Header only

 

Binary serialization
Library Description License Configuration
binn A binary serialization library designed to be compact, fast, and easy to use, itself an implementation of the same name format.    
blobify C++17 header-only, infers the serialized layout from the structure definition alone. Boost CMake
bson-cxx C++ implementation in BSON format.    
fast_ber High-performance serialization using BER/DER encoding rules. Encoding layout is defined by ASN.1 schemas. Follows modern C++ practices, written in C++11.    
UBjsonCpp High-performance UBJson read-write library based on C++14    

Sorting

Library Description License Configuration
Cpp-sort A collection of various sorting algorithms in a simple package. MIT  
Indiesort Templated sort-wrapper function which allows use of std::sort (and other random-access sort methods) with non-random-access containers. It also increases the performance of sorting large types in random-access containers and arrays zlib  
Timsort Templated stable sorting function which outperforms quicksort-based algorithms including std::sort, for reversed or semi-sorted data. MIT  

System

Library Description License Configuration
Infoware C++ Library for pulling system and hardware information, without hitting the command line. Creative Commons v1.0 CMake

Terminal

Library Description License Configuration
cli A cross-platform header-only library for interactive command line interfaces in modern C++. BSL-1.0 make, cmake, nmake, vcpkg
cwidget high-level terminal interface library for C++, modeled on GTK+ and Qt, but using `curses` as its display layer GPL v2.0 make
replxx A readline and libedit replacement that supports UTF-8, syntax highlighting & hints.    

Testing

Library Description License Configuration
bandit Human-friendly unit testing for C++11    
Boost.Test   BSL-1.0  
Catch2      
cppunit      
CUTE C++ Unit Testing Easier (no reliance on static initialization for registration), integrated into Cevelop for TDD MIT  
doctest The lightest feature-rich C++ single-header testing framework for unit tests and TDD MIT CMake
ELFspy Testing in isolation with fakes and spies - Linux only    
Google Test      
lest A modern, C++11-native, single-file header-only, tiny framework for unit-tests, TDD and BDD (includes C++98 variant).    
liblittletest Portable, one file header-only testing framework    
tunit Modern c++17 unit testing library on Windows, macOS, Linux, iOS and android. Office site MIT CMake

See also

List of C++ unit testing frameworks at Wikipedia

Text

 

Coding
Library Description License Configuration
strsuite A C++20 library to manage strings with different encodings LGPL3.0 CMake
uchardet The ability to guess string encoding is basically the same as the uchardet function in Python. MOZILLA PUBLIC LICENSE v1.1 CMake
win-iconv The character set encoding conversion library for Linux and Mac. The Windows implementation of iconv is based on the Win32 Character Set Conversion API. public domain CMake

 

Diff/Patch
Library Description License Configuration
diff_match_patch Create and apply patches for strings (requires Qt) Apache 2.0 qmake

 

Format
Library Description License Configuration
fmt Open-source formatting library providing a fast and safe alternative to C stdio and C++ iostreams. Prototype for C++20 std::format family. Victor Zverovich CMake, Conan

 

Parse
Library Description License Configuration
BNFlite A single file lightweight grammar parser library MIT Header only
PEGTL Parsing Expression Grammar Template Library MIT Header only

 

Search
Library Description License Configuration
clucene CLucene is a cross platform, full-featured, open-source indexing and searching engine/API. (Src) (Doc) LGPL v2.1 CMake
Step Ukkonen's online algorithm for constructing suffix tree, Manber's algorithm for constructing suffix array. MIT Header only
xapian Open-source search engine with indexing facilities (Src) (Doc) GPL v2+ make

 

Template Engine
Library Description License Configuration
inja Header-only Template Engine for C++17. MIT CMake, Conan, vcpkg, etc.
Jinja2C++ C++14/17 implementation of Jinja2 templates MPL-2.0 CMake, Conan

Version Control

Library Description License Configuration
coo-semver The C++ operation library for semantic version numbers.    
LibGit2 Version Control System Git's core library.    

Video

Library Description License Configuration
crystalhd      
gstreamermm      
libmatroska      
libVLC      
mjpegtools      

Web

Library Description License Configuration
Chromium Embedded      
cpp-jwt      
Drogon A C++14/17 based HTTP web application framework running on Linux/macOS/Unix/Windows.    
ffead-cpp Framework for Enterprise Application Development in c++, HTTP1/HTTP2/HTTP3 compliant, Supports multiple server backends Apache 2.0 CMake
libhttpserver      
libkcddb      
liblastfm      
libmusicbrainz5      
libnavajo      
oatpp Light and powerful web-framework for IoT and high-performance web-services. Zero-dependency and easy-portable.    
QtWebApp HTTP(s) Server in C++ inspired by Java Servlets    
Tufão      
uri-template URI Templates expansion and reverse-matching for C++ Apache 2.0 CMake
userver The C++ Asynchronous Framework Apache 2.0 CMake
Wt Widgets and building blocks to build web apps, built-in security, PDF rendering, 2D and 3D painting, ORM, charting, authentication frameworks. (Doc) (Src) GNU GPL or Commercial  

[출처] https://en.cppreference.com/w/cpp/links/libs

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[C/C++] A list of open source C++ libraries

A list of open source C++ libraries

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.

 [ExpandLibraries: Table Of Contents

 

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++ package manager for Windows, Linux, and macOS.
xmake A cross-platform Lua-based C/C++ build tool and package manager.

 

Libraries

Audio

Library Description License Configuration
Aquila Open-source and cross-platform DSP library for C++11. MIT CMake
Essentia 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
KFR 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
soundtouch 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 Makefile

 

CD
Library Description License Configuration
libkcompactdisc Library for interfacing with CDs GPL v2.0 CMake

 

Fingerprinting
Library Description License Configuration
chromaprint 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 Open-source audio fingerprint by MusicIP APL makefile

 

Formats
Library Description License Configuration
audiofile AudioFile Library handles reading and writing audio files in many common formats. (Src) LGPL-2.1 makefile
flac FLAC stands for Free Lossless Audio Codec, meaning that audio is compressed in FLAC without any loss in quality. FLAC stands out as the fastest and most widely supported lossless audio codec, non-proprietary, is unencumbered by patents. Open Source, BSD, GPL  
libsndfile Libsndfile is a cross-platform, open-source library for reading and writing files containing sampled sound (such as Windows WAV and the Apple/SGI AIFF format) through one standard library interface. LGPL v2.0 or v3.0  

 

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 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  

Benchmarking

Library Description License Configuration
benchmark A library to benchmark code snippets, similar to unit tests Apache 2.0 CMake
Celero Feature-rich C++ Benchmark Authoring Library/Framework. Supports Windows, Linux, and OSX using C++11. Apache CMake
gperftools '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 Simple, fast, accurate single-header microbenchmarking functionality for C++11/14/17/20. (Src) MIT CMake
plf::nanotimer Lowest-overhead, cross-platform simple timer class for benchmarking. zlib  

Communication

Library Description License Configuration
ACE asynchronous networking, event demultiplexing, messaging    
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.    
Boost.Asio asynchronous and synchronous networking, timers, serial I/O BSL-1.0  
Boost.Beast HTTP and WebSocket library built on top of Boost.Asio BSL-1.0  
Breep Event based, high-level, peer-to-peer library, allowing users to directly send and receive objects. European Union Public License 1.1 CMake
brpc 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 asynchronous HTTP client and listener, asynchronous Stream, URI, JSON MIT CMake
cpp-netlib cpp-netlib: The 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 header-only C++ micro web framework (inspired by Python Flask) BSD-3-Clause CMake
curlpp C++ wrapper for CURL library    
DumaisLib Various utilities such as WebServer, JSON, WebSocket server, REST framework (a library for creating a REST API in your c++ app) MIT Makefile
EasyHttp A cross-platform HTTP client library with a focus on usability and speed, supporting http response caching and more. MIT CMake
eCAL high performance inter-process communication Apache 2.0 CMake
fineftp-server ftp server library for windows and unix MIT CMake
gRPC A modern open-source high performance RPC framework that can run in any environment.    
gsoap C/C++ development toolkit for XML data bindings, fast WSDL/SOAP/XML Web services, WS-Security, JSON/XML-RPC RESTful services    
hmbdc Headers-only, lightweight and high performance C++17 message pub/sub middleware framework/lib   Headers-only
HTTPP Simple, production ready HTTP server built on top of Boost and a client built on top of libcurl. BSD 2-Clause "Simplified" CMake, Makefile
IXWebSocket Open-source WebSocket + HTTP library without dependency, supports SSL and the per message deflate WebSocket extension. BSD 3-Clause "New" or "Revised" CMake, Makefile
KCP A fast and reliable ARQ protocol that helps applications to reduce network latency. MIT CMake
libashttp asynchronous HTTP client library GNU Lesser General Public v3.0  
libjson-rpc-cpp

This framework provides cross platform JSON-RPC (remote procedure call) support for C++. It is fully JSON-RPC 2.0 & 1.0 compatible.

MIT CMake, Conan
libnavajo 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 Network packet crafting and sniffing library    
nanomsg fast message queue, zeromq successor    
netif Header-only C++14 library for getting network addresses on Windows, Linux, macOS, and FreeBSD. BSD 3-Clause "New" or "Revised" CMake
nghttp2 HTTP/2 C Library and tools (server, client, proxy and benchmarking tools) MIT CMake, configure
ngrest Fast and easy in use JSON RESTful Web Services Framework Apache 2.0 CMake
nng fast message queue, nanomsg successor    
Oat++ 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 Modern C++ client for MQTT from Eclipse   CMake
PcapPlusPlus Multiplatform C++ network sniffing and packet parsing and crafting framework    
POCO networking: encryption, HTTP; Zip files (Doc)    
rest_rpc modern, simple, easy to use rpc framework   CMake
restbed Restbed framework brings asynchronous RESTful functionality to C++11 applications. License CMake
restc-cpp Takes the pain out of 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, Makefile
seastar 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 Lightweight, header-only, Boost-based client-side socket/connector/socket pool/resolver Apache 2.0 CMake
tacopie C++11 TCP Library MIT CMake
TAO CORBA    
taox11 C++11 based CORBA implementation MIT  
Unicomm asynchronous networking, high-level TCP communication framework    
uvw libuv wrapper in modern C++ MIT CMake
WNetWrap WinInet wrapper in C++ MIT  
wvstreams C++ networking library including UniConf and a convenient D-Bus API GPL  
zeromq fast message queue    

Concurrency

Library Description License Configuration
Asyncpp An asynchronous c++ library that provides various concurrent operations MIT CMake
BlockingCollection A C++11 thread safe collection class modeled after .NET BlockingCollection.    
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 (unofficial) 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
hipSYCL provides a clang-based toolchain and a runtime SYCL implementation that can run on multiple target devices (NVIDIA/AMD GPU’s, CPU’s) BSD-2-Clause CMake
HPX A general purpose C++ runtime system for parallel and distributed applications of any scale    
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, Makefile
KOKKOS A programming model in C++ for writing performance portable HPC applications    
libopenmpi The Open MPI Project is an open source Message Passing Interface implementation 3-clause BSD  
libsimdpp A portable header-only zero-overhead C++ low level SIMD library. Boost CMake
MPL A C++-17-friendly header-only interface to the standard Message Passing Interface BSD 3-Clause "New" or "Revised" CMake
MutexGear Mutex-only synchronization (wheel, rwlock, work queues) The MutexGear Library configure, MSVC
OpenMP The OpenMP API specification for parallel programming    
RaftLib C++17 stream-like concurrent actors that enable parallel data-flow computations Apache-2.0 CMake
SObjectizer A small framework for simplification of development of concurrent and event-driven applications in C++ by using actor and publish-subscribe models.    
subprocess C++17/20 cross platform library for running subprocesses MIT CMake, Teaport
Taskflow Parallel Task Programming in Modern C++ TASKFLOW MIT CMake
Thrust STL-like parallel algorithms and data-structures on top of CUDA, TBB, or OpenMP Apache v2.0, Boost v1.0. CMake
VexCL C++ vector expression template library for OpenCL, CUDA, OpenMP MIT CMake
ViennaCL Linear algebra and algorithms with OpenMP, CUDA, and OpenCL backends    
Xenium A header-only C++17 library that provides various concurrent data structures and reclamation schemes. MIT CMake

Configuration

Library Description License Configuration
Boost.Program_options The library allows to obtain program options, that is (name, value) pairs from the user, via conventional methods such as command line, config file, and environment variables. BSL-1.0  
gconfmm      
libconfig      
libconfini INI parser    
uconfig Lightweight, header-only, C++17 configuration library Apache 2.0 CMake

 

Command Line
Library Description License Configuration
Boost.Program_options The library allows to obtain program options, that is (name, value) pairs from the user, via conventional methods such as command line, config file, and environment variables. BSL-1.0  
CLI11 A header-only command line parser for C++11 and beyond that provides a rich feature set with a simple and intuitive interface. BSD-3-Clause CMake
cxxopts A lightweight header-only C++11 (or C++17) command-line arguments parser, supporting the standard GNU style syntax for options. MIT CMake
gflags Library that implements commandline flags processing. It includes built-in support for standard types such as string and the ability to define flags in the source file in which they are used. BSD CMake
hbristow/argparse A slimline C++ class for parsing command-line arguments, with an interface similar to python's class of the same name. BSD  
morrisfranken/argparse A lightweight header-only library for parsing command line arguments in an elegant manner. Apache 2 CMake
p-ranav/argparse Single header argument Parser for C++17 MIT CMake
tclap A simple templatized C++ library for parsing command line arguments. The library provides a simple, flexible object-oriented interface. MIT CMake

 

CSS
Library Description License Configuration
mycss CSS Parser    

 

HOCON
Library Description License Configuration
cpp-hocon The C++ implementation of the HOCON format developed by Pupplet.    

 

JSON
Library Description License Configuration
ArduinoJson ArduinoJson    
Boost.JSON JSON parsing, serialization, and DOM in C++11/17 BSL-1.0  
CAJUN      
DAW JSON Link C++17 static C++ bindings with type checking allowing of parsing directly to user data structures without library allocation, push/pull modes, allocator support, constexpr BSL 1.0 CMake
jansson Jansson is C library for encoding, decoding and manipulating JSON data.    
jeayeson A very sane (header only) C++14 JSON library    
jios JSON Input Output Streams MIT CMake
JOST      
json Niels Lohmann JSON    
JSON Voorhees Killer JSON for C++    
JSON++      
json-cpp      
json11 json11 is a tiny JSON library for C++11, providing JSON parsing and serialization.    
JsonBox      
jsoncons A header-only library for JSON and JSON-like data formats, with JSON Pointer, JSON Patch, JSONPath, CSV, MessagePack, CBOR, BSON, UBJSON.    
jsoncpp   MIT CMake, Conan, vcpkg
jsonme--      
libjson      
minijson C++ DOM-less and allocation-free JSON parsing and serialization    
qjson      
rapidjson      
simdjson Parsing gigabytes of JSON per second taking advantage of modern micro-architectures and parallelizing with SIMD (Doc) (Kino) Apache-2.0 CMake, vcpkg
struct_mapping Mapping json to and from a c++ structure    
ThorsSerializer JSON/BSON/YAML Input Output Streams MIT Makefile
ujson µjson is a small, C++11, UTF-8, JSON library    
zoolib ZooLib is a C++ toolkit. MIT  

 

TOML
Library Description License Configuration
toml++ TOML parser and serializer for C++17 and later    
toml11 TOML parsing library based on C++11    

 

XML
Library Description License Configuration
ai-xml Serialize objects to and from XML by adding a single, minimal, function to a class. Uses libxml++ under the hood.    
GPDS General purpose data serializer to serialize objects to and from XML. Uses TinyXML under the hood.    
gSOAP XML data bindings    
libxml++      
pugixml Light-weight, simple and fast XML parser for C++ with XPath support MIT CMake, Conan
tinyxml      
tinyxml2 Another and work in progress of TinyXML.    
Xerces      

 

YAML
Library Description License Configuration
yaml-cpp      

Containers

Library Description License Configuration
Boost.Bimap a bidirectional maps library that offers associative containers such as bimap<X,Y> in which both X and Y can be used as a key. BSL-1.0  
Boost.Container a header-only library that implements several well-known containers, including STL-like containers, as well as recursive containers, and new useful containers: flat_mapflat_setflat_multimapflat_multisetstable_vectorstatic_vectorsmall_vectordevector. BSL-1.0  
Boost.Fusion a library for working with heterogeneous collections of tuples. Provides a set of containers (vectorlistset and map), along with transformed presentation of their underlying data, a.k.a views." BSL-1.0  
Boost.Heap an implementation of priority queues with more functionality and different performance characteristics, than STL has. BSL-1.0  
Boost.Pointer Container provides containers for holding heap-allocated objects in an exception-safe manner and with minimal overhead. BSL-1.0  
Boost.Tuple implements pre-C++11 n-tuple (a fixed size collection of elements) BSL-1.0  
Boost.Variant implements pre-C++17 variant (a safe, generic, stack-based discriminated union container) BSL-1.0  
cpp-btree header-only; B-tree containers make better use of the CPU cache: btree_mapbtree_setbtree_multimapbtree_multiset. (Src) Apache-2.0 CMake
DataFrame C++ DataFrame for statistical, Financial, and ML analysis -- in modern C++ using native types and continuous memory storage BSD-3-Clause CMake, Makefile, Conan, vcpkg
eggs::variant Eggs.Variant is a C++11/14/17 generic, type-safe, discriminated union. It is notable in particular for having very good constexpr support. BSL-1.0 CMake
Frozen constexpr perfect-hashing-based frozen sets and maps Apache-2.0  
Immer A library of persistent and immutable data structures Boost CMake
plf::colony Unordered "bag-like" container which outperforms std:: containers in high-modification scenarios while maintaining valid pointers to non-erased elements regardless of insertion and erasure. C++98/11/14/etc-compatible. See also P0447, std::hive. (Src) zlib conan build2
plf::list std::list implementation which sacrifices range-splicing for cache-friendliness, yielding faster insertion, erasure and iteration. C++98/11/14/etc-compatible. (Src) zlib  
plf::queue Drop-in replacement container for the std::queue container adaptor with better performance than std::deque and std::list in a queue context. C++98/11/14/etc-compatible. (Src) zlib  
plf::stack Drop-in replacement container for the std::stack container adaptor with better performance than std::vector and std::deque in a stack context. C++98/11/14/etc-compatible. (Src) zlib  
ring_span A header-only lite implementation of Arthur O'Dwyer's ring_span, a.k.a. circular buffer view. C++98- compatible. BSL-1.0 CMake
strict_variant A realtime/embedded-friendly (i.e. -fno-exceptions/-fno-rtti compatible), never-empty variant targetting C++11. Fast, prevents many undesirable implicit conversions. BSL-1.0 CMake
Ygg An intrusive C++11 implementation of high-performance containers and data structures such as a Red-Black-Tree, an Interval Tree and an Interval Map. MIT CMake

Cryptography

Library Description License Configuration
Botan      
crypto++      
gnutls      
openssl      
TomCrypt      

Databases

Library Description License Configuration
cpp-redis C++11 Lightweight Redis client: async, thread-safe, no dependency, pipelining, multi-platform.    
DTL      
EasyQtSql A lightweight header-only C++11 library for quick and easy SQL querying with QtSql    
Galera The Galera Cluster is the synchronous multi-master replication library (Galera) and a Write Set Replication (WSREP) API for MySQL/MariaDB (Src) GPLv2 CMake, Scons
LevelDB A C++ library developed by Google that handles billion-scale Key-Value data persistence storage.    
libpqxx      
lmdb++ C++11 wrapper for the LMDB embedded B+ tree database library.    
mongocxx C++11 driver library for MongoDB    
mysql++      
nanodbc A small, cross-platform, C++14 wrapper for the native C ODBC API MIT CMake
ODB ODB is an open-source, cross-platform, and cross-database object-relational mapping (ORM) system for C++. ODB supports MySQL, SQLite, PostgreSQL, Oracle, and Microsoft SQL Server relational databases as well as C++98/03 and C++11 language standards. GPL2 and/or NCUEL  
OTL      
Pgfe The PostgreSQL client (FrontEnd) API in modern C++ Zlib CMake
QTL A friendly and lightweight C++ database library for MySQL, SQLite and ODBC.    
QUINCE QUeries IN C++ Expressions (ORM+EDSL) Boost  
QxOrm Object Relational Mapping (ORM) database library for C++/Qt, supports most common databases, serialization (JSON, binary, XML); standalone multi-threaded HTTP web server GPLv3 or Proprietary  
redis-cpp C++17 Lightweight C++ client header-only library for executing Redis commands.    
redis-plus-plus A Redis client written in C++ 11, and supports Redis Sentinel, Redis Cluster, pipeline, transaction, pubsub, connection pool and STL-like interface    
SOCI      
SQLAPI++      
SQLiteCPP      
sqlpp11      
taoPQ Lightweight C++17 PostgreSQL client library Boost CMake

Embedded languages bindings

Library Description License Configuration
AngelScript A scripting language like C++. ZLib  
ChaiScript An easy to use embedded scripting language for C++. BSD-3-Clause  
ExprTk A simple to use, easy to integrate and extremely efficient run-time mathematical expression parser and evaluation engine. ExprTk supports numerous forms of functional, logical and vector processing semantics and is very easily extendible.    
Jinx Scripting language designed for videogames. MIT CMake
spidermonkey.dev Mozilla’s JavaScript and WebAssembly Engine.    
muparser Many applications require the parsing of mathematical expressions. The main objective muparser is to provide a fast, easy and secure way of doing this. muparser is an extensible high performance math expression parser library written in C++. BSD-2-Clause CMake
PythonQt Dynamic Python binding for the Qt framework. It offers an easy way to embed the Python scripting language into C++ Qt applications. LGPL 2.1  
ScriptCaller a header only library allowing us to call ruby scripts.    
lua Lightweight multi-paradigm scripting language designed primarily for embedded use. C library. MIT  
sol2 A modern header-only C++ library binding to Lua. MIT CMake
v8pp Bind C++ functions and classes into V8 JavaScript engine.    

Embedded/Realtime

Library Description License Configuration
distortos object-oriented C++ RTOS for microcontrollers    
ETL Embedded Template Library - C++03, Portable template library tailored for low resource (embedded) platforms ((Src)) MIT  
QP/C++ RTOS kernel: Real-Time Embedded Frameworks based on active objects & state machines GPLv3  
µcuREST C++11 REST/JSON server framework for microcontrollers    

File metadata

Library Description License Configuration
exempi      
exiv2      
libkexiv2      
rarian      

Financial Calculations

Library Description License Configuration
DataFrame C++ DataFrame for statistical, Financial, and ML analysis -- in modern C++ using native types and continuous memory storage BSD-3-Clause CMake, Makefile, Conan
QuantLib Quantitative finance Library - A free/open-source library for quantitative finance modified BSD  

Game Engine Architecture

Library Description License Configuration
Anax      
BOX2D Physics engine    
EntityPlus      
EntityX      
EnTT      

General Multimedia

Library Description License Configuration
Kigs-framework Modular Multi-purpose Cross Platform Framework MIT  
openFrameworks   MIT  
SDL Simple DirectMedia Layer: cross-platform, low level access to audio, keyboard, mouse, joystick, and graphics hardware via that platform's graphics API (usually OpenGL or Direct3D) zlib  
SFML Simple and Fast Multimedia Library; multi-platform (Windows, Linux, macOS and soon Android & iOS); provides a simple interface to ease the development of games and multimedia applications. It is composed of five modules: system, window, graphics (over OpenGL), audio and network. zlib/png CMake
SIGIL Sound, Input, and Graphics Integration Library; mind-bogglingly simple, cross-platform, minimalist library for text, shapes, input, audio, and 2D images. Supported platforms: Windows, Linux and Raspberry Pi License CMake

Generic

Library Description License Configuration
Abseil An open-source collection of C++ library code from Google designed to augment the C++ standard library. (Doc) (Src) Apache-2.0 CMake
Abstract Intrusive Containers More flexible than Boost.Intrusive, but not STL-compatible.    
BDE The Bloomberg Development Environment core libraries from Bloomberg L.P. Apache  
Better Enums Reflective enums (enum to string, iteration, etc.) with constexpr support. BSD  
bitfield.h Bit field structure facility, more portable/flexible than the base language facility.    
Boost large collection of generic libraries BSL-1.0  
CAF The C++ Actor Framework (CAF) is an open source C++11 actor model implementation featuring lightweight & fast actor implementations, pattern matching for messages, network transparent messaging, and more BSD  
Cinder A community-developed, free and open source library for professional-quality creative coding in C++. (Doc) (Src) Modified BSD CMake
CommonPP Multi-purpose library with a strong emphasis on getting metrics out of a project. BSD  
composite_op.h Basic class data member introspection, cumbersome and often non-re-entrant, but sometimes useful.    
cpp-mmf A C++98 library that encapsulates memory-mapped-files for POSIX or Windows    
cxxomfort Backports of C++ features (C++11 to C++03 and C++1y proposals to C++11/C++03).    
Dlib networking, threads, graphical interfaces, data structures, linear algebra, machine learning, XML and text parsing, numerical optimization, Bayesian nets, and numerous other tasks Boost  
eventpp eventpp is a C++ event library for callbacks, event dispatcher, and event queue. With eventpp you can easily implement signal and slot mechanism, publisher and subscriber pattern, or observer pattern. Apache 2.0  
fcppt Freundlich's C++ Toolkit (fcppt) is a collection of libraries focusing on improving general C++ code by providing better types and making use of functional programming.    
Folly Facebook open-source library. A crossplatform library of C++14 components designed with practicality and efficiency in mind. (Doc) Apache-2.0 CMake, vcpkg
GSL C++ Core Guidelines Support Library implementation, recommended by Bjarne Stroustrup, Herb Sutter and Co in C++ Core Guidelines MIT CMake, vcpkg
gsl-lite A single-file header-only version of ISO C++ Guideline Support Library (GSL) for C++98, C++11 and later MIT  
GUL14 General Utility Library for C++14 from DESY: Often-used utility functions and types, including String utilities, Statistics and Numeric functions, Containers, Debugging means, etc. (Src) LGPL-2.1 Meson, vcpkg
History Modern C++17 Undo/Redo Framework Unlicense  
hspp An experimental library to bring Haskell Style Programming to C++. Apache-2.0 header-only
IP-DOS (tm) IdeaFarm (tm) Piggyback Distributed Operating System: A general purpose programming environment for the C++ language. Proprietary Open Source Open Watcom 2.0
JUCE An extensive, mature, cross-platform C++ toolkit GPL  
Kangaru A dependency injection container for C++11 and C++14 MIT  
Kerbal Backports of modern STL facilities to previous standard. More features! More constexpr! LGPL-3.0 header-only
libsourcey Cross-platform C++14 library for high speed networking and media encoding. HTTP, WebSockets, TURN, STUN, Symple and more. LGPL-2.1 CMake
LLNL/units A run-time C++ library for working with units of measurement and conversions between them and with string representations of units and measurements BSD 3-Clause "New" or "Revised" CMake
Loki design patterns    
match(it) A lightweight pattern-matching library for C++17 with macro-free APIs. Apache-2.0 header-only
nonstd-lite Parent of *-lite repositories, a migration path to post-C++11 features for pre-C++11 environments Boost  
nytl Generic C++17 header-only utility template library. Boost  
OnPosix C++ library providing several abstractions (e.g., threading, networking, logging, IPC, etc.) on POSIX platforms.    
Reason  ?? xml, xpath, regex, threads, sockets, http, sql, date-time, streams, encoding and decoding, filesystem, compression GPL  
SaferCPlusPlus Safe compatible substitutes for unsafe C++ primitives, including pointers, int and std::vector. Boost  
Smart Enum "to_string", "from_string" and more for your enums. Boost  
units A compile-time, header-only, dimensional analysis and unit conversion library built on c++14 with no dependencies MIT  
yaal Yet Another Abstraction Layer - algorithms, collections, arbitrary precision calculation, generic-DSL grammar driven parsers and more CC BY-ND-NC 4.0 CMake
Yato Modern C++(14/17) cross-platform STL-styled and STL-compatible library with implementing containers, ranges, iterators, type traits and other tools; actors system; type-safe config interface. Apache-2.0 CMake
yomm2 Open multi-methods for C++17 Boost  

GPS

Library Description License Configuration
gpsd gpsd is an open-source, cross-platform (Linux/Unix/BSD flavors, including Android and OS X) GPS-aware set of tools, such as a translator and replicator daemon for GPS devices, AIS radios, and other navigational sensors. gpsd is mostly written in C and Python, but also has C++ wrapper. gpsd is everywhere in mobile embedded systems. Every location-aware Android app is indirectly a gpsd client. (Doc) (Src) BSD 2-clause scons

Graphic user interface

Library Description License Configuration
Dear ImGui A bloat-free graphical user interface library that is highly optimized.    
FLTK A cross-platform C++ GUI toolkit (Linux, Windows, MacOS) that provides modern GUI functionality, and supports 3D graphics via OpenGL/GLUT. Designed to be small and modular. Includes an UI builder. LGPL ver.2  
nana GUI programming in modern C++ style (Doc) Boost  
nanogui Minimalistic cross-platform widget library for OpenGL 3.x or higher (Doc)    
OWLNext Modern update to OWL for writing GUI applications in standard C++ on Windows    
tiny file dialogs a single C C++ cross-platform file (no init, no main loop, 6 modal function calls)    
U++ Cross-platform (Windows, GNU/Linux, macOS) rapid application development framework with bundled IDE. C++17 Compatible. (Doc) (Src) BSD-3-Clause Makefile
WxWidgets A free and open source cross-platform (Windows, GNU/Linux, macOS) C++ framework for writing advanced GUI applications using native controls. (Doc) Modified LGPL CMake, Makefile
xtd Modern C++17/20 framework to create console, GUI and unit tests applications on Windows, macOS, Linux, iOS and android. (Website) (Doc) MIT CMake

 

CopperSpice
Library Description License Configuration
CopperSpice A set of C++ libraries used to develop cross-platform software applications. It uses modern idiomatic C++ and integrates seamlessly with the STL. CopperSpice was derived from the Qt framework. (Doc) (Src) LGPL-2.1 CMake
CsSignal Standalone C++ thread aware signal/slot library LGPL-2.1 CMake
CsString Standalone C++ unicode aware string library LGPL-2.1 CMake
libGuarded Standalone C++ multithreading library for managing access to shared data LGPL-2.1 CMake

 

GTK+
Library Description License Configuration
evince      
flowcanvas      
glibmm      
goocanvasmm      
gtkmm A cross-platform C++ interface for the GTK+ GUI library. LGPL  
libglademm      
libgnomecanvasmm      
webkitgtk      

 

Qt
Library Description License Configuration
libdbusmenu-qt A small library designed to make sharing and displaying of menu structures over DBus simple and easy to use. It works for both QT and GTK+ and makes building menus simple.    
Qt (Doc) (Src)    
QuickQanava C++14 network/graph visualization library / Qt node editor. BSD 2.0 CMake
qwt5 Qt Widgets for Technical Applications    
qwtplot3d      

 

U++
Library Description License Configuration
U++ U++ is a C++ cross-platform rapid application development framework focused on programmers productivity. It includes a set of libraries (GUI, SQL, etc.), and an integrated development environment. (Src/Bin) BSD  
upp-components A collection of 3rd party packages for U++ like TerminalCtrl, MessageCtrl etc.. BSD-3-Clause  

Graphics

Library Description License Configuration
bgfx Powerful cross-platform graphics rendering library, support platforms include Windows Mac Linux iOS Android Web, rendering backend including DX, opengl, metal webgl and so on.    
cairomm A C++ wrapper for the cairo graphics library that is 2D library with support for multiple output devices: X Window, Quartz, Win32, image buffers, PostScript, PDF, SVG, OpenGL (experimental). LGPL  
dfpsr 2D, 3D and isometric software renderer with desktop GUI toolkit, minimalistic dependency, designed for long time maintenance and can run without any 3D accelerated drivers zlib  
gegl GEGL (Generic Graphics Library) is a data flow based image processing framework, providing floating point processing and non-destructive image processing capabilities. (Src) LGPL  
io2d Reference Implementations of P0267, the proposed 2D graphics API for ISO C++ Boost CMake
nanovg 2D drawing library based on openGL/DX/metal.    
nux An OpenGL toolkit LGPL v3  
pangomm is the official C++ interface for the Pango font layout library. (Src) LGPL v2.1 Makefile
Skia is an open-source 2D-graphics library written in C++. Skia is used in Google Chrome, Chrome OS, Mozilla Firefox, Android, LibreOffice, Flutter, etc. Skia has several back-ends: software rasterization, (PDF) output, OpenGL, SVG, etc. New BSD  
TXLib TX Library is a tiny 2D graphics library for Win32 written in C++.    
ULIS Cross-Platform C++14 Library, Generic digital image processing, 2D Software rasterizer, Unlimited image formats (u8, u16, u32, float, double), Custom bit-ordered memory layout, All Photoshop pixel blending modes + 11 additional modes, Color models (RGB, HSL, HSV, CMYK, ...), Color-managed pipelines, Color Space support (icm profiles and device-independant), Optimized algorithms with multithreading, Optimized algorithms with SIMD Extensions (SSE2), Image pools and caches for optimisations, Memory storage of animated image sequences Custom (free-of-charge for non-commercial purposes only) CMake

Graphics (3D)

Library Description License Configuration
assimp 3D model loading    
bgfx Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library.    
Diligent Engine A modern cross-platform low-level 3D graphics library.    
Epoxy Modern successor to GLEW. Abstracts difference between some kinds of GL contexts, which makes it sometimes simpler to use than GLEW. Used by GTK+ project since 2015.    
G3D The G3D Innovation Engine is a fully featured, open source, cross platform (Windows, Linus, Mac OS) 3D game engine written in C/C++. G3D is used in commercial games, research papers, simulators, and university courses. It supports real-time and offline hardware rendering, ray tracing, model loading, linear algebra, and GP-computation on GPUs. Supports 3DS, OBJ, MP4, PNG, JPG, MD3 and many other formats, includes a native OpenGL skinnable GUI. (Src) (Doc) BSD-2  
GLAD Customizable, lightweight library for loading OpenGL functions    
GLEW OpenGL function loading    
GLFW OpenGL window manager    
GLM Header only C++ mathematics library for rendering    
hlsl++ Header only C++ math library for rendering using hlsl syntax. Supports SSE and NEON    
Horde3D Horde3D is a small open source 3D rendering engine. It is written in an effort to create a graphics engine that offers the stunning visual effects expected in next-generation games being lightweight and as clean as possible.    
Irrlicht The Irrlicht Engine is an open source realtime 3D engine written in C++. It is cross-platform, using D3D, OpenGL and its own software renderers.    
klein C++11/14/17 SSE-optimized Projective Geometric Algebra library for graphics and animation    
Magnum Lightweight and modular C++11/C++14 graphics middleware for games and data visualization    
O3DE Open-source 3D Engine (former Amazon's Lumberyard) is a C++ multi-platform 3D engine to build AAA games, cinema-quality 3D worlds, and high-fidelity simulations. Includes physics simulation, script engine, networking, and more. (Doc) Apache 2.0 CMake
Ogre3D OGRE - Object-Oriented Graphics Rendering Engine - is a multipurpose visualization library, suitable for scientific visualization, games, simulation, virtual reality and other graphic projetcs. It is multiplatform and very robust, with a good documentation. MIT CMake
Open CASCADE SDK for 3D CAD/CAM/CAE applications    
OpenGL 3D language, graphics and SDK for developing 3D applications.    
OpenSceneGraph OpenSceneGraph is an open source high performance 3D graphics toolkit, used by application developers in fields such as visual simulation, games, virtual reality, scientific visualization and modelling.    
Visionaray A C++ ray tracing template library.    
VTK Visualization Toolkit (VTK) is an open source software for manipulating and displaying scientific data. It comes with state-of-the-art tools for 3D rendering, a suite of widgets for 3D interaction, and extensive 2D plotting capability.    
Vulkan Vulkan is by design a low-level API that removes many of the abstractions found in previous generation graphics APIs. This is great for delivering maximum performance, but has the side effect of exposing more complexity to the developer. Fortunately, several excellent tutorials exist to help clear this hurdle and get productive quickly.    

Images

Library Description License Configuration
Adobe/boost GIL high-level generic library, focused on algorithms that operate on 2D images. Very limited I/O options. BSL-1.0  
agge Anti-Grain Evolution. 2D graphics engine for Speed and Quality in C++ MIT CMake
FreeImage An Open-Source library project for developers who would like to support popular graphics image formats like PNG, BMP, JPEG, TIFF and others GPLv2, GPLv3, FIPL  
GraphicsMagick Reading, writing, and manipulating images in over 88 major formats. Forked from ImageMagick in 2002 Copyright Mercurial
SAIL Reading and writing static, animated, multi-paged images along with their meta data and ICC profiles. Converting capabilities. Targets simplicity and speed. MIT CMake
stb The header-only libraries for C/C++, mostly game-dev oriented. The noteworthy caps: image loader/writer/resizer; font text rasterizer; type-safe containers; ogg vorbis decoder; real-time DXT compressor; Perlin noise generator; lexer for pet DSLs; fast sprintf. MIT header-only

 

Formats
Library Description License Configuration
djvulibre      
imagemagick      
Kaitai Struct C++ runtime      
libraw      
openexr      
poppler      
qimageblitz      
SVG++      

 

Plotting
Library Description License Configuration
Matplot++ gnuplot based C++ Graphics Library for Data Visualization. Matplot++ can take advantage of the following libs: OpenCV, OpenGL, LAPACK, BLAS, FFTW, JPEG, TIFF, ZLIB, PNG, GLAD, GLFW3. (Doc) MIT CMake
plotutils The GNU plotutils package contains libplot, a C/C++ library for exporting 2-D vector graphics in many file formats, both vector and bitmap. libplot can animate 2-D vector graphics and uses a Postscript-like API for file export and graphics animations. GPL  
sciplot A modern header-only C++ scientific plotting library powered by gnuplot, with the export to pdf, svg, png, eps, etc. MIT CMake, vcpkg

Image Processing

Library Description License Configuration
dlib      
Halide A C++-embedded DSL for high-performance processing of images and tensors. MIT CMake, vcpkg
ITK - Insight Toolkit ITK is an open-source, cross-platform library that provides developers with an extensive suite of software tools for image analysis. Developed through extreme programming methodologies, ITK builds on a proven, spatially-oriented architecture for processing, segmentation, and registration of scientific images in two, three, or more dimensions. Apache 2.0 CMake
opencv      
OTB      

Internationalization

Library Description License Configuration
gettext      
ICU International Components for Unicode is a mature, widely used set of C/C++ libraries providing Unicode and Globalization support for software applications. (Src) icu4c/LICENSE  
spirit-po A small, header-only library which parses po-files and provides an interface similar to GNU libintl. Based on boost::spirit.    

Logging

Library Description License Configuration
Backward Printing nice Python-styled stack traces with colors and source snippets, especially on crashes. Header-only. MIT CMake, Conan
Boost.Log A cross-platform logging library that is simple to use, extensible, and performant. BSL-1.0  
clutchlog Single-header logging system which targets versatile DEBUGGING instead of service event storage. BSD CMake
glog Google Logging Library for C++98 based on C++-style streams License Bazel, CMake, vcpkg
Log4cplus Cross-platform, C++17 Logging API (modeled after the Java log4j API) providing thread-safe, flexible, and arbitrarily granular control over log management and configuration. BSD (two clause) or Apache 2.0 Autotools, CMake, Visual Studio
Log4cpp A library of C++ classes for flexible logging to files, syslog, IDSA and other destinations. LGPL  
log4cxx Apache log4cxx is a logging framework for C++ patterned after Apache log4j. (Src) Apache CMake
Pantheios Diagnostic Logging API library, offering a combination of type-safety, efficiency, genericity and extensibility BSD-style  
plog Portable and simple log for C++ in less than 1000 lines of code MPL-2.0  
Quill Cross-platform, C++14 Asynchronous Low Latency Logging Library MIT CMake
spdlog Super fast, header only, C++ logging library MIT CMake, Conan

Error handling

Library Description License Configuration
Boost.LEAF Lightweight error-handling library for C++11: single-header format, no dependencies, no dynamic memory allocations, can be used with or without exception handling, multi-threading ready. BSL-1.0  

Math

Library Description License Configuration
alglib ALGLIB is a cross-platform (Windows/POSIX/Linux) numerical analysis and data processing library. ALGLIB features include: Data analysis, Optimization and nonlinear solvers, Interpolation, Linear algebra and linear solvers, FFT and many others. Free (GPL/Personal/Academic) and Commercial  
ArrayFire is a cross-platform (Windows/OSX/Linux) general purpose HPC (CPU/GPU/OpenCL/CUDA/GPGPU) library for parallel computing. ArrayFire domains are: Vector Algorithms, Image Processing, Computer Vision, Signal Processing, Linear Algebra, Statistics, and more. (Src) Custom  
BigNumber C++ class for creating and computing arbitrary-length integers    
Boost.Math includes several contributions in the domain of mathematics: Floating Point Utilities, Mathematical Constants, Statistical Distributions and Functions, Statistics, Vector Functionals - Norms, Special Functions, Root Finding & Minimization Algorithms, Polynomials and Rational Functions, Interpolation, Quadrature and Differentiation, Filters, Complex Number Functions, Quaternions, Octonions, Integer Utilities (Greatest Common Divisor and Least Common Multiple), Series, Rationals and Continued Fractions. BSL-1.0  
Boost.Multiprecision The Multiprecision Library provides integer, rational, floating-point, and complex types in C++ that have more range and precision than C++'s ordinary fundamental (built-in) types. BSL-1.0  
Boost.Random provides a variety of generators and distributions to produce random numbers having useful properties, such as uniform distribution. BSL-1.0  
Boost.SafeNumerics C++14, header only, Guaranteed Correct Integer Arithmetic, a drop-in replacement for the built-in integer types. BSL-1.0  
C++ Matrix High performance and accurate (e.g. edge cases) matrix math library with expression template arithmetic operators BSD-3-Clause CMake, Makefile
CasADi Symbolic framework for nonlinear optimization and algorithmic differentiation. Supports C++ code generation for symbolic expressions and dynamic connection of compiled generated code.    
cpp-measures A header-only C++11 library to handle physical measures    
G+Smo cross-platform library for isogeometric analysis    
GNU MP bignum C++ interface C++ convenience class interface that offers overloaded functions and operators. The GMP is a free C library for arbitrary precision arithmetic, operating on signed integers, rational and floating-point numbers. GNU LGPL v3 and GNU GPL v2  
libmpdec++ Cross-platform library for correctly-rounded arbitrary precision decimal floating point arithmetic. BSD-2-Clause Autoconf, Visual Studio build scripts
mathiu.cpp A simple computer algebra system in C++17 Apache-2.0 CMake
PCGrand PCG is a family of simple fast space-efficient statistically good algorithms for random number generation. Unlike many general-purpose RNGs, they are also hard to predict. Apache  
NTL A Library for doing Number Theory. NTL is a high-performance, portable C++ library providing data structures and algorithms for manipulating signed, arbitrary length integers, and for vectors, matrices, and polynomials over the integers and over finite fields. LGPLv2.1+  
SEMT Compile time symbolic differentiation    
stats++ Advanced, comprehensive statistical software: data collection and preprocessing, statistics, machine learning, and optimization, with open C++ source code.    
StatsLib A templated, header-only library of statistical distribution functions.    

 

Automata theory
Library Description License Configuration
yasmine C++11 UML state machine framework (Doc) (Src) License  
UML_StateMachine UML State Machine is a pure C++20 library for defining state charts statically and executing them. (Doc) GPLv3 CMake

 

Class Library for Numbers
Library Description License Configuration
cln CLN is a library for efficient computations with all kinds of numbers in arbitrary precision. GPL  
CNL Compositional Numeric Library - fixed-precision numeric types BSL-1.0 CMake, Conan
Universal Numbers A C++17/20 template library providing plug-in replacements for the native arithmetic types (integer/decimal/fixed-point/floating-point/posits/logarithmic/interval) MIT CMake, Vcpkg, Conan

 

Computational geometry
Library Description License Configuration
CGAL Computational geometry algorithms library GPL-3.0 or commercial CMake
PCL Point Cloud library    
pmp-library Polygon Mesh Processing Library    
Wykobi Computational geometry library    

 

Graph theory
Library Description License Configuration
Boost.Graph   BSL-1.0  
CXXGraph A C++17 Header-Only Library for Graph Representation, Manipulation, Partitioning and Algorithms AGPL-3.0 CMake
GTpo A C++14 directed graphs modelling library, part of QuickQanava project BSD QMake, CMake
LEMON Library for Efficient Modeling and Optimization in Networks implements common data structures and algorithms focusing on combinatorial optimization, graphs and networks. (Doc) License  
NGraph A simple (Network) Graph library in C++    
OGDF Open Graph algorithms and Data structures Framework - is a C++ library for graph algorithms, in particular for automatic graph drawing. GPL v2 or v3  

 

Linear algebra
Library Description License Configuration
Armadillo      
Blaze      
Blitz++      
Boost.uBLAS   BSL-1.0  
DecompLib A header-only C++11 library to decompose a vector into a set of positive definite weighted basis vectors.    
Dlib - linear algebra tools      
Eigen A C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms. MPL2 CMake, Conan
ETL      
IT++      
Matrix Easy-to-use Scientific Computing library in/for C++ available for Linux and Windows. MIT CMake
PETSc A suite of data structures and routines for the parallel solution of scientific applications modeled by partial differential equations. It supports MPI, and GPUs through CUDA or OpenCL, as well as hybrid MPI-GPU.    
Spectra Sparse Eigenvalue Computation Toolkit as a Redesigned ARPACK is an open-source header-only C++ library for large scale eigenvalue problems, built on top of Eigen linear algebra library (also open-source and header-only). (Src) MPL-2.0 CMake, vcpkg
xtensor A C++ library meant for numerical analysis with multi-dimensional array expressions. BSD  

 

Machine Learning
Library Description License Configuration
Dlib machine learning tools    
FANN Fast Artificial Neural Network Library    
gaenari C++17 based incremental decision tree Apache-2.0 CMake
liblinear      
libtorch C++ frontend to the popular PyTorch Python library (backend is written in C++) BSD-style CMake
MLPACK machine learning package    
Shogun large scale machine learning toolbox    
stats++      
tensorflow An Open Source Machine Learning Framework for Everyone; provides stable C++ API and written mainly in C++ Apache-2.0  

 

Numeral Calculations
Library Description License Configuration
LibBF An arbitrary precision numerical calculation library developed by Bellard with a sample program that calculates pi to billions of bits    

 

Optimization
Library Description License Configuration
ceres-solver Open-source C++ library for modeling and solving large, complicated optimization problems. It is a feature rich, mature and performant library which has been used in production at Google since 2010. Apache CMake, Conan
OptimLib A C++11 library of numerical optimization methods for nonlinear functions.    

Metaprogramming

Library Description License Configuration
Boost.CallableTraits   BSL-1.0  
Boost.Hana New metaprogramming library for both types and values BSL-1.0  
Boost.Metaparse Compile-time parser library, producing types, values, and metafunctions from compile-time strings BSL-1.0  
Boost.Mp11   BSL-1.0  
Boost.MPL Original metaprogramming library, targeted at C++03, slow BSL-1.0  
Boost.PFR A header only C++14 library for basic reflection (without macros): visiting members of a user defined type by index, IO streaming. BSL-1.0  
Boost.Proto A library for building expression template-backed EDSLs BSL-1.0  
Brigand Uses eager metafunctions, optimized for best performance    
CoMeta Lightweight, header-only C++14 metaprogramming library    
Meta Uses eager metafunctions, middle ground between metal and brigand wrt performance    
Metal Uses eager metafunctions, 100% SFINAE-friendly    
refl-cpp A modern compile-time reflection library for C++ with support for overloads, templates, attributes and proxies    
Refureku C++17 runtime reflection and code generation library MIT CMake
visit_struct A miniature reflection library, providing structure visitors for C++11/14. Self-contained, 200-400 lines of code depending how you count.    

PDF

Library Description License Configuration
HARU      
JagPDF      
PoDoFo      

Physics and Simulations

Library Description License Configuration
Bullet Physics simulation for games, visual effects, robotics and reinforcement learning    
HELICS Co-simulation framework for synchronizing time and exchanging data between different types of simulators BSD 3-Clause "New" or "Revised" CMake
ProjectCHRONO An Open Source Multi-physics Simulation Engine    
ReactPhysics3D C++ physics engine library for 3D simulations and game    

Robotics

 

Perception
Library Description License Configuration
GTSAM Sensor Fusion, SLAM, SFM, VO, Computer vision (Src) BSD CMake
opencv Computer vision and perception, Calibration, Feature Matching (Src) (Doc) BSD, Apache 2 CMake

Serialization

Library Description License Configuration
Boost.Serialization   BSL-1.0  
C++ XML objects      
cereal C++11 serialization BSD  
cppcodec Header-only C++11 library to encode/decode base64, base32 and hex with consistent, flexible API MIT  
GPDS General purpose data serializer to serialize objects to and from XML. Uses TinyXML under the hood.    
gSOAP accurate XML serialization    
iguana A modern, universal and easy-to-use serialization engine developed in C++17, based on compile-time Reflection. Supported formats: JSON, XML, user-defined. Apache-2.0 CMake
jios JSON serialization MIT CMake
libs11n      
protobuf      
rpnx-serial A library that can (de)serialize types like std::map, std::vector, etc.    
ThorsSerializer C++ Serialization library for JSON MIT Makefile
yaml-cpp      
YAS Yet Another Serialization. YAS is C++11 library; no third-party libraries dependencies. Archives can be binary, text, JSON Boost Header only

 

Binary serialization
Library Description License Configuration
binn A binary serialization library designed to be compact, fast, and easy to use, itself an implementation of the same name format.    
blobify C++17 header-only, infers the serialized layout from the structure definition alone. Boost CMake
bson-cxx C++ implementation in BSON format.    
fast_ber High-performance serialization using BER/DER encoding rules. Encoding layout is defined by ASN.1 schemas. Follows modern C++ practices, written in C++11.    
UBjsonCpp High-performance UBJson read-write library based on C++14    

Sorting

Library Description License Configuration
Cpp-sort A collection of various sorting algorithms in a simple package. MIT  
Indiesort Templated sort-wrapper function which allows use of std::sort (and other random-access sort methods) with non-random-access containers. It also increases the performance of sorting large types in random-access containers and arrays zlib  
Timsort Templated stable sorting function which outperforms quicksort-based algorithms including std::sort, for reversed or semi-sorted data. MIT  

System

Library Description License Configuration
Infoware C++ Library for pulling system and hardware information, without hitting the command line. Creative Commons v1.0 CMake

Terminal

Library Description License Configuration
cli A cross-platform header-only library for interactive command line interfaces in modern C++. BSL-1.0 make, cmake, nmake, vcpkg
cwidget high-level terminal interface library for C++, modeled on GTK+ and Qt, but using `curses` as its display layer GPL v2.0 make
replxx A readline and libedit replacement that supports UTF-8, syntax highlighting & hints.    

Testing

Library Description License Configuration
bandit Human-friendly unit testing for C++11    
Boost.Test   BSL-1.0  
Catch2      
cppunit      
CUTE C++ Unit Testing Easier (no reliance on static initialization for registration), integrated into Cevelop for TDD MIT  
doctest The lightest feature-rich C++ single-header testing framework for unit tests and TDD MIT CMake
ELFspy Testing in isolation with fakes and spies - Linux only    
Google Test      
lest A modern, C++11-native, single-file header-only, tiny framework for unit-tests, TDD and BDD (includes C++98 variant).    
liblittletest Portable, one file header-only testing framework    
tunit Modern c++17 unit testing library on Windows, macOS, Linux, iOS and android. Office site MIT CMake

See also

List of C++ unit testing frameworks at Wikipedia

Text

 

Coding
Library Description License Configuration
strsuite A C++20 library to manage strings with different encodings LGPL3.0 CMake
uchardet The ability to guess string encoding is basically the same as the uchardet function in Python. MOZILLA PUBLIC LICENSE v1.1 CMake
win-iconv The character set encoding conversion library for Linux and Mac. The Windows implementation of iconv is based on the Win32 Character Set Conversion API. public domain CMake

 

Diff/Patch
Library Description License Configuration
diff_match_patch Create and apply patches for strings (requires Qt) Apache 2.0 qmake

 

Format
Library Description License Configuration
fmt Open-source formatting library providing a fast and safe alternative to C stdio and C++ iostreams. Prototype for C++20 std::format family. Victor Zverovich CMake, Conan

 

Parse
Library Description License Configuration
BNFlite A single file lightweight grammar parser library MIT Header only
PEGTL Parsing Expression Grammar Template Library MIT Header only

 

Search
Library Description License Configuration
clucene CLucene is a cross platform, full-featured, open-source indexing and searching engine/API. (Src) (Doc) LGPL v2.1 CMake
Step Ukkonen's online algorithm for constructing suffix tree, Manber's algorithm for constructing suffix array. MIT Header only
xapian Open-source search engine with indexing facilities (Src) (Doc) GPL v2+ make

 

Template Engine
Library Description License Configuration
inja Header-only Template Engine for C++17. MIT CMake, Conan, vcpkg, etc.
Jinja2C++ C++14/17 implementation of Jinja2 templates MPL-2.0 CMake, Conan

Version Control

Library Description License Configuration
coo-semver The C++ operation library for semantic version numbers.    
LibGit2 Version Control System Git's core library.    

Video

Library Description License Configuration
crystalhd      
gstreamermm      
libmatroska      
libVLC      
mjpegtools      

Web

Library Description License Configuration
Chromium Embedded      
cpp-jwt      
Drogon A C++14/17 based HTTP web application framework running on Linux/macOS/Unix/Windows.    
ffead-cpp Framework for Enterprise Application Development in c++, HTTP1/HTTP2/HTTP3 compliant, Supports multiple server backends Apache 2.0 CMake
libhttpserver      
libkcddb      
liblastfm      
libmusicbrainz5      
libnavajo      
oatpp Light and powerful web-framework for IoT and high-performance web-services. Zero-dependency and easy-portable.    
QtWebApp HTTP(s) Server in C++ inspired by Java Servlets    
Tufão      
uri-template URI Templates expansion and reverse-matching for C++ Apache 2.0 CMake
userver The C++ Asynchronous Framework Apache 2.0 CMake
Wt Widgets and building blocks to build web apps, built-in security, PDF rendering, 2D and 3D painting, ORM, charting, authentication frameworks. (Doc) (Src) GNU GPL or Commercial  

[출처] https://en.cppreference.com/w/cpp/links/libs

 

 

 

 

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

 

 

 

 

 

[C/C++] A list of open source C++ libraries

A list of open source C++ libraries

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.

 [ExpandLibraries: Table Of Contents

 

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++ package manager for Windows, Linux, and macOS.
xmake A cross-platform Lua-based C/C++ build tool and package manager.

 

Libraries

Audio

Library Description License Configuration
Aquila Open-source and cross-platform DSP library for C++11. MIT CMake
Essentia 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
KFR 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
soundtouch 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 Makefile

 

CD
Library Description License Configuration
libkcompactdisc Library for interfacing with CDs GPL v2.0 CMake

 

Fingerprinting
Library Description License Configuration
chromaprint 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 Open-source audio fingerprint by MusicIP APL makefile

 

Formats
Library Description License Configuration
audiofile AudioFile Library handles reading and writing audio files in many common formats. (Src) LGPL-2.1 makefile
flac FLAC stands for Free Lossless Audio Codec, meaning that audio is compressed in FLAC without any loss in quality. FLAC stands out as the fastest and most widely supported lossless audio codec, non-proprietary, is unencumbered by patents. Open Source, BSD, GPL  
libsndfile Libsndfile is a cross-platform, open-source library for reading and writing files containing sampled sound (such as Windows WAV and the Apple/SGI AIFF format) through one standard library interface. LGPL v2.0 or v3.0  

 

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 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  

Benchmarking

Library Description License Configuration
benchmark A library to benchmark code snippets, similar to unit tests Apache 2.0 CMake
Celero Feature-rich C++ Benchmark Authoring Library/Framework. Supports Windows, Linux, and OSX using C++11. Apache CMake
gperftools '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 Simple, fast, accurate single-header microbenchmarking functionality for C++11/14/17/20. (Src) MIT CMake
plf::nanotimer Lowest-overhead, cross-platform simple timer class for benchmarking. zlib  

Communication

Library Description License Configuration
ACE asynchronous networking, event demultiplexing, messaging    
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.    
Boost.Asio asynchronous and synchronous networking, timers, serial I/O BSL-1.0  
Boost.Beast HTTP and WebSocket library built on top of Boost.Asio BSL-1.0  
Breep Event based, high-level, peer-to-peer library, allowing users to directly send and receive objects. European Union Public License 1.1 CMake
brpc 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 asynchronous HTTP client and listener, asynchronous Stream, URI, JSON MIT CMake
cpp-netlib cpp-netlib: The 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 header-only C++ micro web framework (inspired by Python Flask) BSD-3-Clause CMake
curlpp C++ wrapper for CURL library    
DumaisLib Various utilities such as WebServer, JSON, WebSocket server, REST framework (a library for creating a REST API in your c++ app) MIT Makefile
EasyHttp A cross-platform HTTP client library with a focus on usability and speed, supporting http response caching and more. MIT CMake
eCAL high performance inter-process communication Apache 2.0 CMake
fineftp-server ftp server library for windows and unix MIT CMake
gRPC A modern open-source high performance RPC framework that can run in any environment.    
gsoap C/C++ development toolkit for XML data bindings, fast WSDL/SOAP/XML Web services, WS-Security, JSON/XML-RPC RESTful services    
hmbdc Headers-only, lightweight and high performance C++17 message pub/sub middleware framework/lib   Headers-only
HTTPP Simple, production ready HTTP server built on top of Boost and a client built on top of libcurl. BSD 2-Clause "Simplified" CMake, Makefile
IXWebSocket Open-source WebSocket + HTTP library without dependency, supports SSL and the per message deflate WebSocket extension. BSD 3-Clause "New" or "Revised" CMake, Makefile
KCP A fast and reliable ARQ protocol that helps applications to reduce network latency. MIT CMake
libashttp asynchronous HTTP client library GNU Lesser General Public v3.0  
libjson-rpc-cpp

This framework provides cross platform JSON-RPC (remote procedure call) support for C++. It is fully JSON-RPC 2.0 & 1.0 compatible.

MIT CMake, Conan
libnavajo 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 Network packet crafting and sniffing library    
nanomsg fast message queue, zeromq successor    
netif Header-only C++14 library for getting network addresses on Windows, Linux, macOS, and FreeBSD. BSD 3-Clause "New" or "Revised" CMake
nghttp2 HTTP/2 C Library and tools (server, client, proxy and benchmarking tools) MIT CMake, configure
ngrest Fast and easy in use JSON RESTful Web Services Framework Apache 2.0 CMake
nng fast message queue, nanomsg successor    
Oat++ 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 Modern C++ client for MQTT from Eclipse   CMake
PcapPlusPlus Multiplatform C++ network sniffing and packet parsing and crafting framework    
POCO networking: encryption, HTTP; Zip files (Doc)    
rest_rpc modern, simple, easy to use rpc framework   CMake
restbed Restbed framework brings asynchronous RESTful functionality to C++11 applications. License CMake
restc-cpp Takes the pain out of 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, Makefile
seastar 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 Lightweight, header-only, Boost-based client-side socket/connector/socket pool/resolver Apache 2.0 CMake
tacopie C++11 TCP Library MIT CMake
TAO CORBA    
taox11 C++11 based CORBA implementation MIT  
Unicomm asynchronous networking, high-level TCP communication framework    
uvw libuv wrapper in modern C++ MIT CMake
WNetWrap WinInet wrapper in C++ MIT  
wvstreams C++ networking library including UniConf and a convenient D-Bus API GPL  
zeromq fast message queue    

Concurrency

Library Description License Configuration
Asyncpp An asynchronous c++ library that provides various concurrent operations MIT CMake
BlockingCollection A C++11 thread safe collection class modeled after .NET BlockingCollection.    
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 (unofficial) 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
hipSYCL provides a clang-based toolchain and a runtime SYCL implementation that can run on multiple target devices (NVIDIA/AMD GPU’s, CPU’s) BSD-2-Clause CMake
HPX A general purpose C++ runtime system for parallel and distributed applications of any scale    
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, Makefile
KOKKOS A programming model in C++ for writing performance portable HPC applications    
libopenmpi The Open MPI Project is an open source Message Passing Interface implementation 3-clause BSD  
libsimdpp A portable header-only zero-overhead C++ low level SIMD library. Boost CMake
MPL A C++-17-friendly header-only interface to the standard Message Passing Interface BSD 3-Clause "New" or "Revised" CMake
MutexGear Mutex-only synchronization (wheel, rwlock, work queues) The MutexGear Library configure, MSVC
OpenMP The OpenMP API specification for parallel programming    
RaftLib C++17 stream-like concurrent actors that enable parallel data-flow computations Apache-2.0 CMake
SObjectizer A small framework for simplification of development of concurrent and event-driven applications in C++ by using actor and publish-subscribe models.    
subprocess C++17/20 cross platform library for running subprocesses MIT CMake, Teaport
Taskflow Parallel Task Programming in Modern C++ TASKFLOW MIT CMake
Thrust STL-like parallel algorithms and data-structures on top of CUDA, TBB, or OpenMP Apache v2.0, Boost v1.0. CMake
VexCL C++ vector expression template library for OpenCL, CUDA, OpenMP MIT CMake
ViennaCL Linear algebra and algorithms with OpenMP, CUDA, and OpenCL backends    
Xenium A header-only C++17 library that provides various concurrent data structures and reclamation schemes. MIT CMake

Configuration

Library Description License Configuration
Boost.Program_options The library allows to obtain program options, that is (name, value) pairs from the user, via conventional methods such as command line, config file, and environment variables. BSL-1.0  
gconfmm      
libconfig      
libconfini INI parser    
uconfig Lightweight, header-only, C++17 configuration library Apache 2.0 CMake

 

Command Line
Library Description License Configuration
Boost.Program_options The library allows to obtain program options, that is (name, value) pairs from the user, via conventional methods such as command line, config file, and environment variables. BSL-1.0  
CLI11 A header-only command line parser for C++11 and beyond that provides a rich feature set with a simple and intuitive interface. BSD-3-Clause CMake
cxxopts A lightweight header-only C++11 (or C++17) command-line arguments parser, supporting the standard GNU style syntax for options. MIT CMake
gflags Library that implements commandline flags processing. It includes built-in support for standard types such as string and the ability to define flags in the source file in which they are used. BSD CMake
hbristow/argparse A slimline C++ class for parsing command-line arguments, with an interface similar to python's class of the same name. BSD  
morrisfranken/argparse A lightweight header-only library for parsing command line arguments in an elegant manner. Apache 2 CMake
p-ranav/argparse Single header argument Parser for C++17 MIT CMake
tclap A simple templatized C++ library for parsing command line arguments. The library provides a simple, flexible object-oriented interface. MIT CMake

 

CSS
Library Description License Configuration
mycss CSS Parser    

 

HOCON
Library Description License Configuration
cpp-hocon The C++ implementation of the HOCON format developed by Pupplet.    

 

JSON
Library Description License Configuration
ArduinoJson ArduinoJson    
Boost.JSON JSON parsing, serialization, and DOM in C++11/17 BSL-1.0  
CAJUN      
DAW JSON Link C++17 static C++ bindings with type checking allowing of parsing directly to user data structures without library allocation, push/pull modes, allocator support, constexpr BSL 1.0 CMake
jansson Jansson is C library for encoding, decoding and manipulating JSON data.    
jeayeson A very sane (header only) C++14 JSON library    
jios JSON Input Output Streams MIT CMake
JOST      
json Niels Lohmann JSON    
JSON Voorhees Killer JSON for C++    
JSON++      
json-cpp      
json11 json11 is a tiny JSON library for C++11, providing JSON parsing and serialization.    
JsonBox      
jsoncons A header-only library for JSON and JSON-like data formats, with JSON Pointer, JSON Patch, JSONPath, CSV, MessagePack, CBOR, BSON, UBJSON.    
jsoncpp   MIT CMake, Conan, vcpkg
jsonme--      
libjson      
minijson C++ DOM-less and allocation-free JSON parsing and serialization    
qjson      
rapidjson      
simdjson Parsing gigabytes of JSON per second taking advantage of modern micro-architectures and parallelizing with SIMD (Doc) (Kino) Apache-2.0 CMake, vcpkg
struct_mapping Mapping json to and from a c++ structure    
ThorsSerializer JSON/BSON/YAML Input Output Streams MIT Makefile
ujson µjson is a small, C++11, UTF-8, JSON library    
zoolib ZooLib is a C++ toolkit. MIT  

 

TOML
Library Description License Configuration
toml++ TOML parser and serializer for C++17 and later    
toml11 TOML parsing library based on C++11    

 

XML
Library Description License Configuration
ai-xml Serialize objects to and from XML by adding a single, minimal, function to a class. Uses libxml++ under the hood.    
GPDS General purpose data serializer to serialize objects to and from XML. Uses TinyXML under the hood.    
gSOAP XML data bindings    
libxml++      
pugixml Light-weight, simple and fast XML parser for C++ with XPath support MIT CMake, Conan
tinyxml      
tinyxml2 Another and work in progress of TinyXML.    
Xerces      

 

YAML
Library Description License Configuration
yaml-cpp      

Containers

Library Description License Configuration
Boost.Bimap a bidirectional maps library that offers associative containers such as bimap<X,Y> in which both X and Y can be used as a key. BSL-1.0  
Boost.Container a header-only library that implements several well-known containers, including STL-like containers, as well as recursive containers, and new useful containers: flat_mapflat_setflat_multimapflat_multisetstable_vectorstatic_vectorsmall_vectordevector. BSL-1.0  
Boost.Fusion a library for working with heterogeneous collections of tuples. Provides a set of containers (vectorlistset and map), along with transformed presentation of their underlying data, a.k.a views." BSL-1.0  
Boost.Heap an implementation of priority queues with more functionality and different performance characteristics, than STL has. BSL-1.0  
Boost.Pointer Container provides containers for holding heap-allocated objects in an exception-safe manner and with minimal overhead. BSL-1.0  
Boost.Tuple implements pre-C++11 n-tuple (a fixed size collection of elements) BSL-1.0  
Boost.Variant implements pre-C++17 variant (a safe, generic, stack-based discriminated union container) BSL-1.0  
cpp-btree header-only; B-tree containers make better use of the CPU cache: btree_mapbtree_setbtree_multimapbtree_multiset. (Src) Apache-2.0 CMake
DataFrame C++ DataFrame for statistical, Financial, and ML analysis -- in modern C++ using native types and continuous memory storage BSD-3-Clause CMake, Makefile, Conan, vcpkg
eggs::variant Eggs.Variant is a C++11/14/17 generic, type-safe, discriminated union. It is notable in particular for having very good constexpr support. BSL-1.0 CMake
Frozen constexpr perfect-hashing-based frozen sets and maps Apache-2.0  
Immer A library of persistent and immutable data structures Boost CMake
plf::colony Unordered "bag-like" container which outperforms std:: containers in high-modification scenarios while maintaining valid pointers to non-erased elements regardless of insertion and erasure. C++98/11/14/etc-compatible. See also P0447, std::hive. (Src) zlib conan build2
plf::list std::list implementation which sacrifices range-splicing for cache-friendliness, yielding faster insertion, erasure and iteration. C++98/11/14/etc-compatible. (Src) zlib  
plf::queue Drop-in replacement container for the std::queue container adaptor with better performance than std::deque and std::list in a queue context. C++98/11/14/etc-compatible. (Src) zlib  
plf::stack Drop-in replacement container for the std::stack container adaptor with better performance than std::vector and std::deque in a stack context. C++98/11/14/etc-compatible. (Src) zlib  
ring_span A header-only lite implementation of Arthur O'Dwyer's ring_span, a.k.a. circular buffer view. C++98- compatible. BSL-1.0 CMake
strict_variant A realtime/embedded-friendly (i.e. -fno-exceptions/-fno-rtti compatible), never-empty variant targetting C++11. Fast, prevents many undesirable implicit conversions. BSL-1.0 CMake
Ygg An intrusive C++11 implementation of high-performance containers and data structures such as a Red-Black-Tree, an Interval Tree and an Interval Map. MIT CMake

Cryptography

Library Description License Configuration
Botan      
crypto++      
gnutls      
openssl      
TomCrypt      

Databases

Library Description License Configuration
cpp-redis C++11 Lightweight Redis client: async, thread-safe, no dependency, pipelining, multi-platform.    
DTL      
EasyQtSql A lightweight header-only C++11 library for quick and easy SQL querying with QtSql    
Galera The Galera Cluster is the synchronous multi-master replication library (Galera) and a Write Set Replication (WSREP) API for MySQL/MariaDB (Src) GPLv2 CMake, Scons
LevelDB A C++ library developed by Google that handles billion-scale Key-Value data persistence storage.    
libpqxx      
lmdb++ C++11 wrapper for the LMDB embedded B+ tree database library.    
mongocxx C++11 driver library for MongoDB    
mysql++      
nanodbc A small, cross-platform, C++14 wrapper for the native C ODBC API MIT CMake
ODB ODB is an open-source, cross-platform, and cross-database object-relational mapping (ORM) system for C++. ODB supports MySQL, SQLite, PostgreSQL, Oracle, and Microsoft SQL Server relational databases as well as C++98/03 and C++11 language standards. GPL2 and/or NCUEL  
OTL      
Pgfe The PostgreSQL client (FrontEnd) API in modern C++ Zlib CMake
QTL A friendly and lightweight C++ database library for MySQL, SQLite and ODBC.    
QUINCE QUeries IN C++ Expressions (ORM+EDSL) Boost  
QxOrm Object Relational Mapping (ORM) database library for C++/Qt, supports most common databases, serialization (JSON, binary, XML); standalone multi-threaded HTTP web server GPLv3 or Proprietary  
redis-cpp C++17 Lightweight C++ client header-only library for executing Redis commands.    
redis-plus-plus A Redis client written in C++ 11, and supports Redis Sentinel, Redis Cluster, pipeline, transaction, pubsub, connection pool and STL-like interface    
SOCI      
SQLAPI++      
SQLiteCPP      
sqlpp11      
taoPQ Lightweight C++17 PostgreSQL client library Boost CMake

Embedded languages bindings

Library Description License Configuration
AngelScript A scripting language like C++. ZLib  
ChaiScript An easy to use embedded scripting language for C++. BSD-3-Clause  
ExprTk A simple to use, easy to integrate and extremely efficient run-time mathematical expression parser and evaluation engine. ExprTk supports numerous forms of functional, logical and vector processing semantics and is very easily extendible.    
Jinx Scripting language designed for videogames. MIT CMake
spidermonkey.dev Mozilla’s JavaScript and WebAssembly Engine.    
muparser Many applications require the parsing of mathematical expressions. The main objective muparser is to provide a fast, easy and secure way of doing this. muparser is an extensible high performance math expression parser library written in C++. BSD-2-Clause CMake
PythonQt Dynamic Python binding for the Qt framework. It offers an easy way to embed the Python scripting language into C++ Qt applications. LGPL 2.1  
ScriptCaller a header only library allowing us to call ruby scripts.    
lua Lightweight multi-paradigm scripting language designed primarily for embedded use. C library. MIT  
sol2 A modern header-only C++ library binding to Lua. MIT CMake
v8pp Bind C++ functions and classes into V8 JavaScript engine.    

Embedded/Realtime

Library Description License Configuration
distortos object-oriented C++ RTOS for microcontrollers    
ETL Embedded Template Library - C++03, Portable template library tailored for low resource (embedded) platforms ((Src)) MIT  
QP/C++ RTOS kernel: Real-Time Embedded Frameworks based on active objects & state machines GPLv3  
µcuREST C++11 REST/JSON server framework for microcontrollers    

File metadata

Library Description License Configuration
exempi      
exiv2      
libkexiv2      
rarian      

Financial Calculations

Library Description License Configuration
DataFrame C++ DataFrame for statistical, Financial, and ML analysis -- in modern C++ using native types and continuous memory storage BSD-3-Clause CMake, Makefile, Conan
QuantLib Quantitative finance Library - A free/open-source library for quantitative finance modified BSD  

Game Engine Architecture

Library Description License Configuration
Anax      
BOX2D Physics engine    
EntityPlus      
EntityX      
EnTT      

General Multimedia

Library Description License Configuration
Kigs-framework Modular Multi-purpose Cross Platform Framework MIT  
openFrameworks   MIT  
SDL Simple DirectMedia Layer: cross-platform, low level access to audio, keyboard, mouse, joystick, and graphics hardware via that platform's graphics API (usually OpenGL or Direct3D) zlib  
SFML Simple and Fast Multimedia Library; multi-platform (Windows, Linux, macOS and soon Android & iOS); provides a simple interface to ease the development of games and multimedia applications. It is composed of five modules: system, window, graphics (over OpenGL), audio and network. zlib/png CMake
SIGIL Sound, Input, and Graphics Integration Library; mind-bogglingly simple, cross-platform, minimalist library for text, shapes, input, audio, and 2D images. Supported platforms: Windows, Linux and Raspberry Pi License CMake

Generic

Library Description License Configuration
Abseil An open-source collection of C++ library code from Google designed to augment the C++ standard library. (Doc) (Src) Apache-2.0 CMake
Abstract Intrusive Containers More flexible than Boost.Intrusive, but not STL-compatible.    
BDE The Bloomberg Development Environment core libraries from Bloomberg L.P. Apache  
Better Enums Reflective enums (enum to string, iteration, etc.) with constexpr support. BSD  
bitfield.h Bit field structure facility, more portable/flexible than the base language facility.    
Boost large collection of generic libraries BSL-1.0  
CAF The C++ Actor Framework (CAF) is an open source C++11 actor model implementation featuring lightweight & fast actor implementations, pattern matching for messages, network transparent messaging, and more BSD  
Cinder A community-developed, free and open source library for professional-quality creative coding in C++. (Doc) (Src) Modified BSD CMake
CommonPP Multi-purpose library with a strong emphasis on getting metrics out of a project. BSD  
composite_op.h Basic class data member introspection, cumbersome and often non-re-entrant, but sometimes useful.    
cpp-mmf A C++98 library that encapsulates memory-mapped-files for POSIX or Windows    
cxxomfort Backports of C++ features (C++11 to C++03 and C++1y proposals to C++11/C++03).    
Dlib networking, threads, graphical interfaces, data structures, linear algebra, machine learning, XML and text parsing, numerical optimization, Bayesian nets, and numerous other tasks Boost  
eventpp eventpp is a C++ event library for callbacks, event dispatcher, and event queue. With eventpp you can easily implement signal and slot mechanism, publisher and subscriber pattern, or observer pattern. Apache 2.0  
fcppt Freundlich's C++ Toolkit (fcppt) is a collection of libraries focusing on improving general C++ code by providing better types and making use of functional programming.    
Folly Facebook open-source library. A crossplatform library of C++14 components designed with practicality and efficiency in mind. (Doc) Apache-2.0 CMake, vcpkg
GSL C++ Core Guidelines Support Library implementation, recommended by Bjarne Stroustrup, Herb Sutter and Co in C++ Core Guidelines MIT CMake, vcpkg
gsl-lite A single-file header-only version of ISO C++ Guideline Support Library (GSL) for C++98, C++11 and later MIT  
GUL14 General Utility Library for C++14 from DESY: Often-used utility functions and types, including String utilities, Statistics and Numeric functions, Containers, Debugging means, etc. (Src) LGPL-2.1 Meson, vcpkg
History Modern C++17 Undo/Redo Framework Unlicense  
hspp An experimental library to bring Haskell Style Programming to C++. Apache-2.0 header-only
IP-DOS (tm) IdeaFarm (tm) Piggyback Distributed Operating System: A general purpose programming environment for the C++ language. Proprietary Open Source Open Watcom 2.0
JUCE An extensive, mature, cross-platform C++ toolkit GPL  
Kangaru A dependency injection container for C++11 and C++14 MIT  
Kerbal Backports of modern STL facilities to previous standard. More features! More constexpr! LGPL-3.0 header-only
libsourcey Cross-platform C++14 library for high speed networking and media encoding. HTTP, WebSockets, TURN, STUN, Symple and more. LGPL-2.1 CMake
LLNL/units A run-time C++ library for working with units of measurement and conversions between them and with string representations of units and measurements BSD 3-Clause "New" or "Revised" CMake
Loki design patterns    
match(it) A lightweight pattern-matching library for C++17 with macro-free APIs. Apache-2.0 header-only
nonstd-lite Parent of *-lite repositories, a migration path to post-C++11 features for pre-C++11 environments Boost  
nytl Generic C++17 header-only utility template library. Boost  
OnPosix C++ library providing several abstractions (e.g., threading, networking, logging, IPC, etc.) on POSIX platforms.    
Reason  ?? xml, xpath, regex, threads, sockets, http, sql, date-time, streams, encoding and decoding, filesystem, compression GPL  
SaferCPlusPlus Safe compatible substitutes for unsafe C++ primitives, including pointers, int and std::vector. Boost  
Smart Enum "to_string", "from_string" and more for your enums. Boost  
units A compile-time, header-only, dimensional analysis and unit conversion library built on c++14 with no dependencies MIT  
yaal Yet Another Abstraction Layer - algorithms, collections, arbitrary precision calculation, generic-DSL grammar driven parsers and more CC BY-ND-NC 4.0 CMake
Yato Modern C++(14/17) cross-platform STL-styled and STL-compatible library with implementing containers, ranges, iterators, type traits and other tools; actors system; type-safe config interface. Apache-2.0 CMake
yomm2 Open multi-methods for C++17 Boost  

GPS

Library Description License Configuration
gpsd gpsd is an open-source, cross-platform (Linux/Unix/BSD flavors, including Android and OS X) GPS-aware set of tools, such as a translator and replicator daemon for GPS devices, AIS radios, and other navigational sensors. gpsd is mostly written in C and Python, but also has C++ wrapper. gpsd is everywhere in mobile embedded systems. Every location-aware Android app is indirectly a gpsd client. (Doc) (Src) BSD 2-clause scons

Graphic user interface

Library Description License Configuration
Dear ImGui A bloat-free graphical user interface library that is highly optimized.    
FLTK A cross-platform C++ GUI toolkit (Linux, Windows, MacOS) that provides modern GUI functionality, and supports 3D graphics via OpenGL/GLUT. Designed to be small and modular. Includes an UI builder. LGPL ver.2  
nana GUI programming in modern C++ style (Doc) Boost  
nanogui Minimalistic cross-platform widget library for OpenGL 3.x or higher (Doc)    
OWLNext Modern update to OWL for writing GUI applications in standard C++ on Windows    
tiny file dialogs a single C C++ cross-platform file (no init, no main loop, 6 modal function calls)    
U++ Cross-platform (Windows, GNU/Linux, macOS) rapid application development framework with bundled IDE. C++17 Compatible. (Doc) (Src) BSD-3-Clause Makefile
WxWidgets A free and open source cross-platform (Windows, GNU/Linux, macOS) C++ framework for writing advanced GUI applications using native controls. (Doc) Modified LGPL CMake, Makefile
xtd Modern C++17/20 framework to create console, GUI and unit tests applications on Windows, macOS, Linux, iOS and android. (Website) (Doc) MIT CMake

 

CopperSpice
Library Description License Configuration
CopperSpice A set of C++ libraries used to develop cross-platform software applications. It uses modern idiomatic C++ and integrates seamlessly with the STL. CopperSpice was derived from the Qt framework. (Doc) (Src) LGPL-2.1 CMake
CsSignal Standalone C++ thread aware signal/slot library LGPL-2.1 CMake
CsString Standalone C++ unicode aware string library LGPL-2.1 CMake
libGuarded Standalone C++ multithreading library for managing access to shared data LGPL-2.1 CMake

 

GTK+
Library Description License Configuration
evince      
flowcanvas      
glibmm      
goocanvasmm      
gtkmm A cross-platform C++ interface for the GTK+ GUI library. LGPL  
libglademm      
libgnomecanvasmm      
webkitgtk      

 

Qt
Library Description License Configuration
libdbusmenu-qt A small library designed to make sharing and displaying of menu structures over DBus simple and easy to use. It works for both QT and GTK+ and makes building menus simple.    
Qt (Doc) (Src)    
QuickQanava C++14 network/graph visualization library / Qt node editor. BSD 2.0 CMake
qwt5 Qt Widgets for Technical Applications    
qwtplot3d      

 

U++
Library Description License Configuration
U++ U++ is a C++ cross-platform rapid application development framework focused on programmers productivity. It includes a set of libraries (GUI, SQL, etc.), and an integrated development environment. (Src/Bin) BSD  
upp-components A collection of 3rd party packages for U++ like TerminalCtrl, MessageCtrl etc.. BSD-3-Clause  

Graphics

Library Description License Configuration
bgfx Powerful cross-platform graphics rendering library, support platforms include Windows Mac Linux iOS Android Web, rendering backend including DX, opengl, metal webgl and so on.    
cairomm A C++ wrapper for the cairo graphics library that is 2D library with support for multiple output devices: X Window, Quartz, Win32, image buffers, PostScript, PDF, SVG, OpenGL (experimental). LGPL  
dfpsr 2D, 3D and isometric software renderer with desktop GUI toolkit, minimalistic dependency, designed for long time maintenance and can run without any 3D accelerated drivers zlib  
gegl GEGL (Generic Graphics Library) is a data flow based image processing framework, providing floating point processing and non-destructive image processing capabilities. (Src) LGPL  
io2d Reference Implementations of P0267, the proposed 2D graphics API for ISO C++ Boost CMake
nanovg 2D drawing library based on openGL/DX/metal.    
nux An OpenGL toolkit LGPL v3  
pangomm is the official C++ interface for the Pango font layout library. (Src) LGPL v2.1 Makefile
Skia is an open-source 2D-graphics library written in C++. Skia is used in Google Chrome, Chrome OS, Mozilla Firefox, Android, LibreOffice, Flutter, etc. Skia has several back-ends: software rasterization, (PDF) output, OpenGL, SVG, etc. New BSD  
TXLib TX Library is a tiny 2D graphics library for Win32 written in C++.    
ULIS Cross-Platform C++14 Library, Generic digital image processing, 2D Software rasterizer, Unlimited image formats (u8, u16, u32, float, double), Custom bit-ordered memory layout, All Photoshop pixel blending modes + 11 additional modes, Color models (RGB, HSL, HSV, CMYK, ...), Color-managed pipelines, Color Space support (icm profiles and device-independant), Optimized algorithms with multithreading, Optimized algorithms with SIMD Extensions (SSE2), Image pools and caches for optimisations, Memory storage of animated image sequences Custom (free-of-charge for non-commercial purposes only) CMake

Graphics (3D)

Library Description License Configuration
assimp 3D model loading    
bgfx Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library.    
Diligent Engine A modern cross-platform low-level 3D graphics library.    
Epoxy Modern successor to GLEW. Abstracts difference between some kinds of GL contexts, which makes it sometimes simpler to use than GLEW. Used by GTK+ project since 2015.    
G3D The G3D Innovation Engine is a fully featured, open source, cross platform (Windows, Linus, Mac OS) 3D game engine written in C/C++. G3D is used in commercial games, research papers, simulators, and university courses. It supports real-time and offline hardware rendering, ray tracing, model loading, linear algebra, and GP-computation on GPUs. Supports 3DS, OBJ, MP4, PNG, JPG, MD3 and many other formats, includes a native OpenGL skinnable GUI. (Src) (Doc) BSD-2  
GLAD Customizable, lightweight library for loading OpenGL functions    
GLEW OpenGL function loading    
GLFW OpenGL window manager    
GLM Header only C++ mathematics library for rendering    
hlsl++ Header only C++ math library for rendering using hlsl syntax. Supports SSE and NEON    
Horde3D Horde3D is a small open source 3D rendering engine. It is written in an effort to create a graphics engine that offers the stunning visual effects expected in next-generation games being lightweight and as clean as possible.    
Irrlicht The Irrlicht Engine is an open source realtime 3D engine written in C++. It is cross-platform, using D3D, OpenGL and its own software renderers.    
klein C++11/14/17 SSE-optimized Projective Geometric Algebra library for graphics and animation    
Magnum Lightweight and modular C++11/C++14 graphics middleware for games and data visualization    
O3DE Open-source 3D Engine (former Amazon's Lumberyard) is a C++ multi-platform 3D engine to build AAA games, cinema-quality 3D worlds, and high-fidelity simulations. Includes physics simulation, script engine, networking, and more. (Doc) Apache 2.0 CMake
Ogre3D OGRE - Object-Oriented Graphics Rendering Engine - is a multipurpose visualization library, suitable for scientific visualization, games, simulation, virtual reality and other graphic projetcs. It is multiplatform and very robust, with a good documentation. MIT CMake
Open CASCADE SDK for 3D CAD/CAM/CAE applications    
OpenGL 3D language, graphics and SDK for developing 3D applications.    
OpenSceneGraph OpenSceneGraph is an open source high performance 3D graphics toolkit, used by application developers in fields such as visual simulation, games, virtual reality, scientific visualization and modelling.    
Visionaray A C++ ray tracing template library.    
VTK Visualization Toolkit (VTK) is an open source software for manipulating and displaying scientific data. It comes with state-of-the-art tools for 3D rendering, a suite of widgets for 3D interaction, and extensive 2D plotting capability.    
Vulkan Vulkan is by design a low-level API that removes many of the abstractions found in previous generation graphics APIs. This is great for delivering maximum performance, but has the side effect of exposing more complexity to the developer. Fortunately, several excellent tutorials exist to help clear this hurdle and get productive quickly.    

Images

Library Description License Configuration
Adobe/boost GIL high-level generic library, focused on algorithms that operate on 2D images. Very limited I/O options. BSL-1.0  
agge Anti-Grain Evolution. 2D graphics engine for Speed and Quality in C++ MIT CMake
FreeImage An Open-Source library project for developers who would like to support popular graphics image formats like PNG, BMP, JPEG, TIFF and others GPLv2, GPLv3, FIPL  
GraphicsMagick Reading, writing, and manipulating images in over 88 major formats. Forked from ImageMagick in 2002 Copyright Mercurial
SAIL Reading and writing static, animated, multi-paged images along with their meta data and ICC profiles. Converting capabilities. Targets simplicity and speed. MIT CMake
stb The header-only libraries for C/C++, mostly game-dev oriented. The noteworthy caps: image loader/writer/resizer; font text rasterizer; type-safe containers; ogg vorbis decoder; real-time DXT compressor; Perlin noise generator; lexer for pet DSLs; fast sprintf. MIT header-only

 

Formats
Library Description License Configuration
djvulibre      
imagemagick      
Kaitai Struct C++ runtime      
libraw      
openexr      
poppler      
qimageblitz      
SVG++      

 

Plotting
Library Description License Configuration
Matplot++ gnuplot based C++ Graphics Library for Data Visualization. Matplot++ can take advantage of the following libs: OpenCV, OpenGL, LAPACK, BLAS, FFTW, JPEG, TIFF, ZLIB, PNG, GLAD, GLFW3. (Doc) MIT CMake
plotutils The GNU plotutils package contains libplot, a C/C++ library for exporting 2-D vector graphics in many file formats, both vector and bitmap. libplot can animate 2-D vector graphics and uses a Postscript-like API for file export and graphics animations. GPL  
sciplot A modern header-only C++ scientific plotting library powered by gnuplot, with the export to pdf, svg, png, eps, etc. MIT CMake, vcpkg

Image Processing

Library Description License Configuration
dlib      
Halide A C++-embedded DSL for high-performance processing of images and tensors. MIT CMake, vcpkg
ITK - Insight Toolkit ITK is an open-source, cross-platform library that provides developers with an extensive suite of software tools for image analysis. Developed through extreme programming methodologies, ITK builds on a proven, spatially-oriented architecture for processing, segmentation, and registration of scientific images in two, three, or more dimensions. Apache 2.0 CMake
opencv      
OTB      

Internationalization

Library Description License Configuration
gettext      
ICU International Components for Unicode is a mature, widely used set of C/C++ libraries providing Unicode and Globalization support for software applications. (Src) icu4c/LICENSE  
spirit-po A small, header-only library which parses po-files and provides an interface similar to GNU libintl. Based on boost::spirit.    

Logging

Library Description License Configuration
Backward Printing nice Python-styled stack traces with colors and source snippets, especially on crashes. Header-only. MIT CMake, Conan
Boost.Log A cross-platform logging library that is simple to use, extensible, and performant. BSL-1.0  
clutchlog Single-header logging system which targets versatile DEBUGGING instead of service event storage. BSD CMake
glog Google Logging Library for C++98 based on C++-style streams License Bazel, CMake, vcpkg
Log4cplus Cross-platform, C++17 Logging API (modeled after the Java log4j API) providing thread-safe, flexible, and arbitrarily granular control over log management and configuration. BSD (two clause) or Apache 2.0 Autotools, CMake, Visual Studio
Log4cpp A library of C++ classes for flexible logging to files, syslog, IDSA and other destinations. LGPL  
log4cxx Apache log4cxx is a logging framework for C++ patterned after Apache log4j. (Src) Apache CMake
Pantheios Diagnostic Logging API library, offering a combination of type-safety, efficiency, genericity and extensibility BSD-style  
plog Portable and simple log for C++ in less than 1000 lines of code MPL-2.0  
Quill Cross-platform, C++14 Asynchronous Low Latency Logging Library MIT CMake
spdlog Super fast, header only, C++ logging library MIT CMake, Conan

Error handling

Library Description License Configuration
Boost.LEAF Lightweight error-handling library for C++11: single-header format, no dependencies, no dynamic memory allocations, can be used with or without exception handling, multi-threading ready. BSL-1.0  

Math

Library Description License Configuration
alglib ALGLIB is a cross-platform (Windows/POSIX/Linux) numerical analysis and data processing library. ALGLIB features include: Data analysis, Optimization and nonlinear solvers, Interpolation, Linear algebra and linear solvers, FFT and many others. Free (GPL/Personal/Academic) and Commercial  
ArrayFire is a cross-platform (Windows/OSX/Linux) general purpose HPC (CPU/GPU/OpenCL/CUDA/GPGPU) library for parallel computing. ArrayFire domains are: Vector Algorithms, Image Processing, Computer Vision, Signal Processing, Linear Algebra, Statistics, and more. (Src) Custom  
BigNumber C++ class for creating and computing arbitrary-length integers    
Boost.Math includes several contributions in the domain of mathematics: Floating Point Utilities, Mathematical Constants, Statistical Distributions and Functions, Statistics, Vector Functionals - Norms, Special Functions, Root Finding & Minimization Algorithms, Polynomials and Rational Functions, Interpolation, Quadrature and Differentiation, Filters, Complex Number Functions, Quaternions, Octonions, Integer Utilities (Greatest Common Divisor and Least Common Multiple), Series, Rationals and Continued Fractions. BSL-1.0  
Boost.Multiprecision The Multiprecision Library provides integer, rational, floating-point, and complex types in C++ that have more range and precision than C++'s ordinary fundamental (built-in) types. BSL-1.0  
Boost.Random provides a variety of generators and distributions to produce random numbers having useful properties, such as uniform distribution. BSL-1.0  
Boost.SafeNumerics C++14, header only, Guaranteed Correct Integer Arithmetic, a drop-in replacement for the built-in integer types. BSL-1.0  
C++ Matrix High performance and accurate (e.g. edge cases) matrix math library with expression template arithmetic operators BSD-3-Clause CMake, Makefile
CasADi Symbolic framework for nonlinear optimization and algorithmic differentiation. Supports C++ code generation for symbolic expressions and dynamic connection of compiled generated code.    
cpp-measures A header-only C++11 library to handle physical measures    
G+Smo cross-platform library for isogeometric analysis    
GNU MP bignum C++ interface C++ convenience class interface that offers overloaded functions and operators. The GMP is a free C library for arbitrary precision arithmetic, operating on signed integers, rational and floating-point numbers. GNU LGPL v3 and GNU GPL v2  
libmpdec++ Cross-platform library for correctly-rounded arbitrary precision decimal floating point arithmetic. BSD-2-Clause Autoconf, Visual Studio build scripts
mathiu.cpp A simple computer algebra system in C++17 Apache-2.0 CMake
PCGrand PCG is a family of simple fast space-efficient statistically good algorithms for random number generation. Unlike many general-purpose RNGs, they are also hard to predict. Apache  
NTL A Library for doing Number Theory. NTL is a high-performance, portable C++ library providing data structures and algorithms for manipulating signed, arbitrary length integers, and for vectors, matrices, and polynomials over the integers and over finite fields. LGPLv2.1+  
SEMT Compile time symbolic differentiation    
stats++ Advanced, comprehensive statistical software: data collection and preprocessing, statistics, machine learning, and optimization, with open C++ source code.    
StatsLib A templated, header-only library of statistical distribution functions.    

 

Automata theory
Library Description License Configuration
yasmine C++11 UML state machine framework (Doc) (Src) License  
UML_StateMachine UML State Machine is a pure C++20 library for defining state charts statically and executing them. (Doc) GPLv3 CMake

 

Class Library for Numbers
Library Description License Configuration
cln CLN is a library for efficient computations with all kinds of numbers in arbitrary precision. GPL  
CNL Compositional Numeric Library - fixed-precision numeric types BSL-1.0 CMake, Conan
Universal Numbers A C++17/20 template library providing plug-in replacements for the native arithmetic types (integer/decimal/fixed-point/floating-point/posits/logarithmic/interval) MIT CMake, Vcpkg, Conan

 

Computational geometry
Library Description License Configuration
CGAL Computational geometry algorithms library GPL-3.0 or commercial CMake
PCL Point Cloud library    
pmp-library Polygon Mesh Processing Library    
Wykobi Computational geometry library    

 

Graph theory
Library Description License Configuration
Boost.Graph   BSL-1.0  
CXXGraph A C++17 Header-Only Library for Graph Representation, Manipulation, Partitioning and Algorithms AGPL-3.0 CMake
GTpo A C++14 directed graphs modelling library, part of QuickQanava project BSD QMake, CMake
LEMON Library for Efficient Modeling and Optimization in Networks implements common data structures and algorithms focusing on combinatorial optimization, graphs and networks. (Doc) License  
NGraph A simple (Network) Graph library in C++    
OGDF Open Graph algorithms and Data structures Framework - is a C++ library for graph algorithms, in particular for automatic graph drawing. GPL v2 or v3  

 

Linear algebra
Library Description License Configuration
Armadillo      
Blaze      
Blitz++      
Boost.uBLAS   BSL-1.0  
DecompLib A header-only C++11 library to decompose a vector into a set of positive definite weighted basis vectors.    
Dlib - linear algebra tools      
Eigen A C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms. MPL2 CMake, Conan
ETL      
IT++      
Matrix Easy-to-use Scientific Computing library in/for C++ available for Linux and Windows. MIT CMake
PETSc A suite of data structures and routines for the parallel solution of scientific applications modeled by partial differential equations. It supports MPI, and GPUs through CUDA or OpenCL, as well as hybrid MPI-GPU.    
Spectra Sparse Eigenvalue Computation Toolkit as a Redesigned ARPACK is an open-source header-only C++ library for large scale eigenvalue problems, built on top of Eigen linear algebra library (also open-source and header-only). (Src) MPL-2.0 CMake, vcpkg
xtensor A C++ library meant for numerical analysis with multi-dimensional array expressions. BSD  

 

Machine Learning
Library Description License Configuration
Dlib machine learning tools    
FANN Fast Artificial Neural Network Library    
gaenari C++17 based incremental decision tree Apache-2.0 CMake
liblinear      
libtorch C++ frontend to the popular PyTorch Python library (backend is written in C++) BSD-style CMake
MLPACK machine learning package    
Shogun large scale machine learning toolbox    
stats++      
tensorflow An Open Source Machine Learning Framework for Everyone; provides stable C++ API and written mainly in C++ Apache-2.0  

 

Numeral Calculations
Library Description License Configuration
LibBF An arbitrary precision numerical calculation library developed by Bellard with a sample program that calculates pi to billions of bits    

 

Optimization
Library Description License Configuration
ceres-solver Open-source C++ library for modeling and solving large, complicated optimization problems. It is a feature rich, mature and performant library which has been used in production at Google since 2010. Apache CMake, Conan
OptimLib A C++11 library of numerical optimization methods for nonlinear functions.    

Metaprogramming

Library Description License Configuration
Boost.CallableTraits   BSL-1.0  
Boost.Hana New metaprogramming library for both types and values BSL-1.0  
Boost.Metaparse Compile-time parser library, producing types, values, and metafunctions from compile-time strings BSL-1.0  
Boost.Mp11   BSL-1.0  
Boost.MPL Original metaprogramming library, targeted at C++03, slow BSL-1.0  
Boost.PFR A header only C++14 library for basic reflection (without macros): visiting members of a user defined type by index, IO streaming. BSL-1.0  
Boost.Proto A library for building expression template-backed EDSLs BSL-1.0  
Brigand Uses eager metafunctions, optimized for best performance    
CoMeta Lightweight, header-only C++14 metaprogramming library    
Meta Uses eager metafunctions, middle ground between metal and brigand wrt performance    
Metal Uses eager metafunctions, 100% SFINAE-friendly    
refl-cpp A modern compile-time reflection library for C++ with support for overloads, templates, attributes and proxies    
Refureku C++17 runtime reflection and code generation library MIT CMake
visit_struct A miniature reflection library, providing structure visitors for C++11/14. Self-contained, 200-400 lines of code depending how you count.    

PDF

Library Description License Configuration
HARU      
JagPDF      
PoDoFo      

Physics and Simulations

Library Description License Configuration
Bullet Physics simulation for games, visual effects, robotics and reinforcement learning    
HELICS Co-simulation framework for synchronizing time and exchanging data between different types of simulators BSD 3-Clause "New" or "Revised" CMake
ProjectCHRONO An Open Source Multi-physics Simulation Engine    
ReactPhysics3D C++ physics engine library for 3D simulations and game    

Robotics

 

Perception
Library Description License Configuration
GTSAM Sensor Fusion, SLAM, SFM, VO, Computer vision (Src) BSD CMake
opencv Computer vision and perception, Calibration, Feature Matching (Src) (Doc) BSD, Apache 2 CMake

Serialization

Library Description License Configuration
Boost.Serialization   BSL-1.0  
C++ XML objects      
cereal C++11 serialization BSD  
cppcodec Header-only C++11 library to encode/decode base64, base32 and hex with consistent, flexible API MIT  
GPDS General purpose data serializer to serialize objects to and from XML. Uses TinyXML under the hood.    
gSOAP accurate XML serialization    
iguana A modern, universal and easy-to-use serialization engine developed in C++17, based on compile-time Reflection. Supported formats: JSON, XML, user-defined. Apache-2.0 CMake
jios JSON serialization MIT CMake
libs11n      
protobuf      
rpnx-serial A library that can (de)serialize types like std::map, std::vector, etc.    
ThorsSerializer C++ Serialization library for JSON MIT Makefile
yaml-cpp      
YAS Yet Another Serialization. YAS is C++11 library; no third-party libraries dependencies. Archives can be binary, text, JSON Boost Header only

 

Binary serialization
Library Description License Configuration
binn A binary serialization library designed to be compact, fast, and easy to use, itself an implementation of the same name format.    
blobify C++17 header-only, infers the serialized layout from the structure definition alone. Boost CMake
bson-cxx C++ implementation in BSON format.    
fast_ber High-performance serialization using BER/DER encoding rules. Encoding layout is defined by ASN.1 schemas. Follows modern C++ practices, written in C++11.    
UBjsonCpp High-performance UBJson read-write library based on C++14    

Sorting

Library Description License Configuration
Cpp-sort A collection of various sorting algorithms in a simple package. MIT  
Indiesort Templated sort-wrapper function which allows use of std::sort (and other random-access sort methods) with non-random-access containers. It also increases the performance of sorting large types in random-access containers and arrays zlib  
Timsort Templated stable sorting function which outperforms quicksort-based algorithms including std::sort, for reversed or semi-sorted data. MIT  

System

Library Description License Configuration
Infoware C++ Library for pulling system and hardware information, without hitting the command line. Creative Commons v1.0 CMake

Terminal

Library Description License Configuration
cli A cross-platform header-only library for interactive command line interfaces in modern C++. BSL-1.0 make, cmake, nmake, vcpkg
cwidget high-level terminal interface library for C++, modeled on GTK+ and Qt, but using `curses` as its display layer GPL v2.0 make
replxx A readline and libedit replacement that supports UTF-8, syntax highlighting & hints.    

Testing

Library Description License Configuration
bandit Human-friendly unit testing for C++11    
Boost.Test   BSL-1.0  
Catch2      
cppunit      
CUTE C++ Unit Testing Easier (no reliance on static initialization for registration), integrated into Cevelop for TDD MIT  
doctest The lightest feature-rich C++ single-header testing framework for unit tests and TDD MIT CMake
ELFspy Testing in isolation with fakes and spies - Linux only    
Google Test      
lest A modern, C++11-native, single-file header-only, tiny framework for unit-tests, TDD and BDD (includes C++98 variant).    
liblittletest Portable, one file header-only testing framework    
tunit Modern c++17 unit testing library on Windows, macOS, Linux, iOS and android. Office site MIT CMake

See also

List of C++ unit testing frameworks at Wikipedia

Text

 

Coding
Library Description License Configuration
strsuite A C++20 library to manage strings with different encodings LGPL3.0 CMake
uchardet The ability to guess string encoding is basically the same as the uchardet function in Python. MOZILLA PUBLIC LICENSE v1.1 CMake
win-iconv The character set encoding conversion library for Linux and Mac. The Windows implementation of iconv is based on the Win32 Character Set Conversion API. public domain CMake

 

Diff/Patch
Library Description License Configuration
diff_match_patch Create and apply patches for strings (requires Qt) Apache 2.0 qmake

 

Format
Library Description License Configuration
fmt Open-source formatting library providing a fast and safe alternative to C stdio and C++ iostreams. Prototype for C++20 std::format family. Victor Zverovich CMake, Conan

 

Parse
Library Description License Configuration
BNFlite A single file lightweight grammar parser library MIT Header only
PEGTL Parsing Expression Grammar Template Library MIT Header only

 

Search
Library Description License Configuration
clucene CLucene is a cross platform, full-featured, open-source indexing and searching engine/API. (Src) (Doc) LGPL v2.1 CMake
Step Ukkonen's online algorithm for constructing suffix tree, Manber's algorithm for constructing suffix array. MIT Header only
xapian Open-source search engine with indexing facilities (Src) (Doc) GPL v2+ make

 

Template Engine
Library Description License Configuration
inja Header-only Template Engine for C++17. MIT CMake, Conan, vcpkg, etc.
Jinja2C++ C++14/17 implementation of Jinja2 templates MPL-2.0 CMake, Conan

Version Control

Library Description License Configuration
coo-semver The C++ operation library for semantic version numbers.    
LibGit2 Version Control System Git's core library.    

Video

Library Description License Configuration
crystalhd      
gstreamermm      
libmatroska      
libVLC      
mjpegtools      

Web

Library Description License Configuration
Chromium Embedded      
cpp-jwt      
Drogon A C++14/17 based HTTP web application framework running on Linux/macOS/Unix/Windows.    
ffead-cpp Framework for Enterprise Application Development in c++, HTTP1/HTTP2/HTTP3 compliant, Supports multiple server backends Apache 2.0 CMake
libhttpserver      
libkcddb      
liblastfm      
libmusicbrainz5      
libnavajo      
oatpp Light and powerful web-framework for IoT and high-performance web-services. Zero-dependency and easy-portable.    
QtWebApp HTTP(s) Server in C++ inspired by Java Servlets    
Tufão      
uri-template URI Templates expansion and reverse-matching for C++ Apache 2.0 CMake
userver The C++ Asynchronous Framework Apache 2.0 CMake
Wt Widgets and building blocks to build web apps, built-in security, PDF rendering, 2D and 3D painting, ORM, charting, authentication frameworks. (Doc) (Src) GNU GPL or Commercial  

[출처] https://en.cppreference.com/w/cpp/links/libs

 

 

[C/C++] A list of open source C++ libraries

A list of open source C++ libraries

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.

 [ExpandLibraries: Table Of Contents

 

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++ package manager for Windows, Linux, and macOS.
xmake A cross-platform Lua-based C/C++ build tool and package manager.

 

Libraries

Audio

Library Description License Configuration
Aquila Open-source and cross-platform DSP library for C++11. MIT CMake
Essentia 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
KFR 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
soundtouch 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 Makefile

 

CD
Library Description License Configuration
libkcompactdisc Library for interfacing with CDs GPL v2.0 CMake

 

Fingerprinting
Library Description License Configuration
chromaprint 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 Open-source audio fingerprint by MusicIP APL makefile

 

Formats
Library Description License Configuration
audiofile AudioFile Library handles reading and writing audio files in many common formats. (Src) LGPL-2.1 makefile
flac FLAC stands for Free Lossless Audio Codec, meaning that audio is compressed in FLAC without any loss in quality. FLAC stands out as the fastest and most widely supported lossless audio codec, non-proprietary, is unencumbered by patents. Open Source, BSD, GPL  
libsndfile Libsndfile is a cross-platform, open-source library for reading and writing files containing sampled sound (such as Windows WAV and the Apple/SGI AIFF format) through one standard library interface. LGPL v2.0 or v3.0  

 

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 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  

Benchmarking

Library Description License Configuration
benchmark A library to benchmark code snippets, similar to unit tests Apache 2.0 CMake
Celero Feature-rich C++ Benchmark Authoring Library/Framework. Supports Windows, Linux, and OSX using C++11. Apache CMake
gperftools '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 Simple, fast, accurate single-header microbenchmarking functionality for C++11/14/17/20. (Src) MIT CMake
plf::nanotimer Lowest-overhead, cross-platform simple timer class for benchmarking. zlib  

Communication

Library Description License Configuration
ACE asynchronous networking, event demultiplexing, messaging    
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.    
Boost.Asio asynchronous and synchronous networking, timers, serial I/O BSL-1.0  
Boost.Beast HTTP and WebSocket library built on top of Boost.Asio BSL-1.0  
Breep Event based, high-level, peer-to-peer library, allowing users to directly send and receive objects. European Union Public License 1.1 CMake
brpc 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 asynchronous HTTP client and listener, asynchronous Stream, URI, JSON MIT CMake
cpp-netlib cpp-netlib: The 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 header-only C++ micro web framework (inspired by Python Flask) BSD-3-Clause CMake
curlpp C++ wrapper for CURL library    
DumaisLib Various utilities such as WebServer, JSON, WebSocket server, REST framework (a library for creating a REST API in your c++ app) MIT Makefile
EasyHttp A cross-platform HTTP client library with a focus on usability and speed, supporting http response caching and more. MIT CMake
eCAL high performance inter-process communication Apache 2.0 CMake
fineftp-server ftp server library for windows and unix MIT CMake
gRPC A modern open-source high performance RPC framework that can run in any environment.    
gsoap C/C++ development toolkit for XML data bindings, fast WSDL/SOAP/XML Web services, WS-Security, JSON/XML-RPC RESTful services    
hmbdc Headers-only, lightweight and high performance C++17 message pub/sub middleware framework/lib   Headers-only
HTTPP Simple, production ready HTTP server built on top of Boost and a client built on top of libcurl. BSD 2-Clause "Simplified" CMake, Makefile
IXWebSocket Open-source WebSocket + HTTP library without dependency, supports SSL and the per message deflate WebSocket extension. BSD 3-Clause "New" or "Revised" CMake, Makefile
KCP A fast and reliable ARQ protocol that helps applications to reduce network latency. MIT CMake
libashttp asynchronous HTTP client library GNU Lesser General Public v3.0  
libjson-rpc-cpp

This framework provides cross platform JSON-RPC (remote procedure call) support for C++. It is fully JSON-RPC 2.0 & 1.0 compatible.

MIT CMake, Conan
libnavajo 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 Network packet crafting and sniffing library    
nanomsg fast message queue, zeromq successor    
netif Header-only C++14 library for getting network addresses on Windows, Linux, macOS, and FreeBSD. BSD 3-Clause "New" or "Revised" CMake
nghttp2 HTTP/2 C Library and tools (server, client, proxy and benchmarking tools) MIT CMake, configure
ngrest Fast and easy in use JSON RESTful Web Services Framework Apache 2.0 CMake
nng fast message queue, nanomsg successor    
Oat++ 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 Modern C++ client for MQTT from Eclipse   CMake
PcapPlusPlus Multiplatform C++ network sniffing and packet parsing and crafting framework    
POCO networking: encryption, HTTP; Zip files (Doc)    
rest_rpc modern, simple, easy to use rpc framework   CMake
restbed Restbed framework brings asynchronous RESTful functionality to C++11 applications. License CMake
restc-cpp Takes the pain out of 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, Makefile
seastar 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 Lightweight, header-only, Boost-based client-side socket/connector/socket pool/resolver Apache 2.0 CMake
tacopie C++11 TCP Library MIT CMake
TAO CORBA    
taox11 C++11 based CORBA implementation MIT  
Unicomm asynchronous networking, high-level TCP communication framework    
uvw libuv wrapper in modern C++ MIT CMake
WNetWrap WinInet wrapper in C++ MIT  
wvstreams C++ networking library including UniConf and a convenient D-Bus API GPL  
zeromq fast message queue    

Concurrency

Library Description License Configuration
Asyncpp An asynchronous c++ library that provides various concurrent operations MIT CMake
BlockingCollection A C++11 thread safe collection class modeled after .NET BlockingCollection.    
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 (unofficial) 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
hipSYCL provides a clang-based toolchain and a runtime SYCL implementation that can run on multiple target devices (NVIDIA/AMD GPU’s, CPU’s) BSD-2-Clause CMake
HPX A general purpose C++ runtime system for parallel and distributed applications of any scale    
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, Makefile
KOKKOS A programming model in C++ for writing performance portable HPC applications    
libopenmpi The Open MPI Project is an open source Message Passing Interface implementation 3-clause BSD  
libsimdpp A portable header-only zero-overhead C++ low level SIMD library. Boost CMake
MPL A C++-17-friendly header-only interface to the standard Message Passing Interface BSD 3-Clause "New" or "Revised" CMake
MutexGear Mutex-only synchronization (wheel, rwlock, work queues) The MutexGear Library configure, MSVC
OpenMP The OpenMP API specification for parallel programming    
RaftLib C++17 stream-like concurrent actors that enable parallel data-flow computations Apache-2.0 CMake
SObjectizer A small framework for simplification of development of concurrent and event-driven applications in C++ by using actor and publish-subscribe models.    
subprocess C++17/20 cross platform library for running subprocesses MIT CMake, Teaport
Taskflow Parallel Task Programming in Modern C++ TASKFLOW MIT CMake
Thrust STL-like parallel algorithms and data-structures on top of CUDA, TBB, or OpenMP Apache v2.0, Boost v1.0. CMake
VexCL C++ vector expression template library for OpenCL, CUDA, OpenMP MIT CMake
ViennaCL Linear algebra and algorithms with OpenMP, CUDA, and OpenCL backends    
Xenium A header-only C++17 library that provides various concurrent data structures and reclamation schemes. MIT CMake

Configuration

Library Description License Configuration
Boost.Program_options The library allows to obtain program options, that is (name, value) pairs from the user, via conventional methods such as command line, config file, and environment variables. BSL-1.0  
gconfmm      
libconfig      
libconfini INI parser    
uconfig Lightweight, header-only, C++17 configuration library Apache 2.0 CMake

 

Command Line
Library Description License Configuration
Boost.Program_options The library allows to obtain program options, that is (name, value) pairs from the user, via conventional methods such as command line, config file, and environment variables. BSL-1.0  
CLI11 A header-only command line parser for C++11 and beyond that provides a rich feature set with a simple and intuitive interface. BSD-3-Clause CMake
cxxopts A lightweight header-only C++11 (or C++17) command-line arguments parser, supporting the standard GNU style syntax for options. MIT CMake
gflags Library that implements commandline flags processing. It includes built-in support for standard types such as string and the ability to define flags in the source file in which they are used. BSD CMake
hbristow/argparse A slimline C++ class for parsing command-line arguments, with an interface similar to python's class of the same name. BSD  
morrisfranken/argparse A lightweight header-only library for parsing command line arguments in an elegant manner. Apache 2 CMake
p-ranav/argparse Single header argument Parser for C++17 MIT CMake
tclap A simple templatized C++ library for parsing command line arguments. The library provides a simple, flexible object-oriented interface. MIT CMake

 

CSS
Library Description License Configuration
mycss CSS Parser    

 

HOCON
Library Description License Configuration
cpp-hocon The C++ implementation of the HOCON format developed by Pupplet.    

 

JSON
Library Description License Configuration
ArduinoJson ArduinoJson    
Boost.JSON JSON parsing, serialization, and DOM in C++11/17 BSL-1.0  
CAJUN      
DAW JSON Link C++17 static C++ bindings with type checking allowing of parsing directly to user data structures without library allocation, push/pull modes, allocator support, constexpr BSL 1.0 CMake
jansson Jansson is C library for encoding, decoding and manipulating JSON data.    
jeayeson A very sane (header only) C++14 JSON library    
jios JSON Input Output Streams MIT CMake
JOST      
json Niels Lohmann JSON    
JSON Voorhees Killer JSON for C++    
JSON++      
json-cpp      
json11 json11 is a tiny JSON library for C++11, providing JSON parsing and serialization.    
JsonBox      
jsoncons A header-only library for JSON and JSON-like data formats, with JSON Pointer, JSON Patch, JSONPath, CSV, MessagePack, CBOR, BSON, UBJSON.    
jsoncpp   MIT CMake, Conan, vcpkg
jsonme--      
libjson      
minijson C++ DOM-less and allocation-free JSON parsing and serialization    
qjson      
rapidjson      
simdjson Parsing gigabytes of JSON per second taking advantage of modern micro-architectures and parallelizing with SIMD (Doc) (Kino) Apache-2.0 CMake, vcpkg
struct_mapping Mapping json to and from a c++ structure    
ThorsSerializer JSON/BSON/YAML Input Output Streams MIT Makefile
ujson µjson is a small, C++11, UTF-8, JSON library    
zoolib ZooLib is a C++ toolkit. MIT  

 

TOML
Library Description License Configuration
toml++ TOML parser and serializer for C++17 and later    
toml11 TOML parsing library based on C++11    

 

XML
Library Description License Configuration
ai-xml Serialize objects to and from XML by adding a single, minimal, function to a class. Uses libxml++ under the hood.    
GPDS General purpose data serializer to serialize objects to and from XML. Uses TinyXML under the hood.    
gSOAP XML data bindings    
libxml++      
pugixml Light-weight, simple and fast XML parser for C++ with XPath support MIT CMake, Conan
tinyxml      
tinyxml2 Another and work in progress of TinyXML.    
Xerces      

 

YAML
Library Description License Configuration
yaml-cpp      

Containers

Library Description License Configuration
Boost.Bimap a bidirectional maps library that offers associative containers such as bimap<X,Y> in which both X and Y can be used as a key. BSL-1.0  
Boost.Container a header-only library that implements several well-known containers, including STL-like containers, as well as recursive containers, and new useful containers: flat_mapflat_setflat_multimapflat_multisetstable_vectorstatic_vectorsmall_vectordevector. BSL-1.0  
Boost.Fusion a library for working with heterogeneous collections of tuples. Provides a set of containers (vectorlistset and map), along with transformed presentation of their underlying data, a.k.a views." BSL-1.0  
Boost.Heap an implementation of priority queues with more functionality and different performance characteristics, than STL has. BSL-1.0  
Boost.Pointer Container provides containers for holding heap-allocated objects in an exception-safe manner and with minimal overhead. BSL-1.0  
Boost.Tuple implements pre-C++11 n-tuple (a fixed size collection of elements) BSL-1.0  
Boost.Variant implements pre-C++17 variant (a safe, generic, stack-based discriminated union container) BSL-1.0  
cpp-btree header-only; B-tree containers make better use of the CPU cache: btree_mapbtree_setbtree_multimapbtree_multiset. (Src) Apache-2.0 CMake
DataFrame C++ DataFrame for statistical, Financial, and ML analysis -- in modern C++ using native types and continuous memory storage BSD-3-Clause CMake, Makefile, Conan, vcpkg
eggs::variant Eggs.Variant is a C++11/14/17 generic, type-safe, discriminated union. It is notable in particular for having very good constexpr support. BSL-1.0 CMake
Frozen constexpr perfect-hashing-based frozen sets and maps Apache-2.0  
Immer A library of persistent and immutable data structures Boost CMake
plf::colony Unordered "bag-like" container which outperforms std:: containers in high-modification scenarios while maintaining valid pointers to non-erased elements regardless of insertion and erasure. C++98/11/14/etc-compatible. See also P0447, std::hive. (Src) zlib conan build2
plf::list std::list implementation which sacrifices range-splicing for cache-friendliness, yielding faster insertion, erasure and iteration. C++98/11/14/etc-compatible. (Src) zlib  
plf::queue Drop-in replacement container for the std::queue container adaptor with better performance than std::deque and std::list in a queue context. C++98/11/14/etc-compatible. (Src) zlib  
plf::stack Drop-in replacement container for the std::stack container adaptor with better performance than std::vector and std::deque in a stack context. C++98/11/14/etc-compatible. (Src) zlib  
ring_span A header-only lite implementation of Arthur O'Dwyer's ring_span, a.k.a. circular buffer view. C++98- compatible. BSL-1.0 CMake
strict_variant A realtime/embedded-friendly (i.e. -fno-exceptions/-fno-rtti compatible), never-empty variant targetting C++11. Fast, prevents many undesirable implicit conversions. BSL-1.0 CMake
Ygg An intrusive C++11 implementation of high-performance containers and data structures such as a Red-Black-Tree, an Interval Tree and an Interval Map. MIT CMake

Cryptography

Library Description License Configuration
Botan      
crypto++      
gnutls      
openssl      
TomCrypt      

Databases

Library Description License Configuration
cpp-redis C++11 Lightweight Redis client: async, thread-safe, no dependency, pipelining, multi-platform.    
DTL      
EasyQtSql A lightweight header-only C++11 library for quick and easy SQL querying with QtSql    
Galera The Galera Cluster is the synchronous multi-master replication library (Galera) and a Write Set Replication (WSREP) API for MySQL/MariaDB (Src) GPLv2 CMake, Scons
LevelDB A C++ library developed by Google that handles billion-scale Key-Value data persistence storage.    
libpqxx      
lmdb++ C++11 wrapper for the LMDB embedded B+ tree database library.    
mongocxx C++11 driver library for MongoDB    
mysql++      
nanodbc A small, cross-platform, C++14 wrapper for the native C ODBC API MIT CMake
ODB ODB is an open-source, cross-platform, and cross-database object-relational mapping (ORM) system for C++. ODB supports MySQL, SQLite, PostgreSQL, Oracle, and Microsoft SQL Server relational databases as well as C++98/03 and C++11 language standards. GPL2 and/or NCUEL  
OTL      
Pgfe The PostgreSQL client (FrontEnd) API in modern C++ Zlib CMake
QTL A friendly and lightweight C++ database library for MySQL, SQLite and ODBC.    
QUINCE QUeries IN C++ Expressions (ORM+EDSL) Boost  
QxOrm Object Relational Mapping (ORM) database library for C++/Qt, supports most common databases, serialization (JSON, binary, XML); standalone multi-threaded HTTP web server GPLv3 or Proprietary  
redis-cpp C++17 Lightweight C++ client header-only library for executing Redis commands.    
redis-plus-plus A Redis client written in C++ 11, and supports Redis Sentinel, Redis Cluster, pipeline, transaction, pubsub, connection pool and STL-like interface    
SOCI      
SQLAPI++      
SQLiteCPP      
sqlpp11      
taoPQ Lightweight C++17 PostgreSQL client library Boost CMake

Embedded languages bindings

Library Description License Configuration
AngelScript A scripting language like C++. ZLib  
ChaiScript An easy to use embedded scripting language for C++. BSD-3-Clause  
ExprTk A simple to use, easy to integrate and extremely efficient run-time mathematical expression parser and evaluation engine. ExprTk supports numerous forms of functional, logical and vector processing semantics and is very easily extendible.    
Jinx Scripting language designed for videogames. MIT CMake
spidermonkey.dev Mozilla’s JavaScript and WebAssembly Engine.    
muparser Many applications require the parsing of mathematical expressions. The main objective muparser is to provide a fast, easy and secure way of doing this. muparser is an extensible high performance math expression parser library written in C++. BSD-2-Clause CMake
PythonQt Dynamic Python binding for the Qt framework. It offers an easy way to embed the Python scripting language into C++ Qt applications. LGPL 2.1  
ScriptCaller a header only library allowing us to call ruby scripts.    
lua Lightweight multi-paradigm scripting language designed primarily for embedded use. C library. MIT  
sol2 A modern header-only C++ library binding to Lua. MIT CMake
v8pp Bind C++ functions and classes into V8 JavaScript engine.    

Embedded/Realtime

Library Description License Configuration
distortos object-oriented C++ RTOS for microcontrollers    
ETL Embedded Template Library - C++03, Portable template library tailored for low resource (embedded) platforms ((Src)) MIT  
QP/C++ RTOS kernel: Real-Time Embedded Frameworks based on active objects & state machines GPLv3  
µcuREST C++11 REST/JSON server framework for microcontrollers    

File metadata

Library Description License Configuration
exempi      
exiv2      
libkexiv2      
rarian      

Financial Calculations

Library Description License Configuration
DataFrame C++ DataFrame for statistical, Financial, and ML analysis -- in modern C++ using native types and continuous memory storage BSD-3-Clause CMake, Makefile, Conan
QuantLib Quantitative finance Library - A free/open-source library for quantitative finance modified BSD  

Game Engine Architecture

Library Description License Configuration
Anax      
BOX2D Physics engine    
EntityPlus      
EntityX      
EnTT      

General Multimedia

Library Description License Configuration
Kigs-framework Modular Multi-purpose Cross Platform Framework MIT  
openFrameworks   MIT  
SDL Simple DirectMedia Layer: cross-platform, low level access to audio, keyboard, mouse, joystick, and graphics hardware via that platform's graphics API (usually OpenGL or Direct3D) zlib  
SFML Simple and Fast Multimedia Library; multi-platform (Windows, Linux, macOS and soon Android & iOS); provides a simple interface to ease the development of games and multimedia applications. It is composed of five modules: system, window, graphics (over OpenGL), audio and network. zlib/png CMake
SIGIL Sound, Input, and Graphics Integration Library; mind-bogglingly simple, cross-platform, minimalist library for text, shapes, input, audio, and 2D images. Supported platforms: Windows, Linux and Raspberry Pi License CMake

Generic

Library Description License Configuration
Abseil An open-source collection of C++ library code from Google designed to augment the C++ standard library. (Doc) (Src) Apache-2.0 CMake
Abstract Intrusive Containers More flexible than Boost.Intrusive, but not STL-compatible.    
BDE The Bloomberg Development Environment core libraries from Bloomberg L.P. Apache  
Better Enums Reflective enums (enum to string, iteration, etc.) with constexpr support. BSD  
bitfield.h Bit field structure facility, more portable/flexible than the base language facility.    
Boost large collection of generic libraries BSL-1.0  
CAF The C++ Actor Framework (CAF) is an open source C++11 actor model implementation featuring lightweight & fast actor implementations, pattern matching for messages, network transparent messaging, and more BSD  
Cinder A community-developed, free and open source library for professional-quality creative coding in C++. (Doc) (Src) Modified BSD CMake
CommonPP Multi-purpose library with a strong emphasis on getting metrics out of a project. BSD  
composite_op.h Basic class data member introspection, cumbersome and often non-re-entrant, but sometimes useful.    
cpp-mmf A C++98 library that encapsulates memory-mapped-files for POSIX or Windows    
cxxomfort Backports of C++ features (C++11 to C++03 and C++1y proposals to C++11/C++03).    
Dlib networking, threads, graphical interfaces, data structures, linear algebra, machine learning, XML and text parsing, numerical optimization, Bayesian nets, and numerous other tasks Boost  
eventpp eventpp is a C++ event library for callbacks, event dispatcher, and event queue. With eventpp you can easily implement signal and slot mechanism, publisher and subscriber pattern, or observer pattern. Apache 2.0  
fcppt Freundlich's C++ Toolkit (fcppt) is a collection of libraries focusing on improving general C++ code by providing better types and making use of functional programming.    
Folly Facebook open-source library. A crossplatform library of C++14 components designed with practicality and efficiency in mind. (Doc) Apache-2.0 CMake, vcpkg
GSL C++ Core Guidelines Support Library implementation, recommended by Bjarne Stroustrup, Herb Sutter and Co in C++ Core Guidelines MIT CMake, vcpkg
gsl-lite A single-file header-only version of ISO C++ Guideline Support Library (GSL) for C++98, C++11 and later MIT  
GUL14 General Utility Library for C++14 from DESY: Often-used utility functions and types, including String utilities, Statistics and Numeric functions, Containers, Debugging means, etc. (Src) LGPL-2.1 Meson, vcpkg
History Modern C++17 Undo/Redo Framework Unlicense  
hspp An experimental library to bring Haskell Style Programming to C++. Apache-2.0 header-only
IP-DOS (tm) IdeaFarm (tm) Piggyback Distributed Operating System: A general purpose programming environment for the C++ language. Proprietary Open Source Open Watcom 2.0
JUCE An extensive, mature, cross-platform C++ toolkit GPL  
Kangaru A dependency injection container for C++11 and C++14 MIT  
Kerbal Backports of modern STL facilities to previous standard. More features! More constexpr! LGPL-3.0 header-only
libsourcey Cross-platform C++14 library for high speed networking and media encoding. HTTP, WebSockets, TURN, STUN, Symple and more. LGPL-2.1 CMake
LLNL/units A run-time C++ library for working with units of measurement and conversions between them and with string representations of units and measurements BSD 3-Clause "New" or "Revised" CMake
Loki design patterns    
match(it) A lightweight pattern-matching library for C++17 with macro-free APIs. Apache-2.0 header-only
nonstd-lite Parent of *-lite repositories, a migration path to post-C++11 features for pre-C++11 environments Boost  
nytl Generic C++17 header-only utility template library. Boost  
OnPosix C++ library providing several abstractions (e.g., threading, networking, logging, IPC, etc.) on POSIX platforms.    
Reason  ?? xml, xpath, regex, threads, sockets, http, sql, date-time, streams, encoding and decoding, filesystem, compression GPL  
SaferCPlusPlus Safe compatible substitutes for unsafe C++ primitives, including pointers, int and std::vector. Boost  
Smart Enum "to_string", "from_string" and more for your enums. Boost  
units A compile-time, header-only, dimensional analysis and unit conversion library built on c++14 with no dependencies MIT  
yaal Yet Another Abstraction Layer - algorithms, collections, arbitrary precision calculation, generic-DSL grammar driven parsers and more CC BY-ND-NC 4.0 CMake
Yato Modern C++(14/17) cross-platform STL-styled and STL-compatible library with implementing containers, ranges, iterators, type traits and other tools; actors system; type-safe config interface. Apache-2.0 CMake
yomm2 Open multi-methods for C++17 Boost  

GPS

Library Description License Configuration
gpsd gpsd is an open-source, cross-platform (Linux/Unix/BSD flavors, including Android and OS X) GPS-aware set of tools, such as a translator and replicator daemon for GPS devices, AIS radios, and other navigational sensors. gpsd is mostly written in C and Python, but also has C++ wrapper. gpsd is everywhere in mobile embedded systems. Every location-aware Android app is indirectly a gpsd client. (Doc) (Src) BSD 2-clause scons

Graphic user interface

Library Description License Configuration
Dear ImGui A bloat-free graphical user interface library that is highly optimized.    
FLTK A cross-platform C++ GUI toolkit (Linux, Windows, MacOS) that provides modern GUI functionality, and supports 3D graphics via OpenGL/GLUT. Designed to be small and modular. Includes an UI builder. LGPL ver.2  
nana GUI programming in modern C++ style (Doc) Boost  
nanogui Minimalistic cross-platform widget library for OpenGL 3.x or higher (Doc)    
OWLNext Modern update to OWL for writing GUI applications in standard C++ on Windows    
tiny file dialogs a single C C++ cross-platform file (no init, no main loop, 6 modal function calls)    
U++ Cross-platform (Windows, GNU/Linux, macOS) rapid application development framework with bundled IDE. C++17 Compatible. (Doc) (Src) BSD-3-Clause Makefile
WxWidgets A free and open source cross-platform (Windows, GNU/Linux, macOS) C++ framework for writing advanced GUI applications using native controls. (Doc) Modified LGPL CMake, Makefile
xtd Modern C++17/20 framework to create console, GUI and unit tests applications on Windows, macOS, Linux, iOS and android. (Website) (Doc) MIT CMake

 

CopperSpice
Library Description License Configuration
CopperSpice A set of C++ libraries used to develop cross-platform software applications. It uses modern idiomatic C++ and integrates seamlessly with the STL. CopperSpice was derived from the Qt framework. (Doc) (Src) LGPL-2.1 CMake
CsSignal Standalone C++ thread aware signal/slot library LGPL-2.1 CMake
CsString Standalone C++ unicode aware string library LGPL-2.1 CMake
libGuarded Standalone C++ multithreading library for managing access to shared data LGPL-2.1 CMake

 

GTK+
Library Description License Configuration
evince      
flowcanvas      
glibmm      
goocanvasmm      
gtkmm A cross-platform C++ interface for the GTK+ GUI library. LGPL  
libglademm      
libgnomecanvasmm      
webkitgtk      

 

Qt
Library Description License Configuration
libdbusmenu-qt A small library designed to make sharing and displaying of menu structures over DBus simple and easy to use. It works for both QT and GTK+ and makes building menus simple.    
Qt (Doc) (Src)    
QuickQanava C++14 network/graph visualization library / Qt node editor. BSD 2.0 CMake
qwt5 Qt Widgets for Technical Applications    
qwtplot3d      

 

U++
Library Description License Configuration
U++ U++ is a C++ cross-platform rapid application development framework focused on programmers productivity. It includes a set of libraries (GUI, SQL, etc.), and an integrated development environment. (Src/Bin) BSD  
upp-components A collection of 3rd party packages for U++ like TerminalCtrl, MessageCtrl etc.. BSD-3-Clause  

Graphics

Library Description License Configuration
bgfx Powerful cross-platform graphics rendering library, support platforms include Windows Mac Linux iOS Android Web, rendering backend including DX, opengl, metal webgl and so on.    
cairomm A C++ wrapper for the cairo graphics library that is 2D library with support for multiple output devices: X Window, Quartz, Win32, image buffers, PostScript, PDF, SVG, OpenGL (experimental). LGPL  
dfpsr 2D, 3D and isometric software renderer with desktop GUI toolkit, minimalistic dependency, designed for long time maintenance and can run without any 3D accelerated drivers zlib  
gegl GEGL (Generic Graphics Library) is a data flow based image processing framework, providing floating point processing and non-destructive image processing capabilities. (Src) LGPL  
io2d Reference Implementations of P0267, the proposed 2D graphics API for ISO C++ Boost CMake
nanovg 2D drawing library based on openGL/DX/metal.    
nux An OpenGL toolkit LGPL v3  
pangomm is the official C++ interface for the Pango font layout library. (Src) LGPL v2.1 Makefile
Skia is an open-source 2D-graphics library written in C++. Skia is used in Google Chrome, Chrome OS, Mozilla Firefox, Android, LibreOffice, Flutter, etc. Skia has several back-ends: software rasterization, (PDF) output, OpenGL, SVG, etc. New BSD  
TXLib TX Library is a tiny 2D graphics library for Win32 written in C++.    
ULIS Cross-Platform C++14 Library, Generic digital image processing, 2D Software rasterizer, Unlimited image formats (u8, u16, u32, float, double), Custom bit-ordered memory layout, All Photoshop pixel blending modes + 11 additional modes, Color models (RGB, HSL, HSV, CMYK, ...), Color-managed pipelines, Color Space support (icm profiles and device-independant), Optimized algorithms with multithreading, Optimized algorithms with SIMD Extensions (SSE2), Image pools and caches for optimisations, Memory storage of animated image sequences Custom (free-of-charge for non-commercial purposes only) CMake

Graphics (3D)

Library Description License Configuration
assimp 3D model loading    
bgfx Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library.    
Diligent Engine A modern cross-platform low-level 3D graphics library.    
Epoxy Modern successor to GLEW. Abstracts difference between some kinds of GL contexts, which makes it sometimes simpler to use than GLEW. Used by GTK+ project since 2015.    
G3D The G3D Innovation Engine is a fully featured, open source, cross platform (Windows, Linus, Mac OS) 3D game engine written in C/C++. G3D is used in commercial games, research papers, simulators, and university courses. It supports real-time and offline hardware rendering, ray tracing, model loading, linear algebra, and GP-computation on GPUs. Supports 3DS, OBJ, MP4, PNG, JPG, MD3 and many other formats, includes a native OpenGL skinnable GUI. (Src) (Doc) BSD-2  
GLAD Customizable, lightweight library for loading OpenGL functions    
GLEW OpenGL function loading    
GLFW OpenGL window manager    
GLM Header only C++ mathematics library for rendering    
hlsl++ Header only C++ math library for rendering using hlsl syntax. Supports SSE and NEON    
Horde3D Horde3D is a small open source 3D rendering engine. It is written in an effort to create a graphics engine that offers the stunning visual effects expected in next-generation games being lightweight and as clean as possible.    
Irrlicht The Irrlicht Engine is an open source realtime 3D engine written in C++. It is cross-platform, using D3D, OpenGL and its own software renderers.    
klein C++11/14/17 SSE-optimized Projective Geometric Algebra library for graphics and animation    
Magnum Lightweight and modular C++11/C++14 graphics middleware for games and data visualization    
O3DE Open-source 3D Engine (former Amazon's Lumberyard) is a C++ multi-platform 3D engine to build AAA games, cinema-quality 3D worlds, and high-fidelity simulations. Includes physics simulation, script engine, networking, and more. (Doc) Apache 2.0 CMake
Ogre3D OGRE - Object-Oriented Graphics Rendering Engine - is a multipurpose visualization library, suitable for scientific visualization, games, simulation, virtual reality and other graphic projetcs. It is multiplatform and very robust, with a good documentation. MIT CMake
Open CASCADE SDK for 3D CAD/CAM/CAE applications    
OpenGL 3D language, graphics and SDK for developing 3D applications.    
OpenSceneGraph OpenSceneGraph is an open source high performance 3D graphics toolkit, used by application developers in fields such as visual simulation, games, virtual reality, scientific visualization and modelling.    
Visionaray A C++ ray tracing template library.    
VTK Visualization Toolkit (VTK) is an open source software for manipulating and displaying scientific data. It comes with state-of-the-art tools for 3D rendering, a suite of widgets for 3D interaction, and extensive 2D plotting capability.    
Vulkan Vulkan is by design a low-level API that removes many of the abstractions found in previous generation graphics APIs. This is great for delivering maximum performance, but has the side effect of exposing more complexity to the developer. Fortunately, several excellent tutorials exist to help clear this hurdle and get productive quickly.    

Images

Library Description License Configuration
Adobe/boost GIL high-level generic library, focused on algorithms that operate on 2D images. Very limited I/O options. BSL-1.0  
agge Anti-Grain Evolution. 2D graphics engine for Speed and Quality in C++ MIT CMake
FreeImage An Open-Source library project for developers who would like to support popular graphics image formats like PNG, BMP, JPEG, TIFF and others GPLv2, GPLv3, FIPL  
GraphicsMagick Reading, writing, and manipulating images in over 88 major formats. Forked from ImageMagick in 2002 Copyright Mercurial
SAIL Reading and writing static, animated, multi-paged images along with their meta data and ICC profiles. Converting capabilities. Targets simplicity and speed. MIT CMake
stb The header-only libraries for C/C++, mostly game-dev oriented. The noteworthy caps: image loader/writer/resizer; font text rasterizer; type-safe containers; ogg vorbis decoder; real-time DXT compressor; Perlin noise generator; lexer for pet DSLs; fast sprintf. MIT header-only

 

Formats
Library Description License Configuration
djvulibre      
imagemagick      
Kaitai Struct C++ runtime      
libraw      
openexr      
poppler      
qimageblitz      
SVG++      

 

Plotting
Library Description License Configuration
Matplot++ gnuplot based C++ Graphics Library for Data Visualization. Matplot++ can take advantage of the following libs: OpenCV, OpenGL, LAPACK, BLAS, FFTW, JPEG, TIFF, ZLIB, PNG, GLAD, GLFW3. (Doc) MIT CMake
plotutils The GNU plotutils package contains libplot, a C/C++ library for exporting 2-D vector graphics in many file formats, both vector and bitmap. libplot can animate 2-D vector graphics and uses a Postscript-like API for file export and graphics animations. GPL  
sciplot A modern header-only C++ scientific plotting library powered by gnuplot, with the export to pdf, svg, png, eps, etc. MIT CMake, vcpkg

Image Processing

Library Description License Configuration
dlib      
Halide A C++-embedded DSL for high-performance processing of images and tensors. MIT CMake, vcpkg
ITK - Insight Toolkit ITK is an open-source, cross-platform library that provides developers with an extensive suite of software tools for image analysis. Developed through extreme programming methodologies, ITK builds on a proven, spatially-oriented architecture for processing, segmentation, and registration of scientific images in two, three, or more dimensions. Apache 2.0 CMake
opencv      
OTB      

Internationalization

Library Description License Configuration
gettext      
ICU International Components for Unicode is a mature, widely used set of C/C++ libraries providing Unicode and Globalization support for software applications. (Src) icu4c/LICENSE  
spirit-po A small, header-only library which parses po-files and provides an interface similar to GNU libintl. Based on boost::spirit.    

Logging

Library Description License Configuration
Backward Printing nice Python-styled stack traces with colors and source snippets, especially on crashes. Header-only. MIT CMake, Conan
Boost.Log A cross-platform logging library that is simple to use, extensible, and performant. BSL-1.0  
clutchlog Single-header logging system which targets versatile DEBUGGING instead of service event storage. BSD CMake
glog Google Logging Library for C++98 based on C++-style streams License Bazel, CMake, vcpkg
Log4cplus Cross-platform, C++17 Logging API (modeled after the Java log4j API) providing thread-safe, flexible, and arbitrarily granular control over log management and configuration. BSD (two clause) or Apache 2.0 Autotools, CMake, Visual Studio
Log4cpp A library of C++ classes for flexible logging to files, syslog, IDSA and other destinations. LGPL  
log4cxx Apache log4cxx is a logging framework for C++ patterned after Apache log4j. (Src) Apache CMake
Pantheios Diagnostic Logging API library, offering a combination of type-safety, efficiency, genericity and extensibility BSD-style  
plog Portable and simple log for C++ in less than 1000 lines of code MPL-2.0  
Quill Cross-platform, C++14 Asynchronous Low Latency Logging Library MIT CMake
spdlog Super fast, header only, C++ logging library MIT CMake, Conan

Error handling

Library Description License Configuration
Boost.LEAF Lightweight error-handling library for C++11: single-header format, no dependencies, no dynamic memory allocations, can be used with or without exception handling, multi-threading ready. BSL-1.0  

Math

Library Description License Configuration
alglib ALGLIB is a cross-platform (Windows/POSIX/Linux) numerical analysis and data processing library. ALGLIB features include: Data analysis, Optimization and nonlinear solvers, Interpolation, Linear algebra and linear solvers, FFT and many others. Free (GPL/Personal/Academic) and Commercial  
ArrayFire is a cross-platform (Windows/OSX/Linux) general purpose HPC (CPU/GPU/OpenCL/CUDA/GPGPU) library for parallel computing. ArrayFire domains are: Vector Algorithms, Image Processing, Computer Vision, Signal Processing, Linear Algebra, Statistics, and more. (Src) Custom  
BigNumber C++ class for creating and computing arbitrary-length integers    
Boost.Math includes several contributions in the domain of mathematics: Floating Point Utilities, Mathematical Constants, Statistical Distributions and Functions, Statistics, Vector Functionals - Norms, Special Functions, Root Finding & Minimization Algorithms, Polynomials and Rational Functions, Interpolation, Quadrature and Differentiation, Filters, Complex Number Functions, Quaternions, Octonions, Integer Utilities (Greatest Common Divisor and Least Common Multiple), Series, Rationals and Continued Fractions. BSL-1.0  
Boost.Multiprecision The Multiprecision Library provides integer, rational, floating-point, and complex types in C++ that have more range and precision than C++'s ordinary fundamental (built-in) types. BSL-1.0  
Boost.Random provides a variety of generators and distributions to produce random numbers having useful properties, such as uniform distribution. BSL-1.0  
Boost.SafeNumerics C++14, header only, Guaranteed Correct Integer Arithmetic, a drop-in replacement for the built-in integer types. BSL-1.0  
C++ Matrix High performance and accurate (e.g. edge cases) matrix math library with expression template arithmetic operators BSD-3-Clause CMake, Makefile
CasADi Symbolic framework for nonlinear optimization and algorithmic differentiation. Supports C++ code generation for symbolic expressions and dynamic connection of compiled generated code.    
cpp-measures A header-only C++11 library to handle physical measures    
G+Smo cross-platform library for isogeometric analysis    
GNU MP bignum C++ interface C++ convenience class interface that offers overloaded functions and operators. The GMP is a free C library for arbitrary precision arithmetic, operating on signed integers, rational and floating-point numbers. GNU LGPL v3 and GNU GPL v2  
libmpdec++ Cross-platform library for correctly-rounded arbitrary precision decimal floating point arithmetic. BSD-2-Clause Autoconf, Visual Studio build scripts
mathiu.cpp A simple computer algebra system in C++17 Apache-2.0 CMake
PCGrand PCG is a family of simple fast space-efficient statistically good algorithms for random number generation. Unlike many general-purpose RNGs, they are also hard to predict. Apache  
NTL A Library for doing Number Theory. NTL is a high-performance, portable C++ library providing data structures and algorithms for manipulating signed, arbitrary length integers, and for vectors, matrices, and polynomials over the integers and over finite fields. LGPLv2.1+  
SEMT Compile time symbolic differentiation    
stats++ Advanced, comprehensive statistical software: data collection and preprocessing, statistics, machine learning, and optimization, with open C++ source code.    
StatsLib A templated, header-only library of statistical distribution functions.    

 

Automata theory
Library Description License Configuration
yasmine C++11 UML state machine framework (Doc) (Src) License  
UML_StateMachine UML State Machine is a pure C++20 library for defining state charts statically and executing them. (Doc) GPLv3 CMake

 

Class Library for Numbers
Library Description License Configuration
cln CLN is a library for efficient computations with all kinds of numbers in arbitrary precision. GPL  
CNL Compositional Numeric Library - fixed-precision numeric types BSL-1.0 CMake, Conan
Universal Numbers A C++17/20 template library providing plug-in replacements for the native arithmetic types (integer/decimal/fixed-point/floating-point/posits/logarithmic/interval) MIT CMake, Vcpkg, Conan

 

Computational geometry
Library Description License Configuration
CGAL Computational geometry algorithms library GPL-3.0 or commercial CMake
PCL Point Cloud library    
pmp-library Polygon Mesh Processing Library    
Wykobi Computational geometry library    

 

Graph theory
Library Description License Configuration
Boost.Graph   BSL-1.0  
CXXGraph A C++17 Header-Only Library for Graph Representation, Manipulation, Partitioning and Algorithms AGPL-3.0 CMake
GTpo A C++14 directed graphs modelling library, part of QuickQanava project BSD QMake, CMake
LEMON Library for Efficient Modeling and Optimization in Networks implements common data structures and algorithms focusing on combinatorial optimization, graphs and networks. (Doc) License  
NGraph A simple (Network) Graph library in C++    
OGDF Open Graph algorithms and Data structures Framework - is a C++ library for graph algorithms, in particular for automatic graph drawing. GPL v2 or v3  

 

Linear algebra
Library Description License Configuration
Armadillo      
Blaze      
Blitz++      
Boost.uBLAS   BSL-1.0  
DecompLib A header-only C++11 library to decompose a vector into a set of positive definite weighted basis vectors.    
Dlib - linear algebra tools      
Eigen A C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms. MPL2 CMake, Conan
ETL      
IT++      
Matrix Easy-to-use Scientific Computing library in/for C++ available for Linux and Windows. MIT CMake
PETSc A suite of data structures and routines for the parallel solution of scientific applications modeled by partial differential equations. It supports MPI, and GPUs through CUDA or OpenCL, as well as hybrid MPI-GPU.    
Spectra Sparse Eigenvalue Computation Toolkit as a Redesigned ARPACK is an open-source header-only C++ library for large scale eigenvalue problems, built on top of Eigen linear algebra library (also open-source and header-only). (Src) MPL-2.0 CMake, vcpkg
xtensor A C++ library meant for numerical analysis with multi-dimensional array expressions. BSD  

 

Machine Learning
Library Description License Configuration
Dlib machine learning tools    
FANN Fast Artificial Neural Network Library    
gaenari C++17 based incremental decision tree Apache-2.0 CMake
liblinear      
libtorch C++ frontend to the popular PyTorch Python library (backend is written in C++) BSD-style CMake
MLPACK machine learning package    
Shogun large scale machine learning toolbox    
stats++      
tensorflow An Open Source Machine Learning Framework for Everyone; provides stable C++ API and written mainly in C++ Apache-2.0  

 

Numeral Calculations
Library Description License Configuration
LibBF An arbitrary precision numerical calculation library developed by Bellard with a sample program that calculates pi to billions of bits    

 

Optimization
Library Description License Configuration
ceres-solver Open-source C++ library for modeling and solving large, complicated optimization problems. It is a feature rich, mature and performant library which has been used in production at Google since 2010. Apache CMake, Conan
OptimLib A C++11 library of numerical optimization methods for nonlinear functions.    

Metaprogramming

Library Description License Configuration
Boost.CallableTraits   BSL-1.0  
Boost.Hana New metaprogramming library for both types and values BSL-1.0  
Boost.Metaparse Compile-time parser library, producing types, values, and metafunctions from compile-time strings BSL-1.0  
Boost.Mp11   BSL-1.0  
Boost.MPL Original metaprogramming library, targeted at C++03, slow BSL-1.0  
Boost.PFR A header only C++14 library for basic reflection (without macros): visiting members of a user defined type by index, IO streaming. BSL-1.0  
Boost.Proto A library for building expression template-backed EDSLs BSL-1.0  
Brigand Uses eager metafunctions, optimized for best performance    
CoMeta Lightweight, header-only C++14 metaprogramming library    
Meta Uses eager metafunctions, middle ground between metal and brigand wrt performance    
Metal Uses eager metafunctions, 100% SFINAE-friendly    
refl-cpp A modern compile-time reflection library for C++ with support for overloads, templates, attributes and proxies    
Refureku C++17 runtime reflection and code generation library MIT CMake
visit_struct A miniature reflection library, providing structure visitors for C++11/14. Self-contained, 200-400 lines of code depending how you count.    

PDF

Library Description License Configuration
HARU      
JagPDF      
PoDoFo      

Physics and Simulations

Library Description License Configuration
Bullet Physics simulation for games, visual effects, robotics and reinforcement learning    
HELICS Co-simulation framework for synchronizing time and exchanging data between different types of simulators BSD 3-Clause "New" or "Revised" CMake
ProjectCHRONO An Open Source Multi-physics Simulation Engine    
ReactPhysics3D C++ physics engine library for 3D simulations and game    

Robotics

 

Perception
Library Description License Configuration
GTSAM Sensor Fusion, SLAM, SFM, VO, Computer vision (Src) BSD CMake
opencv Computer vision and perception, Calibration, Feature Matching (Src) (Doc) BSD, Apache 2 CMake

Serialization

Library Description License Configuration
Boost.Serialization   BSL-1.0  
C++ XML objects      
cereal C++11 serialization BSD  
cppcodec Header-only C++11 library to encode/decode base64, base32 and hex with consistent, flexible API MIT  
GPDS General purpose data serializer to serialize objects to and from XML. Uses TinyXML under the hood.    
gSOAP accurate XML serialization    
iguana A modern, universal and easy-to-use serialization engine developed in C++17, based on compile-time Reflection. Supported formats: JSON, XML, user-defined. Apache-2.0 CMake
jios JSON serialization MIT CMake
libs11n      
protobuf      
rpnx-serial A library that can (de)serialize types like std::map, std::vector, etc.    
ThorsSerializer C++ Serialization library for JSON MIT Makefile
yaml-cpp      
YAS Yet Another Serialization. YAS is C++11 library; no third-party libraries dependencies. Archives can be binary, text, JSON Boost Header only

 

Binary serialization
Library Description License Configuration
binn A binary serialization library designed to be compact, fast, and easy to use, itself an implementation of the same name format.    
blobify C++17 header-only, infers the serialized layout from the structure definition alone. Boost CMake
bson-cxx C++ implementation in BSON format.    
fast_ber High-performance serialization using BER/DER encoding rules. Encoding layout is defined by ASN.1 schemas. Follows modern C++ practices, written in C++11.    
UBjsonCpp High-performance UBJson read-write library based on C++14    

Sorting

Library Description License Configuration
Cpp-sort A collection of various sorting algorithms in a simple package. MIT  
Indiesort Templated sort-wrapper function which allows use of std::sort (and other random-access sort methods) with non-random-access containers. It also increases the performance of sorting large types in random-access containers and arrays zlib  
Timsort Templated stable sorting function which outperforms quicksort-based algorithms including std::sort, for reversed or semi-sorted data. MIT  

System

Library Description License Configuration
Infoware C++ Library for pulling system and hardware information, without hitting the command line. Creative Commons v1.0 CMake

Terminal

Library Description License Configuration
cli A cross-platform header-only library for interactive command line interfaces in modern C++. BSL-1.0 make, cmake, nmake, vcpkg
cwidget high-level terminal interface library for C++, modeled on GTK+ and Qt, but using `curses` as its display layer GPL v2.0 make
replxx A readline and libedit replacement that supports UTF-8, syntax highlighting & hints.    

Testing

Library Description License Configuration
bandit Human-friendly unit testing for C++11    
Boost.Test   BSL-1.0  
Catch2      
cppunit      
CUTE C++ Unit Testing Easier (no reliance on static initialization for registration), integrated into Cevelop for TDD MIT  
doctest The lightest feature-rich C++ single-header testing framework for unit tests and TDD MIT CMake
ELFspy Testing in isolation with fakes and spies - Linux only    
Google Test      
lest A modern, C++11-native, single-file header-only, tiny framework for unit-tests, TDD and BDD (includes C++98 variant).    
liblittletest Portable, one file header-only testing framework    
tunit Modern c++17 unit testing library on Windows, macOS, Linux, iOS and android. Office site MIT CMake

See also

List of C++ unit testing frameworks at Wikipedia

Text

 

Coding
Library Description License Configuration
strsuite A C++20 library to manage strings with different encodings LGPL3.0 CMake
uchardet The ability to guess string encoding is basically the same as the uchardet function in Python. MOZILLA PUBLIC LICENSE v1.1 CMake
win-iconv The character set encoding conversion library for Linux and Mac. The Windows implementation of iconv is based on the Win32 Character Set Conversion API. public domain CMake

 

Diff/Patch
Library Description License Configuration
diff_match_patch Create and apply patches for strings (requires Qt) Apache 2.0 qmake

 

Format
Library Description License Configuration
fmt Open-source formatting library providing a fast and safe alternative to C stdio and C++ iostreams. Prototype for C++20 std::format family. Victor Zverovich CMake, Conan

 

Parse
Library Description License Configuration
BNFlite A single file lightweight grammar parser library MIT Header only
PEGTL Parsing Expression Grammar Template Library MIT Header only

 

Search
Library Description License Configuration
clucene CLucene is a cross platform, full-featured, open-source indexing and searching engine/API. (Src) (Doc) LGPL v2.1 CMake
Step Ukkonen's online algorithm for constructing suffix tree, Manber's algorithm for constructing suffix array. MIT Header only
xapian Open-source search engine with indexing facilities (Src) (Doc) GPL v2+ make

 

Template Engine
Library Description License Configuration
inja Header-only Template Engine for C++17. MIT CMake, Conan, vcpkg, etc.
Jinja2C++ C++14/17 implementation of Jinja2 templates MPL-2.0 CMake, Conan

Version Control

Library Description License Configuration
coo-semver The C++ operation library for semantic version numbers.    
LibGit2 Version Control System Git's core library.    

Video

Library Description License Configuration
crystalhd      
gstreamermm      
libmatroska      
libVLC      
mjpegtools      

Web

Library Description License Configuration
Chromium Embedded      
cpp-jwt      
Drogon A C++14/17 based HTTP web application framework running on Linux/macOS/Unix/Windows.    
ffead-cpp Framework for Enterprise Application Development in c++, HTTP1/HTTP2/HTTP3 compliant, Supports multiple server backends Apache 2.0 CMake
libhttpserver      
libkcddb      
liblastfm      
libmusicbrainz5      
libnavajo      
oatpp Light and powerful web-framework for IoT and high-performance web-services. Zero-dependency and easy-portable.    
QtWebApp HTTP(s) Server in C++ inspired by Java Servlets    
Tufão      
uri-template URI Templates expansion and reverse-matching for C++ Apache 2.0 CMake
userver The C++ Asynchronous Framework Apache 2.0 CMake
Wt Widgets and building blocks to build web apps, built-in security, PDF rendering, 2D and 3D painting, ORM, charting, authentication frameworks. (Doc) (Src) GNU GPL or Commercial  

[출처] https://en.cppreference.com/w/cpp/links/libs

 

 

 

 

 

 

 

 

 

 

 

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
246 [C++] 템플릿(template) 사용법 & 예제 총정리 file 졸리운_곰 2022.10.31 25
245 [WSL] WSL 배포판 복사하기 졸리운_곰 2022.10.30 24
244 [WSL] 백업방법, WSL 내보내기, 가져오기 [WSL2] 내보내기 및 가져오기 졸리운_곰 2022.10.30 12
» [C/C++] A list of open source C++ libraries 졸리운_곰 2022.10.03 15
242 [C/C++][인공지능] Most Useful C/C++ ML Libraries Every Data Scientist Should Know file 졸리운_곰 2022.10.01 30
241 [WSL] WSL2[4] - SSH 접속하기 file 졸리운_곰 2022.09.25 35
240 [C/C++] The Ultimate Guide to Web Scraping With C++ file 졸리운_곰 2022.09.21 10
239 [WSL] WSL2 딥러닝 환경 구축하기 (CUDA, CuDNN, Anaconda) file 졸리운_곰 2022.09.04 27
238 [WSL] WSL에서의 Jupyter notebook 사용하기. file 졸리운_곰 2022.09.04 22
237 [Linux WSL2] WSL2에서 Ubuntu GUI 프로그램 실행하기 (VcXsrv) file 졸리운_곰 2022.08.20 29
236 [리눅스, Linux] 우분투에서 NTFS 를 Read/Write로 마운트 (듀얼 부팅 화일 공유) file 졸리운_곰 2022.08.13 12
235 [C/C++ 타 언어간 인터페이스] SWIG 요약 정리 졸리운_곰 2022.07.29 24
234 [C/C++ 에서 다른 언어간 연계/호출] Making C++ Talk to Other Languages with SWIG file 졸리운_곰 2022.07.18 26
233 [C 프로그래밍] 파일 출력 함수_3.연결 리스트 저장, 불러오기 졸리운_곰 2022.06.17 34
232 [UBUNTU] 우분투 20.04 USB 스틱에 설치 How to Install Ubuntu on a USB Flash Drive file 졸리운_곰 2022.06.02 49
231 [인공지능] 추론 기법 file 졸리운_곰 2022.05.05 38
230 [C/C++] Modern C++ micro-service implementation + REST API file 졸리운_곰 2022.04.15 12
229 [C++ 인공지능] C ++을 이용한 단순 MLP 역 전파 인공 신경망 (단계 별) file 졸리운_곰 2022.04.11 80
228 [linux mater] Linux passwd : 인증 토큰 수정 오류 졸리운_곰 2022.03.04 30
227 [C/C++인공지능] An Introduction to Machine Learning Libraries for C++ file 졸리운_곰 2021.12.06 53
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED