Namespaces
Variants
Views
Actions

Difference between revisions of "cpp/links/libs"

From cppreference.com
< cpp‎ | links
m (Images: +FreeImageRe, as requested.)
m (+FPNN, +swxJson, per talk.)
 
(20 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{title | A list of open source C++ libraries}}
+
{{title|A list of open-source C++ libraries}}
<div style="border: 1px solid silver; border-radius: 5px; padding: 0.5em;">
+
{{cpp/links/objectives}}
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 ([https://duckduckgo.com/ DuckDuckGo], [https://www.google.com/?gws_rd=ssl Google], [https://www.bing.com/ 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.
+
</div>
+
  
 
{{cot|Libraries: Table Of Contents}}
 
{{cot|Libraries: Table Of Contents}}
Line 89: Line 83:
 
=Package managers=
 
=Package managers=
  
{| class="wikitable" style="font-size:1em; line-height:1em; text-align:center;"
+
{{cpp/links/package managers}}
|-
+
! rowspan="1" width="15%" | Package manager
+
! rowspan="1" width="65%" | Description
+
|-
+
! [https://build2.org/ 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.
+
|-
+
! [https://cget.readthedocs.io/en/latest/ cget]
+
| Cmake package retrieval. This can be used to download and install cmake packages.
+
|-
+
! [https://github.com/scapix-com/cmodule cmodule]
+
| Non-intrusive CMake dependency management.
+
|-
+
! [https://conan.io/ conan]
+
| Decentralized, open-source (MIT), C/C++ package manager.
+
|-
+
! [https://github.com/TheLartians/CPM.cmake 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.
+
|-
+
! [https://hunter.readthedocs.io/en/latest/ hunter]
+
| A CMake driven cross-platform package manager for C/C++ projects.
+
|-
+
! [https://spack.io spack]
+
| A package manager for supercomputers, Linux, and macOS. It makes installing scientific software easy. It isn’t tied to a particular language.
+
|-
+
! [https://bitbucket.org/benman/teaport teaport]
+
| A cocoapods inspired dependency manager.
+
|-
+
! [https://docs.microsoft.com/en-us/cpp/vcpkg vcpkg]
+
| A C++ package manager for Windows, Linux, and macOS.
+
|-
+
! [https://xmake.io/ xmake]
+
| A cross-platform Lua-based C/C++ build tool and package manager.
+
|-
+
|}
+
 
+
  
 
=Libraries=
 
=Libraries=
Line 132: Line 90:
  
 
{{libtablebegin}}
 
{{libtablebegin}}
{{librow | Aquila | https://github.com/zsiciarz/aquila | Open-source and cross-platform DSP library for C++11. | MIT | CMake}}
+
{{librow | Amplitude Audio SDK | https://amplitudeaudiosdk.com | A cross-platform audio engine designed with the needs of games in mind. ([https://github.com/SparkyStudios/AmplitudeAudioSDK Src]) | Apache-2.0 | cmake, vcpkg}}
{{librow | Essentia | https://essentia.upf.edu/index.html | Open-source library and tools for audio and music analysis, description and synthesis (MIR) ([https://github.com/MTG/essentia Src]) | [https://www.gnu.org/licenses/agpl.html Affero GPLv3]}}
+
{{librow | Aquila | https://github.com/zsiciarz/aquila | An open-source and cross-platform DSP library for C++11. | MIT | cmake}}
{{librow | FFTW | https://www.fftw.org/ | A library for computing the DFT (SSE/SSE2/AVX/Altivec/ARM Neon). ([https://github.com/FFTW/fftw3 Src]) | GPL-2.0 | CMake}}
+
{{librow | Aubio | https://aubio.org/ | A C/Python library for audio and music analysis. ([https://github.com/aubio/aubio Src]) | GPL-3.0 | make}}
{{librow | KFR | https://www.kfrlib.com | Fast, modern, C++17, open source, cross-platform DSP/DFT framework, supports Audio resampling, FIR/IIR filters, Biquad, (SSE, AVX, AVX-512, ARM NEON). ([https://github.com/kfrlib/kfr Src]) | GPL-2.0 | CMake}}
+
{{librow | audioFlux | https://github.com/libAudioFlux/audioFlux | A C library for audio and music analysis, feature extraction. | MIT | }}
{{librow | soundtouch | https://www.surina.net/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. ([https://gitlab.com/soundtouch/soundtouch Src]) | [https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html LGPL-2.1] | Makefile}}
+
{{librow | Essentia | https://essentia.upf.edu/index.html | An open-source library and tools for audio and music analysis, description and synthesis (MIR) ([https://github.com/MTG/essentia Src]) | [https://www.gnu.org/licenses/agpl.html Affero GPLv3]}}
 +
{{librow | FFTW | https://www.fftw.org/ | A library for computing the DFT (SSE/SSE2/AVX/Altivec/ARM Neon). ([https://github.com/FFTW/fftw3 Src]) | GPL-2.0 | cmake}}
 +
{{librow | FMOD | http://www.fmod.org/ | An easy to use cross-platform audio engine and audio content creation tool for games. | Free for non-commercial/Commercial | cmake}}
 +
{{librow | KFR | https://www.kfrlib.com | A fast, modern, C++17, open-source, cross-platform DSP/DFT framework, supports Audio resampling, FIR/IIR filters, Biquad, (SSE, AVX, AVX-512, ARM NEON). ([https://github.com/kfrlib/kfr Src]) | GPL-2.0 | cmake}}
 +
{{librow | libsoundio | http://libsound.io/ | A C library for cross-platform real-time audio input and output. ([https://github.com/andrewrk/libsoundio Src]) | MIT | cmake}}
 +
{{librow | Maximilian | https://github.com/micknoise/Maximilian | C++ Audio and Music DSP Library. | MIT | cmake}}
 +
{{librow | Miniaudio | https://miniaud.io/ | An audio playback and capture C library. ([https://github.com/mackron/miniaudio Src]) | [https://github.com/mackron/miniaudio#License-1-ov-file Unlicense] | single source file}}
 +
{{librow | ni-media | https://github.com/NativeInstruments/ni-media | C++ library for reading and writing audio files. | MIT | cmake, vcpkg}}
 +
{{librow | OpenAL | http://www.openal.org/ | A cross-platform audio API. | BSD/LGPL/Proprietary | cmake}}
 +
{{librow | PortAudio | http://www.portaudio.com/ | PortAudio is a free, cross-platform, open-source, audio I/O library. ([https://github.com/PortAudio/portaudio Src]) | MIT | cmake, vcpkg}}
 +
{{librow | rnnoise | https://github.com/xiph/rnnoise | Recurrent neural network for audio noise reduction. | BSD-3-Clause | make}}
 +
{{librow | SELA | https://github.com/sahaRatul/sela | '''S'''impl'''E''' '''L'''ossless '''A'''udio. | MIT | cmake}}
 +
{{librow | SoLoud | https://github.com/jarikomppa/soloud | Easy, portable audio engine for games. | zlib | }}
 +
{{librow | Soundtouch | https://www.surina.net/soundtouch/ | The SoundTouch is an open-source cross-platform audio processing library for changing the Tempo, Pitch and Playback Rates of audio streams or audio files. ([https://gitlab.com/soundtouch/soundtouch Src]) | [https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html LGPL-2.1] | make}}
 +
{{librow | Tonic | https://github.com/TonicAudio/Tonic | Easy and efficient audio synthesis in C++. | [https://github.com/TonicAudio/Tonic#Unlicense-1-ov-file Unlicense] | }}
 +
{{librow | Verovio | https://www.verovio.org | A fast and lightweight music notation engraving library. ([https://github.com/rism-ch/verovio Src]) | LGPL | cmake, qmake}}
 +
{{librow | Wav2Letter++ | https://github.com/facebookresearch/wav2letter/ | A fast speech recognition toolkit written entirely in C++ and uses the ArrayFire tensor library and the flashlight machine learning library for maximum efficiency. | [https://github.com/flashlight/wav2letter#License-1-ov-file Unlicense] | cmake}}
 
{{libtableend}}
 
{{libtableend}}
  
Line 143: Line 117:
  
 
{{libtablebegin}}
 
{{libtablebegin}}
{{librow | libkcompactdisc | https://github.com/KDE/libkcompactdisc | Library for interfacing with CDs | GPL v2.0 | CMake}}
+
{{librow | libkcompactdisc | https://github.com/KDE/libkcompactdisc | A library for interfacing with CDs | GPL v2.0 | cmake}}
 
{{libtableend}}
 
{{libtableend}}
  
Line 150: Line 124:
  
 
{{libtablebegin}}
 
{{libtablebegin}}
{{librow | chromaprint | https://acoustid.org/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. ([https://github.com/acoustid/chromaprint Src]) | MIT, LGPL 2.1 | CMake}}
+
{{librow | chromaprint | https://acoustid.org/chromaprint | The Chromaprint is an audio fingerprint library designed to identify near-identical audio. It trades precision and robustness for search performance. Chromaprint can use multiple FFT libraries - FFmpeg, FFTW3, KissFFT or vDSP. ([https://github.com/acoustid/chromaprint Src]) | MIT, LGPL 2.1 | cmake}}
{{librow | libmusicbrainz | https://musicbrainz.org/doc/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 ([https://github.com/metabrainz/libmusicbrainz Src]) | LGPL-2.1 | CMake}}
+
{{librow | libmusicbrainz | https://musicbrainz.org/doc/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 ([https://github.com/metabrainz/libmusicbrainz Src]) | LGPL-2.1 | cmake}}
{{librow | libofa | https://github.com/tanob/libofa/ | Open-source audio fingerprint by MusicIP | [https://github.com/tanob/libofa/blob/master/COPYING APL] | makefile}}
+
{{librow | libofa | https://github.com/tanob/libofa/ | An open-source audio fingerprint by MusicIP | [https://github.com/tanob/libofa/blob/master/COPYING APL] | make}}
 
{{libtableend}}
 
{{libtableend}}
  
Line 159: Line 133:
  
 
{{libtablebegin}}
 
{{libtablebegin}}
{{librow | audiofile | https://audiofile.68k.org/ | AudioFile Library handles reading and writing audio files in many common formats. ([https://github.com/mpruett/audiofile/ Src]) | LGPL-2.1 | makefile}}
+
{{librow | AudioFile | https://github.com/adamstark/AudioFile | A simple C++ library for reading and writing audio files. | MIT | cmake}}
{{librow | flac | https://xiph.org/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. | [https://opensource.org/docs/definition.php Open Source], BSD, GPL}}
+
{{librow | audio_file | https://audiofile.68k.org/ | A library that handles reading and writing audio files in many common formats. ([https://github.com/mpruett/audiofile/ Src]) | LGPL-2.1 | make}}
{{librow | libsndfile | http://www.mega-nerd.com/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}}
+
{{librow | dr_libs | https://github.com/mackron/dr_libs | Single-file audio (FLAC, MP3, WAV) decoding libraries for C and C++. | [https://github.com/mackron/dr_libs#License-1-ov-file Unlicense] | }}
 +
{{librow | flac | https://xiph.org/flac/ | The FLAC stands for '''F'''ree '''L'''ossless '''A'''udio '''C'''odec, meaning that audio compressed in FLAC has no loss in quality. FLAC stands out as the fastest and most widely supported lossless audio codec, non-proprietary, and unencumbered by patents. | [https://opensource.org/docs/definition.php Open Source], BSD, GPL}}
 +
{{librow | LAME | https://lame.sourceforge.io/using.php | LAME is a high quality MPEG Audio Layer III (MP3) encoder. | LGPL | }}
 +
{{librow | libsndfile | http://www.mega-nerd.com/libsndfile | A C library with C++ wrapper for reading and writing files containing sampled sound (e.g. WAV, AIFF) through one standard library interface. ([https://github.com/erikd/libsndfile/ Src]) | LGPL-2.1 | cmake, make, vcpkg}}
 +
{{librow | minimp3 | https://github.com/lieff/minimp3 | Minimalistic MP3 decoder | [https://github.com/lieff/minimp3#CC0-1.0-1-ov-file CC0-1.0] | header-only}}
 +
{{librow | Opus | http://opus-codec.org/ | A totally open, royalty-free, highly versatile audio codec. | BSD | cmake}}
 +
{{librow | Vorbis | http://xiph.org/vorbis/ | Ogg Vorbis is a fully open, non-proprietary, patent-and-royalty-free, general-purpose compressed audio format. | BSD | cmake}}
 
{{libtableend}}
 
{{libtableend}}
  
Line 169: Line 149:
 
{{libtablebegin}}
 
{{libtablebegin}}
 
{{librow | id3lib | http://id3lib.sourceforge.net/ | 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 [https://taglib.org/ taglib] :) | LGPL v2}}
 
{{librow | id3lib | http://id3lib.sourceforge.net/ | 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 [https://taglib.org/ taglib] :) | LGPL v2}}
{{librow | taglib | https://taglib.org/ | 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. ([https://github.com/taglib/taglib Src]) | [https://www.gnu.org/licenses/lgpl.html LGPL] and [https://www.mozilla.org/MPL/MPL-1.1.html MPL v1.1]}}
+
{{librow | taglib | https://taglib.org/ | The TagLib Audio Metadata Library is a library for reading and editing the meta-data of several popular audio formats: ID3v1, ID3v2 for MP3 files, Ogg Vorbis comments and ID3 tags and Vorbis comments in FLAC, MPC, Speex, WavPack, TrueAudio, WAV, AIFF, MP4 and ASF files. ([https://github.com/taglib/taglib Src]) | [https://www.gnu.org/licenses/lgpl.html LGPL] and [https://www.mozilla.org/MPL/MPL-1.1.html MPL v1.1]}}
 
{{libtableend}}
 
{{libtableend}}
  
Line 175: Line 155:
  
 
{{libtablebegin}}
 
{{libtablebegin}}
{{librow | benchmark | https://github.com/google/benchmark | A library to benchmark code snippets, similar to unit tests | Apache 2.0 | CMake}}
+
{{librow | benchmark | https://github.com/google/benchmark | A library to benchmark code snippets, similar to unit tests | Apache 2.0 | cmake}}
{{librow | Celero | https://github.com/DigitalInBlue/Celero | Feature-rich C++ Benchmark Authoring Library/Framework. Supports Windows, Linux, and OSX using C++11. | Apache | CMake}}
+
{{librow | Celero | https://github.com/DigitalInBlue/Celero | A feature-rich C++ Benchmark Authoring Library/Framework. Supports Windows, Linux, and OSX using C++11. | Apache | cmake}}
{{librow | gperftools | https://github.com/gperftools/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}}
+
{{librow | Criterion | https://github.com/p-ranav/criterion | A micro-benchmarking library for modern C++ | MIT | header-only; cmake}}
{{librow | nanobench | https://nanobench.ankerl.com | Simple, fast, accurate single-header microbenchmarking functionality for C++11/14/17/20. ([https://github.com/martinus/nanobench Src]) | MIT | CMake}}
+
{{librow | gperftools | https://github.com/gperftools/gperftools | The 'Google Performance Tools' includes a high-performance, multi-threaded malloc implementation plus tools for benchmarking heap allocation and CPU utilization. | BSD 3-Clause "New" or "Revised" | configure}}
{{librow | plf::nanotimer | https://github.com/mattreecebentley/plf_nanotimer | Lowest-overhead, cross-platform simple timer class for benchmarking. | zlib}}
+
{{librow | nanobench | https://nanobench.ankerl.com | A simple, fast, accurate single-header micro-benchmarking functionality for C++11/14/17/20. ([https://github.com/martinus/nanobench Src]) | MIT | header-only; cmake}}
 +
{{librow | picobench | https://github.com/iboB/picobench | A tiny (micro) micro-benchmarking library | MIT | header-only; cmake}}
 +
{{librow | plf::nanotimer | https://github.com/mattreecebentley/plf_nanotimer | A lowest-overhead, cross-platform simple timer class for benchmarking. | zlib | header-only}}
 
{{libtableend}}
 
{{libtableend}}
  
Line 185: Line 167:
  
 
{{libtablebegin}}
 
{{libtablebegin}}
{{librow | ACE | https://www.dre.vanderbilt.edu/~schmidt/ACE.html | asynchronous networking, event demultiplexing, messaging}}
+
{{librow | ACE | https://www.dre.vanderbilt.edu/~schmidt/ACE.html | Asynchronous networking, event de-multiplexing, messaging ([https://github.com/DOCGroup/ACE_TAO Src]) ([https://www.dre.vanderbilt.edu/Doxygen/ Doc]) | [https://github.com/DOCGroup/ACE_TAO/blob/master/ACE/COPYING Custom] | make}}
{{librow | Apache Thrift | https://thrift.apache.org/ | 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.}}
+
{{librow | Apache Thrift | https://thrift.apache.org/ | 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. ([https://github.com/apache/thrift Src]) | Apache-2.0 | cmake, vcpkg}}
{{librow | Boost.Asio | https://boost.org/libs/asio/ | asynchronous and synchronous networking, timers, serial I/O | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
+
{{librow | Boost.Asio | https://boost.org/libs/asio/ | Asynchronous and synchronous networking, timers, serial I/O | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
{{librow | Boost.Beast | https://boost.org/libs/beast/ | HTTP and WebSocket library built on top of Boost.Asio | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
+
{{librow | Boost.Beast | https://boost.org/libs/beast/ | An HTTP and WebSocket library built on top of Boost.Asio | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
{{librow | Breep | https://github.com/Organic-Code/Breep | Event based, high-level, peer-to-peer library, allowing users to directly send and receive objects. | European Union Public License 1.1 | CMake}}
+
{{librow | Breep | https://github.com/Organic-Code/Breep | An event based, high-level, peer-to-peer library, allowing users to directly send and receive objects. | European Union Public License 1.1 | cmake}}
{{librow | brpc | https://brpc.apache.org | Industrial-grade RPC framework used throughout Baidu, with 1,000,000+ instances and thousands kinds of services. ([https://github.com/apache/incubator-brpc/ Src]) ([https://brpc.apache.org/docs/ Doc]) | Apache 2.0 | CMake}}
+
{{librow | brpc | https://brpc.apache.org | An industrial-grade RPC framework used throughout Baidu, with 1,000,000+ instances and thousands kinds of services. ([https://github.com/apache/incubator-brpc/ Src]) ([https://brpc.apache.org/docs/ Doc]) | Apache 2.0 | cmake}}
{{librow | C++ REST SDK | https://github.com/Microsoft/cpprestsdk | asynchronous HTTP client and listener, asynchronous Stream, URI, JSON | MIT | CMake}}
+
{{librow | C++ REST SDK | https://github.com/Microsoft/cpprestsdk | An asynchronous HTTP client and listener, asynchronous Stream, URI, JSON | MIT | cmake}}
{{librow | cpp-netlib | https://github.com/cpp-netlib/cpp-netlib | cpp-netlib: The C++ Network Library | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0] | CMake}}
+
{{librow | cpp-httplib | https://github.com/yhirose/cpp-httplib | A C++11 single-file header-only cross platform HTTP/HTTPS library | MIT | header-only; cmake}}
{{librow | cppsimpleuri | https://github.com/salzaverde/cppsimpleuri | A modern C++ uri & query parser | MIT | CMake}}
+
{{librow | cpp-netlib | https://github.com/cpp-netlib/cpp-netlib | A C++ Network Library | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0] | cmake}}
{{librow | cpr | https://github.com/whoshuu/cpr | a modern C++ HTTP requests library | MIT | CMake}}
+
{{librow | cppsimpleuri | https://github.com/salzaverde/cppsimpleuri | A modern C++ uri & query parser | MIT | cmake}}
{{librow | Crow | https://github.com/CrowCpp/crow | A header-only C++ micro web framework (inspired by Python Flask) | BSD-3-Clause | CMake}}
+
{{librow | cpr | https://github.com/whoshuu/cpr | A modern C++ HTTP requests library | MIT | cmake}}
{{librow | curlpp | https://www.curlpp.org/ | C++ wrapper for CURL library}}
+
{{librow | Crow | https://github.com/CrowCpp/crow | A C++ micro web framework (inspired by Python Flask) | BSD-3-Clause | header-only; cmake}}
{{librow | DumaisLib | https://github.com/pdumais/DumaisLib | Various utilities such as WebServer, JSON, WebSocket server, REST framework (a library for creating a REST API in your c++ app) | MIT | Makefile}}
+
{{librow | curlpp | https://www.curlpp.org/ | C++ wrapper for libcURL (CURL library). ([https://github.com/jpbarrette/curlpp Src]) | | cmake, vcpkg}}
{{librow | EasyHttp | https://github.com/sony/easyhttpcpp | A cross-platform HTTP client library with a focus on usability and speed, supporting http response caching and more. | MIT | CMake}}
+
{{librow | DumaisLib | https://github.com/pdumais/DumaisLib | Various utilities such as WebServer, JSON, WebSocket server, REST framework (a library for creating a REST API in your c++ app) | MIT | make}}
{{librow | eCAL | https://github.com/eclipse-ecal/ecal | high performance inter-process communication | Apache 2.0 | CMake}}
+
{{librow | EasyHttp | https://github.com/sony/easyhttpcpp | A cross-platform HTTP client library with a focus on usability and speed, supporting http response caching and more. | MIT | cmake}}
{{librow | fineftp-server | https://github.com/eclipse-ecal/fineftp-server | ftp server library for Windows and Unix | MIT | CMake}}
+
{{librow | eCAL | https://github.com/eclipse-ecal/ecal | A high performance inter-process communication library | Apache 2.0 | cmake}}
{{librow | gRPC | https://grpc.io/ | A modern open-source high performance RPC framework that can run in any environment.}}
+
{{librow | fineftp-server | https://github.com/eclipse-ecal/fineftp-server | An FTP-server library for Windows and Unix | MIT | cmake}}
{{librow | gsoap | http://gsoap2.sourceforge.net/ | C/C++ development toolkit for XML data bindings, fast WSDL/SOAP/XML Web services, WS-Security, JSON/XML-RPC RESTful services}}
+
{{librow | FPNN | https://github.com/highras/fpnn | '''F'''ast '''P'''rogrammable '''N'''exus '''N'''etwork. High performance fully asynchronous RPC service framework. Simultaneously supporting HTTP, WebSocket, TCP, and reliable UDP. Support the development of ultra-high load servers, with corresponding client SDKs. | 未知 | make}}
{{librow | hmbdc | https://github.com/hmbdc-dev/hmbdc | Headers-only, lightweight and high performance C++17 message pub/sub middleware framework/lib||Headers-only}}
+
{{librow | gRPC | https://grpc.io/ | A modern open-source high performance RPC framework that can run in any environment. ([https://github.com/grpc/grpc Src]) ([https://grpc.io/docs/ Doc]) | Apache-2.0 | bazel, cmake, vcpkg}}
 
+
{{librow | gsoap | http://gsoap2.sourceforge.net/ | A C/C++ development toolkit for XML data bindings, fast WSDL/SOAP/XML Web services, WS-Security, JSON/XML-RPC RESTful services | GPLv2 | }}
{{librow | HTTPP | https://github.com/daedric/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}}
+
{{librow | hmbdc | https://github.com/hmbdc-dev/hmbdc | A lightweight and high performance C++17 message pub/sub middleware framework/lib | | header-only}}
{{librow | IXWebSocket | https://github.com/machinezone/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}}
+
{{librow | HTTPP | https://github.com/daedric/httpp | A simple, C++14, production ready HTTP-server built on top of Boost and a client built on top of libcurl. | BSD 2-Clause "Simplified" | cmake, make}}
{{librow | KCP | https://github.com/skywind3000/kcp/blob/master/README.en.md | A fast and reliable ARQ protocol that helps applications to reduce network latency. | MIT | CMake}}
+
{{librow | IXWebSocket | https://github.com/machinezone/IXWebSocket | An open-source WebSocket + HTTP library without dependency, supports SSL and the per message deflate WebSocket extension. | BSD 3-Clause "New" or "Revised" | cmake, make}}
{{librow | libashttp | https://github.com/tghosgor/libashttp | asynchronous HTTP client library | GNU Lesser General Public v3.0}}
+
{{librow | KCP | https://github.com/skywind3000/kcp/blob/master/README.en.md | A fast and reliable ARQ protocol that helps applications to reduce network latency. | MIT | cmake}}
 +
{{librow | libashttp | https://github.com/tghosgor/libashttp | An asynchronous HTTP client library | GNU Lesser General Public v3.0}}
 
{{librow | libjson-rpc-cpp | https://github.com/cinemast/libjson-rpc-cpp |
 
{{librow | libjson-rpc-cpp | https://github.com/cinemast/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}}
+
A framework that provides cross-platform JSON-RPC (remote procedure call) support for C++, fully JSON-RPC 2.0 & 1.0 compatible. | MIT | cmake, conan}}
{{librow | libnavajo | https://github.com/titi38/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}}
+
{{librow | libnavajo | https://github.com/titi38/libnavajo | A C++ framework including a fast multithreaded http server, HTML5 Websockets, SSL, X509 and HTTP authentification, compression, cookies and advanced session management, IPv4 and IPv6 (CeCILL-C). | CeCILL-C FREE SOFTWARE LICENSE AGREEMENT | cmake}}
{{librow | libtins | https://libtins.github.io/ | Network packet crafting and sniffing library}}
+
{{librow | libtins | https://libtins.github.io/ | A network packet crafting and sniffing library ([https://github.com/mfontanini/libtins Src]) ([https://libtins.github.io/docs/latest/ Doc]) | BSD-2 | cmake, vcpkg}}
{{librow | LiteNetLibPP | https://github.com/Revan600/LiteNetLibPP | Lightweight reliable UDP library for games | MIT | CMake}}
+
{{librow | LiteNetLibPP | https://github.com/Revan600/LiteNetLibPP | A lightweight reliable UDP library for games | MIT | cmake}}
{{librow | mailio | https://github.com/karastojko/mailio | MIME and email library | BSD 2-Clause "Simplified" | CMake}}
+
{{librow | mailio | https://github.com/karastojko/mailio | MIME and email library | BSD 2-Clause "Simplified" | cmake}}
{{librow | nanomsg | https://nanomsg.org/ | fast message queue, zeromq successor}}
+
{{librow | nanomsg | https://nanomsg.org/ | A fast message queue, zeromq successor}}
{{librow | netif | https://github.com/gmlc-tdc/netif | Header-only C++14 library for getting network addresses on Windows, Linux, macOS, and FreeBSD. | BSD 3-Clause "New" or "Revised" | CMake}}}
+
{{librow | netif | https://github.com/gmlc-tdc/netif | A C++14 library for getting network addresses on Windows, Linux, macOS, and FreeBSD. | BSD 3-Clause "New" or "Revised" | header-only; cmake}}}
{{librow | nghttp2 | https://github.com/nghttp2/nghttp2 | HTTP/2 C Library and tools (server, client, proxy and benchmarking tools) | MIT | CMake, configure}}
+
{{librow | nghttp2 | https://github.com/nghttp2/nghttp2 | HTTP/2 C Library and tools (server, client, proxy and benchmarking tools) | MIT | cmake, configure}}
{{librow | ngrest | https://github.com/loentar/ngrest | Fast and easy in use JSON RESTful Web Services Framework | Apache 2.0 | CMake}}
+
{{librow | ngrest | https://github.com/loentar/ngrest | A fast and easy in use JSON RESTful Web Services Framework | Apache 2.0 | cmake}}
{{librow | nng | https://nng.nanomsg.org/ | fast message queue, nanomsg successor}}
+
{{librow | nng | https://nng.nanomsg.org/ | A fast message queue, nanomsg successor}}
{{librow | Oat++ | https://oatpp.io/ | Web framework: REST-API and Request implementation ([https://github.com/oatpp/oatpp Src]) ([https://oatpp.io/docs/start/ Doc]) | Apache 2.0 | CMake}}
+
{{librow | Oat++ | https://oatpp.io/ | A Web Framework: REST-API and Request implementation ([https://github.com/oatpp/oatpp Src]) ([https://oatpp.io/docs/start/ Doc]) | Apache 2.0 | cmake}}
{{librow | omniORB | http://omniorb.sourceforge.net | the fastest, complete and portable CORBA ORB implementation in C++}}
+
{{librow | omniORB | http://omniorb.sourceforge.net | The fastest, complete and portable CORBA ORB implementation in C++}}
 
{{librow | OpenDDS | https://www.opendds.org | DDS (Data Distribution Service) implementation}}
 
{{librow | OpenDDS | https://www.opendds.org | DDS (Data Distribution Service) implementation}}
{{librow | Paho MQTT | https://github.com/eclipse/paho.mqtt.cpp/ | Modern C++ client for MQTT from Eclipse | | CMake}}
+
{{librow | Paho MQTT | https://github.com/eclipse/paho.mqtt.cpp/ | A modern C++ client for MQTT from Eclipse | | cmake}}
{{librow | paozhu | https://github.com/hggq/paozhu | C++20 Web Framework Support HTTP/2 ORM WebSocket | MIT | CMake}}
+
{{librow | paozhu | https://github.com/hggq/paozhu | A C++20 Web Framework Support HTTP/2 ORM WebSocket | MIT | cmake}}
{{librow | PcapPlusPlus | https://seladb.github.io/PcapPlusPlus-Doc/ | Multiplatform C++ network sniffing and packet parsing and crafting framework}}
+
{{librow | PcapPlusPlus | https://seladb.github.io/PcapPlusPlus-Doc/ | Multi-platform C++ network sniffing and packet parsing and crafting framework. Provides C++ wrappers for many popular packet processing engines such as libpcap, Npcap, WinPcap, DPDK, AF_XDP, and PF_RING. ([https://github.com/seladb/PcapPlusPlus Src]) | [https://github.com/seladb/PcapPlusPlus#Unlicense-1-ov-file Unlicense] | conan, homebrew, cmake, vcpkg}}
{{librow | POCO | https://pocoproject.org/ | networking: encryption, HTTP; Zip files ([https://pocoproject.org/documentation.html Doc])}}
+
{{librow | POCO | https://pocoproject.org/ | Networking: encryption, HTTP; Zip files ([https://pocoproject.org/documentation.html Doc])}}
{{librow | rest_rpc | https://github.com/topcpporg/rest_rpc | modern, simple, easy to use rpc framework | | CMake}}
+
{{librow | rest_rpc | https://github.com/qicosmos/rest_rpc | A C++11, high performance, cross-platform, easy to use RPC framework. | MIT | cmake}}
{{librow | restbed | https://github.com/corvusoft/restbed | Restbed framework brings asynchronous RESTful functionality to C++11 applications. | [https://github.com/Corvusoft/restbed/blob/master/LICENSE License] | CMake}}
+
{{librow | restbed | https://github.com/corvusoft/restbed | A cross-platform feature rich framework brings asynchronous RESTful functionality (secure communication over HTTP) to C++14 applications. | [https://github.com/Corvusoft/restbed/blob/master/LICENSE License] | cmake}}
{{librow | restc-cpp | https://github.com/jgaa/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}}
+
{{librow | restc-cpp | https://github.com/jgaa/restc-cpp | Accessing JSON API's from C++. HTTP Client, native C++ class to/from JSON serialization, asynchronous IO trough boost::asio coroutines. C++14. | MIT | cmake}}
{{librow | restful_mapper | https://github.com/logandk/restful_mapper | ORM for consuming RESTful JSON APIs in C++ | | CMake, Makefile}}
+
{{librow | restful_mapper | https://github.com/logandk/restful_mapper | ORM for consuming RESTful JSON APIs in C++ | | cmake, make}}
{{librow | seastar | https://github.com/scylladb/seastar | High performance server-side application framework, based on C++14/C++17. | Apache 2.0 | CMake, etc.}}
+
{{librow | seastar | https://github.com/scylladb/seastar | A high performance server-side application framework, based on C++14/C++17. | Apache 2.0 | cmake, etc.}}
{{librow | Silicon | https://siliconframework.org | The Silicon C++14 Web Framework: Fast and Robust Web APIs | MIT |CMake}}
+
{{librow | Silicon | https://siliconframework.org | The Silicon C++14 Web Framework: Fast and Robust Web APIs | MIT |cmake}}
{{librow | sockpp | https://github.com/fpagliughi/sockpp | A simple, modern C++ socket library | BSD 3-Clause "New" or "Revised" | CMake}}
+
{{librow | sockpp | https://github.com/fpagliughi/sockpp | A simple, modern C++ socket library | BSD 3-Clause "New" or "Revised" | cmake}}
{{librow | stream-client | https://github.com/TinkoffCreditSystems/stream-client | Lightweight, header-only, Boost-based client-side socket/connector/socket pool/resolver | Apache 2.0 | CMake}}
+
{{librow | stream-client | https://github.com/TinkoffCreditSystems/stream-client | A lightweight Boost-based client-side socket/connector/socket pool/resolver | Apache 2.0 | header-only; cmake}}
{{librow | tacopie | https://github.com/Cylix/tacopie/ | C++11 TCP Library | MIT | CMake}}
+
{{librow | tacopie | https://github.com/Cylix/tacopie/ | A C++11 TCP Library | MIT | cmake}}
 
{{librow | TAO | https://www.dre.vanderbilt.edu/~schmidt/TAO.html | CORBA}}
 
{{librow | TAO | https://www.dre.vanderbilt.edu/~schmidt/TAO.html | CORBA}}
{{librow | taox11 | https://www.taox11.org | C++11 based CORBA implementation | MIT}}
+
{{librow | taox11 | https://www.taox11.org | A C++11 based CORBA implementation | MIT}}
{{librow | Unicomm | https://sourceforge.net/projects/libunicomm/ | asynchronous networking, high-level TCP communication framework}}
+
{{librow | Unicomm | https://sourceforge.net/projects/libunicomm/ | Asynchronous networking, high-level TCP communication framework}}
{{librow | uvw | https://github.com/skypjack/uvw | libuv wrapper in modern C++ | MIT | CMake}}
+
{{librow | uvw | https://github.com/skypjack/uvw | A [https://github.com/libuv/libuv libuv] (cross-platform asynchronous I/O) wrapper in C++17 | MIT | header-only; cmake}}
{{librow | WNetWrap | https://github.com/hack-tramp/wnetwrap | WinInet wrapper in C++ | MIT}}
+
{{librow | WNetWrap | https://github.com/hack-tramp/wnetwrap | A WinInet wrapper in C++ | MIT}}
{{librow | wvstreams | https://github.com/apenwarr/wvstreams | C++ networking library including UniConf and a convenient D-Bus API | GPL}}
+
{{librow | wvstreams | https://github.com/apenwarr/wvstreams | A C++ networking library including UniConf and a convenient D-Bus API | GPL}}
{{librow | zeromq | https://zeromq.org/ | fast message queue}}
+
{{librow | zeromq | https://zeromq.org/ | A fast message queue}}
 
{{libtableend}}
 
{{libtableend}}
  
Line 248: Line 231:
  
 
{{libtablebegin}}
 
{{libtablebegin}}
{{librow | AdaptiveCpp | https://github.com/AdaptiveCpp/AdaptiveCpp | Provides a SYCL and C++ parallel STL offloading compiler and runtime system for CPUs and GPUs from NVIDIA, AMD, Intel | BSD-2-Clause | CMake}}
+
{{librow | AdaptiveCpp | https://github.com/AdaptiveCpp/AdaptiveCpp | Provides a SYCL and C++ parallel STL offloading compiler and runtime system for CPUs and GPUs from NVIDIA, AMD, Intel | BSD-2-Clause | cmake}}
{{librow | Asyncpp | https://github.com/vishnuvijayanklm/Asyncpp | An asynchronous c++ library  that provides various concurrent operations | MIT | CMake}}
+
{{librow | Asyncpp | https://github.com/vishnuvijayanklm/Asyncpp | An asynchronous c++ library  that provides various concurrent operations | MIT | cmake}}
{{librow | BlockingCollection | https://github.com/CodeExMachina/BlockingCollection | A C++11 thread safe collection class modeled after .NET BlockingCollection.}}
+
{{librow | BlockingCollection | https://github.com/CodeExMachina/BlockingCollection | C++11 thread safe, multi-producer, multi-consumer blocking queue, stack & priority queue class | GPL-3.0 | header-only }}
{{librow | Boost.Atomic | https://www.boost.org/doc/libs/release/doc/html/atomic.html | provides atomic data types and operations on these data types, as well as memory ordering constraints required for coordinating multiple threads through atomic variables. | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
+
{{librow | Boost.Atomic | https://www.boost.org/doc/libs/release/doc/html/atomic.html | Provides atomic data types and operations on these data types, as well as memory ordering constraints required for coordinating multiple threads through atomic variables. | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
{{librow | Boost.Compute | https://github.com/kylelutz/compute | (unofficial) GPU/parallel-computing library for C++ based on OpenCL. | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0] | CMake}}
+
{{librow | Boost.Compute | https://github.com/kylelutz/compute | A GPU/parallel-computing library for C++ based on OpenCL. | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0] | cmake}}
 
{{librow | Boost.Context | https://www.boost.org/doc/libs/release/libs/context/doc/html/index.html | A C++11 library that provides a cooperative multitasking abstraction on a single thread. | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
 
{{librow | Boost.Context | https://www.boost.org/doc/libs/release/libs/context/doc/html/index.html | A C++11 library that provides a cooperative multitasking abstraction on a single thread. | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
{{librow | Boost.Interprocess | https://www.boost.org/doc/libs/release/doc/html/interprocess.html | 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. | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
+
{{librow | Boost.Interprocess | https://www.boost.org/doc/libs/release/doc/html/interprocess.html | 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. | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
{{librow | Boost.Lockfree | https://www.boost.org/doc/libs/release/doc/html/lockfree.html | provides non-blocking (aka lock-free) concurrent data structures: a queue, a stack, and a ringbuffer (spsc_queue). | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
+
{{librow | Boost.Lockfree | https://www.boost.org/doc/libs/release/doc/html/lockfree.html | Provides non-blocking (aka lock-free) concurrent data structures: a queue, a stack, and a ringbuffer (spsc_queue). | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
 
{{librow | Boost.MPI | https://www.boost.org/doc/libs/release/doc/html/mpi.html | A C++-friendly interface to the standard [https://www.mpi-forum.org/ Message Passing Interface] | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
 
{{librow | Boost.MPI | https://www.boost.org/doc/libs/release/doc/html/mpi.html | A C++-friendly interface to the standard [https://www.mpi-forum.org/ Message Passing Interface] | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
{{librow | Boost.Thread | https://www.boost.org/doc/libs/release/doc/html/thread.html | enables the use of multiple threads of execution with shared data and means for synchronizing data between the threads. | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
+
{{librow | Boost.Thread | https://www.boost.org/doc/libs/release/doc/html/thread.html | Enables the use of multiple threads of execution with shared data and means for synchronizing data between the threads. | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
{{librow | concurrencpp | https://github.com/David-Haim/concurrencpp | Modern concurrency for C++. Tasks, executors, timers and C++20 coroutines. | MIT | CMake}}
+
{{librow | concurrencpp | https://github.com/David-Haim/concurrencpp | Modern concurrency for C++. Tasks, executors, timers and C++20 coroutines. | MIT | cmake}}
{{librow | dispenso | https://github.com/facebookincubator/dispenso | High-performance concurrency for C++. parallel_for, Futures, pipelines, timers, timed/periodic tasks, and concurrent data structures. | MIT | CMake}}
+
{{librow | dispenso | https://github.com/facebookincubator/dispenso | High-performance concurrency for C++. parallel_for, Futures, pipelines, timers, timed/periodic tasks, and concurrent data structures. | MIT | cmake}}
{{librow | Highway | https://github.com/google/highway | provides performance-portable, length-agnostic SIMD/vector intrinsics. Supports: SSE3, SSE4, AVX*, NEON, SVE*, WASM SIMD, RISC-V, POWER. ([https://github.com/google/highway/tree/master/g3doc Doc]) | [https://github.com/google/highway/blob/master/LICENSE Apache-2.0] | CMake}}
+
{{librow | Highway | https://github.com/google/highway | Provides performance-portable, length-agnostic SIMD/vector intrinsics. Supports: SSE3, SSE4, AVX*, NEON, SVE*, WASM SIMD, RISC-V, POWER. ([https://github.com/google/highway/tree/master/g3doc Doc]) | [https://github.com/google/highway/blob/master/LICENSE Apache-2.0] | cmake}}
{{librow | HPX | https://github.com/STEllAR-GROUP/hpx/ | A general purpose C++ runtime system for parallel and distributed applications of any scale}}
+
{{librow | HPX | https://github.com/STEllAR-GROUP/hpx/ | A general purpose C++ runtime system for parallel and distributed applications of any scale ([https://hpx.stellar-group.org/about/ Doc]) | BSL-1.0 | cmake, vcpkg}}
 
{{librow | Intel TBB | https://software.intel.com/content/www/us/en/develop/tools/threading-building-blocks.html
 
{{librow | Intel TBB | https://software.intel.com/content/www/us/en/develop/tools/threading-building-blocks.html
| 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. ([https://github.com/oneapi-src/oneTBB Src]) ([https://software.intel.com/content/www/us/en/develop/tools/threading-building-blocks/documentation.html Doc]) | [https://github.com/oneapi-src/oneTBB/blob/tbb_2020/LICENSE Apache-2.0] or Commercial | CMake, Makefile}}
+
| 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. ([https://github.com/oneapi-src/oneTBB Src]) ([https://software.intel.com/content/www/us/en/develop/tools/threading-building-blocks/documentation.html Doc]) | [https://github.com/oneapi-src/oneTBB/blob/tbb_2020/LICENSE Apache-2.0] or Commercial | cmake, make}}
{{librow | KOKKOS | https://github.com/kokkos/kokkos | A programming model in C++ for writing performance portable HPC applications}}
+
{{librow | KOKKOS | https://github.com/kokkos/kokkos | A programming model for writing performance portable HPC applications, using CUDA, HIP, SYCL, HPX, OpenMP and C++ threads as backends ([https://kokkos.github.io/kokkos-core-wiki/programmingguide.html Doc]) | [https://github.com/kokkos/kokkos#License-1-ov-file Custom] | cmake, make}}
{{librow | libopenmpi | https://www.open-mpi.org/ | The Open MPI Project is an open source Message Passing Interface implementation | [https://www.open-mpi.org/community/license.php 3-clause BSD ]}}
+
{{librow | libopenmpi | https://www.open-mpi.org/ | The Open MPI Project is an open-source Message Passing Interface implementation | [https://www.open-mpi.org/community/license.php 3-clause BSD ]}}
{{librow | libsimdpp | https://github.com/p12tic/libsimdpp | A portable header-only zero-overhead C++ low level SIMD library. | Boost | CMake}}
+
{{librow | libsimdpp | https://github.com/p12tic/libsimdpp | A portable zero-overhead C++ low level SIMD library. | Boost | header-only; cmake}}
{{librow | MPL | https://github.com/rabauke/mpl | A C++-17-friendly header-only interface to the standard [https://www.mpi-forum.org/ Message Passing Interface] | BSD 3-Clause "New" or "Revised" | CMake}}
+
{{librow | MPL | https://github.com/rabauke/mpl | A C++-17-friendly interface to the standard [https://www.mpi-forum.org/ Message Passing Interface] | BSD 3-Clause "New" or "Revised" | header-only; cmake}}
{{librow | MutexGear | https://github.com/oleh-derevenko/mutexgear | Mutex-only synchronization (wheel, rwlock, work queues) | The MutexGear Library | configure, MSVC}}
+
{{librow | MutexGear | https://github.com/oleh-derevenko/mutexgear | A mutex-only synchronization (wheel, rwlock, work queues) C/C++11 library | [https://github.com/oleh-derevenko/mutexgear/blob/master/License-MutexGear.txt The MutexGear Library] | configure, msvc, make}}
 
{{librow | OpenMP | https://www.openmp.org/specifications/ | The OpenMP API specification for parallel programming}}
 
{{librow | OpenMP | https://www.openmp.org/specifications/ | The OpenMP API specification for parallel programming}}
{{librow | PoCL | http://portablecl.org/index.html | A portable retargetable open source (LLVM based) implementation of the OpenCL standard. ([https://github.com/pocl/pocl Src]) ([http://portablecl.org/docs/html Doc]) | MIT | CMake}}
+
{{librow | PoCL | http://portablecl.org/index.html | A portable retargetable open-source (LLVM based) implementation of the OpenCL standard. ([https://github.com/pocl/pocl Src]) ([http://portablecl.org/docs/html Doc]) | MIT | cmake}}
{{librow | RaftLib | https://raftlib.io | C++17 stream-like concurrent actors that enable parallel data-flow computations | Apache-2.0 | CMake}}
+
{{librow | RaftLib | https://raftlib.io | A C++17 stream-like concurrent actors that enable parallel data-flow computations | Apache-2.0 | cmake}}
{{librow | SObjectizer | https://sourceforge.net/projects/sobjectizer/ | A small framework for simplification of development of concurrent and event-driven applications in C++ by using actor and publish-subscribe models.}}
+
{{librow | SObjectizer | https://github.com/Stiffstream/sobjectizer | A small cross-platform framework for concurrent and event-driven applications in C++ by using actor and publish-subscribe models. | BSD-3-Clause | cmake, vcpkg, conan}}
{{librow | stdgpu | https://github.com/stotko/stdgpu | Efficient STL-like Data Structures on the GPU | Apache 2.0 | CMake}}
+
{{librow | stdgpu | https://github.com/stotko/stdgpu | Efficient STL-like Data Structures on the GPU | Apache 2.0 | cmake}}
{{librow | subprocess | https://github.com/benman64/subprocess | C++17/20 cross platform library for running subprocesses | MIT | CMake, Teaport}}
+
{{librow | subprocess | https://github.com/benman64/subprocess | C++17/20 cross-platform library for running subprocesses | MIT | cmake, teaport}}
{{librow | Taskflow | https://github.com/taskflow/taskflow | Parallel Task Programming in Modern C++ | [https://github.com/taskflow/taskflow/blob/master/LICENSE TASKFLOW MIT] | CMake}}
+
{{librow | Taskflow | https://github.com/taskflow/taskflow | Parallel Task Programming in Modern C++ | [https://github.com/taskflow/taskflow/blob/master/LICENSE TASKFLOW MIT] | cmake}}
{{librow | task-thread-pool | https://github.com/alugowski/task-thread-pool | Fast and lightweight thread pool for C++11 and newer. | BSD-2-Clause or MIT or BSL-1.0 | CMake, vcpkg, single header}}
+
{{librow | task-thread-pool | https://github.com/alugowski/task-thread-pool | Fast and lightweight thread pool for C++11 and newer. | BSD-2-Clause or MIT or BSL-1.0 | cmake, vcpkg, single header}}
{{librow | ThreadPool | https://github.com/hosseinmoein/Leopard | C++ simple, light-weight, and header-only thread pool | BSD-3-Clause | CMake, Makefile}}
+
{{librow | ThreadPool | https://github.com/hosseinmoein/Leopard | A simple light-weight thread pool | BSD-3-Clause | header-only; cmake, make}}
{{librow | thread_pool | https://github.com/DeveloperPaul123/thread-pool | A modern, fast, lightweight thread pool | [https://github.com/DeveloperPaul123/thread-pool/blob/master/LICENSE MIT] | CMake}}
+
{{librow | thread_pool | https://github.com/DeveloperPaul123/thread-pool | A modern, fast, lightweight thread pool | [https://github.com/DeveloperPaul123/thread-pool/blob/master/LICENSE MIT] | cmake}}
{{librow | Thrust | https://thrust.github.io/ | STL-like parallel algorithms and data-structures on top of CUDA, TBB, or OpenMP | [https://github.com/NVIDIA/thrust#licensing Apache v2.0, Boost v1.0.] | CMake}}
+
{{librow | Thrust | https://thrust.github.io/ | STL-like parallel algorithms and data-structures on top of CUDA, TBB, or OpenMP | [https://github.com/NVIDIA/thrust#licensing Apache v2.0, Boost v1.0.] | cmake}}
{{librow | TimerAlarm | https://github.com/hosseinmoein/Cheetah | Header-only C++ Timers and Alarms based on threads. | BSD-3-Clause | CMake, Makefile}}
+
{{librow | TimerAlarm | https://github.com/hosseinmoein/Cheetah | Timers and Alarms based on threads. | BSD-3-Clause | header-only; cmake, make}}
{{librow | VexCL | https://github.com/ddemidov/vexcl | C++ vector expression template library for OpenCL, CUDA, OpenMP | MIT | CMake}}
+
{{librow | VexCL | https://github.com/ddemidov/vexcl | A C++ vector expression template library for OpenCL, CUDA, OpenMP | MIT | cmake}}
{{librow | ViennaCL | http://viennacl.sourceforge.net/ | Linear algebra and algorithms with OpenMP, CUDA, and OpenCL backends}}
+
{{librow | ViennaCL | http://viennacl.sourceforge.net/ | Linear algebra and algorithms with OpenMP, CUDA, and OpenCL backends. ([https://viennacl.sourceforge.net/viennacl-download.html Src]) ([https://viennacl.sourceforge.net/viennacl-documentation.html Doc]) | Custom | cmake}}
{{librow | Xenium | https://github.com/mpoeter/xenium | A header-only C++17 library that provides various concurrent data structures and reclamation schemes. | MIT | CMake}}
+
{{librow | Xenium | https://github.com/mpoeter/xenium | A C++17 library that provides various concurrent data structures and reclamation schemes. | MIT | header-only; cmake}}
 
{{libtableend}}
 
{{libtableend}}
  
Line 290: Line 273:
 
{{libtablebegin}}
 
{{libtablebegin}}
 
{{librow | Boost.Program_options | https://www.boost.org/doc/libs/release/doc/html/program_options.html | 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. | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
 
{{librow | Boost.Program_options | https://www.boost.org/doc/libs/release/doc/html/program_options.html | 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. | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
{{librow | figcone | https://github.com/kamchatka-volcano/figcone | Read JSON, YAML, TOML, XML or INI configuration by declaring a struct | MS-PL | CMake}}
+
{{librow | figcone | https://github.com/kamchatka-volcano/figcone | Read JSON, YAML, TOML, XML or INI configuration by declaring a struct | MS-PL | cmake}}
{{librow | gconfmm | https://www.gtkmm.org/}}
+
{{librow | gconfmm | https://www.gtkmm.org/ | A cross-platform (official) C++ interface for the popular GUI library GTK, including typesafe callbacks, and a comprehensive set of widgets that are easily extensible via inheritance. '''gtkmm''' uses STL, including {{lc|std::string|string}}s, containers, and iterators. UTF8 is supported. ([https://gitlab.gnome.org/GNOME/glibmm/ Src]) ([https://www.gtkmm.org/en/documentation.html Doc]) | [https://gitlab.gnome.org/GNOME/glibmm/-/blob/master/COPYING LGPLv2.1] | autotools, meson, make}}
{{librow | libconfig | https://www.hyperrealm.com/libconfig/}}
+
{{librow | libconfig | https://www.hyperrealm.com/oss_libconfig.shtml | A simple cross-platform C/C++ library for processing structured configuration files ({{c/core|"*.cfg"}}) ([https://github.com/hyperrealm/libconfig Src]) ([https://www.hyperrealm.com/libconfig/libconfig_manual.html Doc]) | LGPL 2.1 | autotools, cmake, make}}
{{librow | libconfini | https://madmurphy.github.io/libconfini/ | INI parser}}
+
{{librow | libconfini | https://github.com/madmurphy/libconfini | An cross-platform INI parser written in C ([https://madmurphy.github.io/libconfini/html/index.html Doc]) | GPL-3.0 | autotools, make}}
{{librow | uconfig | https://github.com/TinkoffCreditSystems/uconfig | Lightweight, header-only, C++17 configuration library | Apache 2.0 | CMake}}
+
{{librow | uconfig | https://github.com/TinkoffCreditSystems/uconfig | A lightweight C++17 configuration library | Apache 2.0 | header-only; cmake}}
 
{{libtableend}}
 
{{libtableend}}
  
Line 301: Line 284:
  
 
{{libtablebegin}}
 
{{libtablebegin}}
 +
{{librow | Argh! | https://github.com/adishavit/argh | A minimalist argument handler. | BSD 3-Clause | header-only; cmake, vcpkg}}
 +
{{librow | argparse (hbristow) | https://github.com/hbristow/argparse | A slimline C++ class for parsing command-line arguments, with an interface similar to python's class of the same name. | BSD |}}
 +
{{librow | argparse (morrisfranken) | https://github.com/morrisfranken/argparse | A lightweight library for parsing command line arguments in an elegant manner. | Apache 2 | header-only; cmake}}
 +
{{librow | argparse (p-ranav) | https://github.com/p-ranav/argparse | A command-line argument parser for C++17 | MIT | header-only; cmake, vcpkg}}
 +
{{librow | args | https://github.com/Taywee/args | A simple C++ argument parser library. | MIT | header-only; cmake, conan, meson, vcpkg}}
 
{{librow | Boost.Program_options | https://www.boost.org/doc/libs/release/doc/html/program_options.html | 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. | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
 
{{librow | Boost.Program_options | https://www.boost.org/doc/libs/release/doc/html/program_options.html | 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. | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
{{librow | CLI11 | https://github.com/CLIUtils/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}}
+
{{librow | CLI11 | https://github.com/CLIUtils/CLI11 | A C++11 command line parser that provides a rich feature set with a simple and intuitive interface. | BSD-3-Clause | header-only; cmake, meson, vcpkg}}
{{librow | cmdlime | https://github.com/kamchatka-volcano/cmdlime | A C++17 library for command-line parsing that provides a concise, declarative interface with support for subcommands, validators, and the ability to choose either the GNU, POSIX, or X11 command-line options format. | MS-PL | CMake}}
+
{{librow | clipp | https://github.com/muellan/clipp | Powerful & Expressive Argument Parsing for Modern C++. | MIT | header-only; cmake, vcpkg}}
{{librow | cxxopts | https://github.com/jarro2783/cxxopts | A lightweight header-only C++11 (or C++17) command-line arguments parser, supporting the standard GNU style syntax for options. | MIT | CMake}}
+
{{librow | cmd_line_parser | https://github.com/jermp/cmd_line_parser | Command line parser for C++17. | MIT | header-only; cmake}}
{{librow | gflags | https://gflags.github.io/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}}
+
{{librow | cmdlime | https://github.com/kamchatka-volcano/cmdlime | A C++17 library for command-line parsing that provides a concise, declarative interface with support for sub-commands, validators, and the ability to choose either the GNU, POSIX, or X11 command-line options format. | MS-PL | cmake}}
{{librow | hbristow/argparse | https://github.com/hbristow/argparse | A slimline C++ class for parsing command-line arguments, with an interface similar to python's class of the same name. | BSD |}}
+
{{librow | cxxopts | https://github.com/jarro2783/cxxopts | A lightweight C++11/C++17 command-line arguments parser, supporting the standard GNU style syntax for options. | MIT | header-only; bazel, cmake}}
{{librow | morrisfranken/argparse | https://github.com/morrisfranken/argparse | A lightweight header-only library for parsing command line arguments in an elegant manner. | Apache 2 | CMake}}
+
{{librow | fire-hpp | https://github.com/kongaskristjan/fire-hpp | Create fully functional CLIs using function signatures. | BSL-1.0 | header-only; cmake}}
{{librow | p-ranav/argparse | https://github.com/p-ranav/argparse | Single header argument Parser for C++17 | MIT | CMake}}
+
{{librow | flags | https://github.com/sailormoon/flags | Simple, extensible C++17 argument parser. | [http://unlicense.org/ Unlicense] | header-only; cmake}}
{{librow | tclap | https://sourceforge.net/projects/tclap/ | A simple templatized C++ library for parsing command line arguments. The library provides a simple, flexible object-oriented interface. | MIT | CMake}}
+
{{librow | gflags | https://gflags.github.io/gflags/ | A library that implements command-line 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}}
 
+
{{librow | structopt | https://github.com/p-ranav/structopt | Parse command line arguments by defining a struct. | MIT | header-only; cmake}}
 +
{{librow | tclap | https://sourceforge.net/projects/tclap/ | A simple C++ template library for parsing command line arguments. The library provides a simple, flexible object-oriented interface. | MIT | cmake}}
 
{{libtableend}}
 
{{libtableend}}
  
Line 324: Line 313:
  
 
{{libtablebegin}}
 
{{libtablebegin}}
{{librow | cpp-hocon | https://github.com/puppetlabs/cpp-hocon/tree/master/lib/src | The C++ implementation of the HOCON format developed by Pupplet.}}
+
{{librow | cpp-hocon | https://github.com/puppetlabs/cpp-hocon/tree/master/lib/src | A C++ implementation of the HOCON format developed by Pupplet.}}
 
{{libtableend}}
 
{{libtableend}}
  
Line 331: Line 320:
  
 
{{libtablebegin}}
 
{{libtablebegin}}
{{librow | ArduinoJson | https://github.com/bblanchon/ArduinoJson | ArduinoJson}}
+
{{librow | ArduinoJson | https://github.com/bblanchon/ArduinoJson | C++98/11/14/17 JSON library for Arduino, IoT and embedded C++ | MIT | cmake}}
{{librow | Boost.JSON | https://www.boost.org/doc/libs/release/libs/json/doc/html/index.html | JSON parsing, serialization, and DOM in C++11/17 | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
+
{{librow | Boost.JSON | https://www.boost.org/doc/libs/release/libs/json/doc/html/index.html | The JSON parsing, serialization, and DOM in C++11/17 | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
{{librow | CAJUN | http://cajun-jsonapi.sourceforge.net/}}
+
{{librow | cajun-jsonapi | https://sourceforge.net/projects/cajun-jsonapi/ | A C++ API for the JSON with an emphasis on an intuitive, concise interface  that mimic standard C++ as closely as possible. | | make}}
{{librow | DAW JSON Link | https://github.com/beached/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}}
+
{{librow | DAW JSON Link | https://github.com/beached/daw_json_link | A C++17 library providing 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}}
{{librow | jansson | https://www.digip.org/jansson/ | Jansson is C library for encoding, decoding and manipulating JSON data.}}
+
{{librow | Glaze | https://github.com/stephenberry/glaze | One of the fastest JSON library (C++23) with direct memory serialization. Also supports BEVE and CSV. | MIT | cmake, conan, build2, vcpkg}}
{{librow | jeayeson | https://github.com/jeaye/jeayeson | A very sane (header only) C++14 JSON library}}
+
{{librow | jansson | https://github.com/akheron/jansson | A C library for encoding, decoding and manipulating JSON data with UTF-8 support | MIT | cmake, make}}
{{librow | jios | https://github.com/castedo/jios | JSON Input Output Streams | MIT | CMake}}
+
{{librow | jeayeson | https://github.com/jeaye/jeayeson | A very sane C++14 JSON library | BSD-3 | header-only}}
 +
{{librow | jios | https://github.com/castedo/jios | JSON Input Output Streams | MIT | cmake}}
 
{{librow | JOST | http://ddsbench.svn.sourceforge.net/viewvc/ddsbench/trunk/jost/}}
 
{{librow | JOST | http://ddsbench.svn.sourceforge.net/viewvc/ddsbench/trunk/jost/}}
{{librow | json | https://github.com/nlohmann/json | Niels Lohmann JSON}}
+
{{librow | json | https://github.com/nlohmann/json | Niels Lohmann JSON for C++11, featuring intuitive syntax | MIT | header-only; bazel, cmake, meson}}
{{librow | JSON Voorhees | https://tgockel.github.io/json-voorhees/ | Killer JSON for C++}}
+
{{librow | JSON Voorhees | https://github.com/tgockel/json-voorhees | Killer JSON for C++11 ([https://tgockel.github.io/json-voorhees/ Doc]) | Apache-2.0 | cmake }}
 
{{librow | JSON++ | https://bitbucket.org/tunnuz/json}}
 
{{librow | JSON++ | https://bitbucket.org/tunnuz/json}}
{{librow | json-cpp | https://github.com/ascheglov/json-cpp}}
+
{{librow | json11 | https://github.com/dropbox/json11 | A tiny JSON library for C++11, providing JSON parsing and serialization. | MIT | cmake }}
{{librow | json11 | https://github.com/dropbox/json11 | json11 is a tiny JSON library for C++11, providing JSON parsing and serialization.}}
+
{{librow | JsonBox | https://github.com/anhero/JsonBox | A C++ library used to read and write JSON with ease and speed. | MIT | cmake}}
{{librow | JsonBox | https://github.com/anhero/JsonBox}}
+
{{librow | jsoncons | https://github.com/danielaparker/jsoncons/ | A library for JSON and JSON-like data formats, with JSON Pointer, JSON Patch, JSONPath, CSV, MessagePack, CBOR, BSON, UBJSON. | [https://github.com/danielaparker/jsoncons/blob/master/LICENSE Custom] | header-only}}
{{librow | jsoncons | https://github.com/danielaparker/jsoncons/ | A header-only library for JSON and JSON-like data formats, with JSON Pointer, JSON Patch, JSONPath, CSV, MessagePack, CBOR, BSON, UBJSON.}}
+
{{librow | jsoncpp | https://github.com/open-source-parsers/jsoncpp | A library that allows manipulating JSON values, including serialization and de-serialization, while preserving comments. | MIT | cmake, conan, vcpkg}}
{{librow | jsoncpp | https://github.com/open-source-parsers/jsoncpp | | MIT | CMake, Conan, vcpkg}}
+
{{librow | jsonme-- | https://github.com/pibara/jsonme--}}
+
 
{{librow | libjson | https://sourceforge.net/projects/libjson/}}
 
{{librow | libjson | https://sourceforge.net/projects/libjson/}}
{{librow | minijson | https://giacomodrago.github.io/minijson/ | C++ DOM-less and allocation-free JSON parsing and serialization}}
+
{{librow | minijson | https://giacomodrago.github.io/minijson/ | A C++ DOM-less and allocation-free JSON parsing and serialization | [https://github.com/giacomodrago/minijson_reader/blob/master/LICENSE.txt Custom] | cmake}}
{{librow | Neyson | https://github.com/Neyn/neyson | Lightweight C++11 JSON Library | BSD-3-Clause | CMake}}
+
{{librow | Neyson | https://github.com/Neyn/neyson | Lightweight A C++11 JSON Library | BSD-3-Clause | cmake}}
{{librow | nosjob | https://fossil.wanderinghorse.net/r/nosjob | C++98 library for generating and consuming JSON data | MIT | make}}
+
{{librow | nosjob | https://fossil.wanderinghorse.net/r/nosjob | A C++98 library for generating and consuming JSON data | MIT | make}}
 
{{librow | qjson | http://qjson.sourceforge.net/}}
 
{{librow | qjson | http://qjson.sourceforge.net/}}
{{librow | rapidjson | https://github.com/miloyip/rapidjson}}
+
{{librow | rapidjson | https://github.com/miloyip/rapidjson | A fast JSON parser/generator for C++ with both SAX/DOM style API, supports UTF-8/16/32, optionally uses SIMD. ([http://rapidjson.org/ Doc]) | [https://github.com/Tencent/rapidjson/blob/master/license.txt Custom] | header-only; cmake, vcpkg}}
{{librow | simdjson | https://github.com/simdjson/simdjson | Parsing gigabytes of JSON per second taking advantage of modern micro-architectures and parallelizing with SIMD ([https://arxiv.org/abs/1902.08318 Doc]) ([https://youtu.be/wlvKAT7SZIQ Kino]) | Apache-2.0 | CMake, vcpkg}}
+
{{librow | simdjson | https://github.com/simdjson/simdjson | Parse gigabytes of JSON per second taking advantage of modern micro-architectures and parallelizing with SIMD ([https://arxiv.org/abs/1902.08318 Doc]) ([https://youtu.be/wlvKAT7SZIQ Kino]) | Apache-2.0 | cmake, vcpkg}}
{{librow | struct_mapping | https://github.com/bk192077/struct_mapping | Mapping json to and from a c++ structure}}
+
{{librow | struct_mapping | https://github.com/bk192077/struct_mapping | Maps JSON to and from a C++ structure | MIT | cmake}}
{{librow | ThorsSerializer | https://github.com/Loki-Astari/ThorsSerializer | JSON/BSON/YAML Input Output Streams | MIT | Makefile}}
+
{{librow | swxJson | https://github.com/swxlion/swxjson | The most convenient C++JSON library currently in use. Read and write complex structures at any level with just one function call. The performance is approximately half that of RapidJSON. | MIT | make}}
{{librow | ujson | https://bitbucket.org/awangk/ujson | µjson is a small, C++11, UTF-8, JSON library}}
+
{{librow | ThorsSerializer | https://github.com/Loki-Astari/ThorsSerializer | JSON/BSON/YAML Input Output Streams | MIT | make}}
{{librow | yyjson | https://github.com/ibireme/yyjson | A high performance JSON library written in ANSI C | MIT | CMake}}
+
{{librow | ujson | https://bitbucket.org/awangk/ujson | µjson is a small, C++11, UTF-8, JSON library | cmake}}
{{librow | zoolib | https://github.com/zoolib/zoolib_cxx | ZooLib is a C++ toolkit. | MIT}}
+
{{librow | yyjson | https://github.com/ibireme/yyjson | A high performance JSON library written in ANSI C | MIT | cmake}}
 
{{libtableend}}
 
{{libtableend}}
  
Line 374: Line 362:
  
 
{{libtablebegin}}
 
{{libtablebegin}}
{{librow | ai-xml | https://github.com/CarloWood/ai-xml | Serialize objects to <em>and</em> from XML by adding a single, minimal, function to a class. Uses libxml++ under the hood.}}
+
{{librow | ai-xml | https://github.com/CarloWood/ai-xml | Serialize objects to and from XML by adding a single, minimal, function to a class. Uses [http://libxmlplusplus.sourceforge.net/ libxml++] under the hood. | AGPL-3.0 | make}}
{{librow | GPDS | https://github.com/simulton/gpds | General purpose data serializer to serialize objects to and from XML. Uses TinyXML under the hood.}}
+
{{librow | GPDS | https://github.com/simulton/gpds | A general purpose data serializer to serialize objects to and from XML. Uses TinyXML under the hood.}}
 
{{librow | gSOAP | http://gsoap2.sourceforge.net | XML data bindings}}
 
{{librow | gSOAP | http://gsoap2.sourceforge.net | XML data bindings}}
{{librow | libxml++ | http://libxmlplusplus.sourceforge.net/}}
+
{{librow | libxml++ | http://libxmlplusplus.sourceforge.net/ | The libxml++ is a C++ wrapper for the libxml XML parser C library. ([http://library.gnome.org/devel/libxml++/stable/ Doc]) | LGPL-2 }}
{{librow | pugixml | https://pugixml.org/ | Light-weight, simple and fast XML parser for C++ with XPath support | MIT | CMake, Conan}}
+
{{librow | pugixml | https://pugixml.org/ | A light-weight, simple and fast XML parser for C++ with XPath support | MIT | cmake, conan}}
 
{{librow | tinyxml | https://www.grinninglizard.com/tinyxml/}}
 
{{librow | tinyxml | https://www.grinninglizard.com/tinyxml/}}
 
{{librow | tinyxml2 | https://github.com/leethomason/tinyxml2/ | Another and work in progress of TinyXML.}}
 
{{librow | tinyxml2 | https://github.com/leethomason/tinyxml2/ | Another and work in progress of TinyXML.}}
Line 388: Line 376:
  
 
{{libtablebegin}}
 
{{libtablebegin}}
{{librow | yaml-cpp | https://github.com/jbeder/yaml-cpp}}
+
{{librow | yaml-cpp | https://github.com/jbeder/yaml-cpp | A YAML parser and emitter in C++ | MIT | cmake}}
 
{{libtableend}}
 
{{libtableend}}
  
Line 394: Line 382:
  
 
{{libtablebegin}}
 
{{libtablebegin}}
{{librow | Boost.Bimap | https://www.boost.org/doc/libs/release/libs/bimap/ | a bidirectional maps library that offers associative containers such as {{tt|bimap<X,Y>}} in which both {{tt|X}} and {{tt|Y}} can be used as a key. ([https://github.com/boostorg/boost Src]) | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
+
{{librow | Boost.Bimap | https://www.boost.org/doc/libs/release/libs/bimap/ | A bidirectional maps library that offers associative containers such as {{tt|bimap<X,Y>}} in which both {{tt|X}} and {{tt|Y}} can be used as a key. ([https://github.com/boostorg/boost Src]) | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
{{librow | Boost.Container | https://www.boost.org/doc/libs/release/libs/container/ | a header-only library that implements several well-known containers, including STL-like containers, as well as recursive containers, and new useful containers: {{tt|flat_map}}, {{tt|flat_set}}, {{tt|flat_multimap}}, {{tt|flat_multiset}}, {{tt|stable_vector}}, {{tt|static_vector}}, {{tt|small_vector}}, {{tt|devector}}. ([https://github.com/boostorg/boost Src]) | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
+
{{librow | Boost.Container | https://www.boost.org/doc/libs/release/libs/container/ | A library that implements several well-known containers, including STL-like containers, as well as recursive containers, and new useful containers: {{tt|flat_map}}, {{tt|flat_set}}, {{tt|flat_multimap}}, {{tt|flat_multiset}}, {{tt|stable_vector}}, {{tt|static_vector}}, {{tt|small_vector}}, {{tt|devector}}. ([https://github.com/boostorg/boost Src]) | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0] | header-only}}
{{librow | Boost.Fusion | https://www.boost.org/doc/libs/release/libs/fusion/ | a library for working with heterogeneous collections of ''tuples''. Provides a set of containers ({{tt|vector}}, {{tt|list}}, {{tt|set}} and {{tt|map}}), along with transformed presentation of their underlying data, a.k.a ''views''." ([https://github.com/boostorg/boost Src]) | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
+
{{librow | Boost.Fusion | https://www.boost.org/doc/libs/release/libs/fusion/ | A library for working with heterogeneous collections of ''tuples''. Provides a set of containers ({{tt|vector}}, {{tt|list}}, {{tt|set}} and {{tt|map}}), along with transformed presentation of their underlying data, a.k.a ''views''." ([https://github.com/boostorg/boost Src]) | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
{{librow | Boost.Heap | https://www.boost.org/doc/libs/release/libs/heap/ | an implementation of ''priority queues'' with more functionality and different performance characteristics, than STL has. ([https://github.com/boostorg/boost Src]) | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
+
{{librow | Boost.Heap | https://www.boost.org/doc/libs/release/libs/heap/ | An implementation of ''priority queues'' with more functionality and different performance characteristics, than STL has. ([https://github.com/boostorg/boost Src]) | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
{{librow | Boost.Pointer Container | https://www.boost.org/doc/libs/release/libs/ptr_container/ | provides containers for holding ''heap-allocated objects'' in an exception-safe manner and with minimal overhead. ([https://github.com/boostorg/boost Src]) | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
+
{{librow | Boost.Pointer Container | https://www.boost.org/doc/libs/release/libs/ptr_container/ | Provides containers for holding ''heap-allocated objects'' in an exception-safe manner and with minimal overhead. ([https://github.com/boostorg/boost Src]) | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
{{librow | Boost.Tuple | https://www.boost.org/doc/libs/release/libs/tuple/ | implements pre-C++11 n-{{tt|tuple}} (a fixed size collection of elements) ([https://github.com/boostorg/boost Src]) | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
+
{{librow | Boost.Tuple | https://www.boost.org/doc/libs/release/libs/tuple/ | Implements pre-C++11 n-{{tt|tuple}} (a fixed size collection of elements) ([https://github.com/boostorg/boost Src]) | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
{{librow | Boost.Variant | https://www.boost.org/doc/libs/release/libs/variant/ | implements pre-C++17 {{tt|variant}} (a safe, generic, stack-based discriminated {{tt|union}} container) ([https://github.com/boostorg/boost Src]) | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
+
{{librow | Boost.Variant | https://www.boost.org/doc/libs/release/libs/variant/ | Implements pre-C++17 {{tt|variant}} (a safe, generic, stack-based discriminated {{tt|union}} container) ([https://github.com/boostorg/boost Src]) | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
{{librow | C++ Allocators | https://github.com/hosseinmoein/Cougar | STL conformant allocators for fixed size static and stack based memory + another conformant allocator that allows custom boundary allocation | BSD-3-Clause | CMake, Makefile}}
+
{{librow | C++ Allocators | https://github.com/hosseinmoein/Cougar | STL conformant allocators for fixed size static and stack based memory + another conformant allocator that allows custom boundary allocation | BSD-3-Clause | cmake, make}}
{{librow | cpp-btree | https://github.com/diegocaro/cpp-btree/ | header-only; B-tree containers make better use of the CPU cache: {{tt|btree_map}}, {{tt|btree_set}}, {{tt|btree_multimap}},
+
{{librow | cpp-btree | https://github.com/diegocaro/cpp-btree/ | B-tree containers make better use of the CPU cache: {{tt|btree_map}}, {{tt|btree_set}}, {{tt|btree_multimap}}, {{tt|btree_multiset}}. ([https://code.google.com/archive/p/cpp-btree/source/default/source Src]) | [https://www.apache.org/licenses/LICENSE-2.0 Apache-2.0] | header-only; cmake}}
 
+
{{librow | DataFrame | https://github.com/hosseinmoein/DataFrame | C++ DataFrame for statistical, Financial, and ML analysis -- in modern C++ using native types and continuous memory storage | BSD-3-Clause | cmake, make, conan, vcpkg}}
{{tt|btree_multiset}}. ([https://code.google.com/archive/p/cpp-btree/source/default/source Src]) | [https://www.apache.org/licenses/LICENSE-2.0 Apache-2.0] | CMake}}
+
{{librow | eggs::variant | https://github.com/eggs-cpp/variant | Eggs.Variant is a C++11/14/17 generic, type-safe, discriminated union. It is notable in particular for having very good {{lc|constexpr}} support. | [https://github.com/eggs-cpp/variant/blob/master/LICENSE.txt BSL-1.0] | cmake}}
{{librow | DataFrame | https://github.com/hosseinmoein/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}}
+
{{librow | Frozen | https://github.com/serge-sans-paille | C++14 {{lc|constexpr}} perfect-hashing-based immutable sets, maps, and algorithms. | [https://www.apache.org/licenses/LICENSE-2.0 Apache-2.0] | header-only; cmake}}
{{librow | eggs::variant | https://github.com/eggs-cpp/variant | Eggs.Variant is a C++11/14/17 generic, type-safe, discriminated union. It is notable in particular for having very good {{lc|constexpr}} support. | [https://github.com/eggs-cpp/variant/blob/master/LICENSE.txt BSL-1.0] | CMake}}
+
{{librow | Immer | https://github.com/arximboldi/immer | A library of persistent and immutable data structures | Boost | cmake}}
{{librow | Frozen | https://github.com/serge-sans-paille | {{lc|constexpr}} perfect-hashing-based frozen sets and maps | [https://www.apache.org/licenses/LICENSE-2.0 Apache-2.0]}}
+
{{librow | plf::colony | https://www.plflib.org/colony.htm | Unordered "bag-like" container which outperforms {{tt|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 {{stddoc|P0447|P0447}} ({{tt|std::hive}}). ([https://github.com/mattreecebentley/plf_colony Src]) | [https://en.wikipedia.org/wiki/Zlib_License zlib] | [https://github.com/alaingalvan/conan-plf-colony conan] [https://cppget.org/plf-colony build2]}}
{{librow | Immer | https://github.com/arximboldi/immer | A library of persistent and immutable data structures | Boost | CMake}}
+
{{librow | plf::list | https://www.plflib.org/list.htm | A {{lc|std::list}} implementation which sacrifices range-splicing for cache-friendliness, yielding faster insertion, erasure and iteration. C++98/03/11/14/17/20/23/26/etc-compatible. ([https://github.com/mattreecebentley/plf_list Src]) ([https://plflib.org/list.htm Doc]) | [https://en.wikipedia.org/wiki/Zlib_License zlib] | &mdash;}}
{{librow | plf::colony | https://www.plflib.org/colony.htm | Unordered "bag-like" container which outperforms {{tt|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 {{stddoc|P0447|P0447, std::hive}}. ([https://github.com/mattreecebentley/plf_colony Src]) | [https://en.wikipedia.org/wiki/Zlib_License zlib ] | [https://github.com/alaingalvan/conan-plf-colony conan] [https://cppget.org/plf-colony build2]}}
+
{{librow | plf::reorderase | https://www.plflib.org/reorderase.htm | An extension and optimization of the "swap-and-pop"/"move-and-pop" idiom for random access containers to increase random_access container erase performance, when post-erasure order is unimportant. Covers single, range and {{tt|std::erase_if}}-style erasures. C++98/11/14/etc-compatible. ([https://github.com/mattreecebentley/plf_reorderase Src]) | [https://en.wikipedia.org/wiki/Zlib_License zlib]}}
{{librow | plf::list | https://www.plflib.org/list.htm | {{lc|std::list}} implementation which sacrifices range-splicing for cache-friendliness, yielding faster insertion, erasure and iteration. C++98/11/14/etc-compatible. ([https://github.com/mattreecebentley/plf_list Src]) | [https://en.wikipedia.org/wiki/Zlib_License zlib ]}}
+
{{librow | plf::queue | https://www.plflib.org/queue.htm | A drop-in replacement container for the {{lc|std::queue}} container adaptor with better performance than {{lc|std::deque}} and {{lc|std::list}} in a queue context. C++98/11/14/etc-compatible. ([https://github.com/mattreecebentley/plf_queue Src]) | [https://en.wikipedia.org/wiki/Zlib_License zlib]}}
{{librow | plf::reorderase | https://www.plflib.org/reorderase.htm | An extension and optimization of the "swap-and-pop"/"move-and-pop" idiom for random access containers to increase random_access container erase performance, when post-erasure order is unimportant. Covers single, range and std::erase_if-style erasures. C++98/11/14/etc-compatible. ([https://github.com/mattreecebentley/plf_reorderase Src]) | [https://en.wikipedia.org/wiki/Zlib_License zlib ]}}
+
{{librow | plf::stack | https://www.plflib.org/stack.htm | A drop-in replacement container for the {{lc|std::stack}} container adaptor with better performance than {{lc|std::vector}} and {{lc|std::deque}} in a stack context. C++98/11/14/etc-compatible. ([https://github.com/mattreecebentley/plf_stack Src]) | [https://en.wikipedia.org/wiki/Zlib_License zlib]}}
{{librow | plf::queue | https://www.plflib.org/queue.htm | Drop-in replacement container for the {{lc|std::queue}} container adaptor with better performance than {{lc|std::deque}} and {{lc|std::list}} in a queue context. C++98/11/14/etc-compatible. ([https://github.com/mattreecebentley/plf_queue Src]) | [https://en.wikipedia.org/wiki/Zlib_License zlib ]}}
+
{{librow | ring_span | https://github.com/martinmoene/ring-span-lite | A lite implementation of Arthur O'Dwyer's {{tt|ring_span}}, a.k.a. circular buffer view. C++98- compatible. | [https://github.com/martinmoene/ring-span-lite/blob/master/LICENSE.txt BSL-1.0] | header-only; cmake}}
{{librow | plf::stack | https://www.plflib.org/stack.htm | Drop-in replacement container for the {{lc|std::stack}} container adaptor with better performance than {{lc|std::vector}} and {{lc|std::deque}} in a stack context. C++98/11/14/etc-compatible. ([https://github.com/mattreecebentley/plf_stack Src]) | [https://en.wikipedia.org/wiki/Zlib_License zlib ]}}
+
{{librow | strict_variant | https://github.com/cbeck88/strict-variant | A realtime/embedded-friendly (i.e. {{tt|-fno-exceptions}}/{{tt|-fno-rtti}} compatible), never-empty {{tt|variant}} targetting C++11. Fast, prevents many undesirable implicit conversions. | BSL-1.0 | cmake}}
{{librow | ring_span | https://github.com/martinmoene/ring-span-lite | A header-only lite implementation of Arthur O'Dwyer's {{tt|ring_span}}, a.k.a. circular buffer view. C++98- compatible. | [https://github.com/martinmoene/ring-span-lite/blob/master/LICENSE.txt BSL-1.0] | CMake}}
+
{{librow | Ygg | https://github.com/tinloaf/ygg | An intrusive C++11 implementation of high-performance containers and data structures such as a {{enwiki|Red–black tree}}, an {{enwiki|Interval tree}} and an Interval Map. | MIT | cmake}}
{{librow | strict_variant | https://github.com/cbeck88/strict-variant | A realtime/embedded-friendly (i.e. {{tt|-fno-exceptions}}/{{tt|-fno-rtti}} compatible), never-empty {{tt|variant}} targetting C++11. Fast, prevents many undesirable implicit conversions. | BSL-1.0 | CMake}}
+
{{librow | Ygg | https://github.com/tinloaf/ygg | An intrusive C++11 implementation of high-performance containers and data structures such as a {{enwiki|Red–black tree}}, an {{enwiki|Interval tree}} and an Interval Map. | MIT | CMake}}
+
 
{{libtableend}}
 
{{libtableend}}
  
Line 422: Line 408:
  
 
{{libtablebegin}}
 
{{libtablebegin}}
{{librow | Botan | https://botan.randombit.net/ | Cryptography Toolkit. ([https://github.com/randombit/botan Src]) | BSD 2-Clause "Simplified" | Makefile}}
+
{{librow | Botan | https://botan.randombit.net/ | A cryptography Toolkit. ([https://github.com/randombit/botan Src]) | BSD 2-Clause "Simplified" | make}}
{{librow | crypto++ | https://www.cryptopp.com/ | Free C++ Class Library of Cryptographic Schemes. ([https://github.com/weidai11/cryptopp Src]) | Boost | Makefile}}
+
{{librow | crypto++ | https://www.cryptopp.com/ | A free C++ Class Library of Cryptographic Schemes. ([https://github.com/weidai11/cryptopp Src]) | Boost | make}}
{{librow | gnutls | https://www.gnutls.org/ | A secure communications library implementing the SSL, TLS and DTLS protocols and technologies around them. ([https://gitlab.com/gnutls/gnutls Src]) | LGPL-2.1 | Makefile}}
+
{{librow | gnutls | https://www.gnutls.org/ | A secure communications library implementing the SSL, TLS and DTLS protocols and technologies around them. ([https://gitlab.com/gnutls/gnutls Src]) | LGPL-2.1 | make}}
{{librow | openssl | https://www.openssl.org/ | A robust, commercial-grade, full-featured toolkit for general-purpose cryptography and secure communication. ([https://github.com/openssl/openssl Src]) | Apache-2.0 | Makefile}}
+
{{librow | openssl | https://www.openssl.org/ | A robust, commercial-grade, full-featured toolkit for general-purpose cryptography and secure communication. ([https://github.com/openssl/openssl Src]) | Apache-2.0 | make}}
{{librow | TomCrypt | https://www.libtom.net/ | A fairly comprehensive, modular and portable cryptographic toolkit that provides developers with a vast array of well known published block ciphers, one-way hash functions, chaining modes, pseudo-random number generators, public key cryptography and a plethora of other routines. ([https://github.com/libtom/libtomcrypt Src]) | public domain | CMake, Makefile}}
+
{{librow | TomCrypt | https://www.libtom.net/ | A fairly comprehensive, modular and portable cryptographic toolkit that provides developers with a vast array of well known published block ciphers, one-way hash functions, chaining modes, pseudo-random number generators, public key cryptography and a plethora of other routines. ([https://github.com/libtom/libtomcrypt Src]) | public domain | cmake, make}}
 
{{libtableend}}
 
{{libtableend}}
  
Line 432: Line 418:
  
 
{{libtablebegin}}
 
{{libtablebegin}}
{{librow | Boost::MySQL | https://www.boost.org/doc/libs/release/libs/mysql/doc/html/index.html | MySQL client library | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0] | }}
+
{{librow | Boost::MySQL | https://www.boost.org/doc/libs/release/libs/mysql/doc/html/index.html | MySQL client library | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0] |}}
{{librow | cpp-redis | https://github.com/cpp-redis/cpp_redis | C++11 Lightweight Redis client: async, thread-safe, no dependency, pipelining, multi-platform. ([https://github.com/cpp-redis/cpp_redis/wiki/Redis-Client Doc]) | MIT | CMake }}
+
{{librow | cpp-redis | https://github.com/cpp-redis/cpp_redis | C++11 Lightweight Redis client: async, thread-safe, no dependency, pipelining, multi-platform. ([https://github.com/cpp-redis/cpp_redis/wiki/Redis-Client Doc]) | MIT | cmake}}
{{librow | DTL | http://dtemplatelib.sourceforge.net/ | Makes ODBC recordsets look just like an STL container ([https://sourceforge.net/projects/dtemplatelib/files/ Src]) ([https://dtemplatelib.sourceforge.net/table_of_contents.htm Doc]) }}
+
{{librow | DTL | http://dtemplatelib.sourceforge.net/ | Makes ODBC record-sets look just like an STL container ([https://sourceforge.net/projects/dtemplatelib/files/ Src]) ([https://dtemplatelib.sourceforge.net/table_of_contents.htm Doc])}}
{{librow | EasyQtSql | https://github.com/kramolnic/EasyQtSql | A lightweight header-only C++11 (Qt based) library for quick and easy SQL querying | MIT | qmake }}
+
{{librow | EasyQtSql | https://github.com/kramolnic/EasyQtSql | A lightweight C++11 (Qt based) library for quick and easy SQL querying | MIT | header-only; qmake}}
{{librow| Galera | https://galeracluster.com/downloads/ | The Galera Cluster is the synchronous multi-master replication library (Galera) and a Write Set Replication (WSREP) API for MySQL/MariaDB ([https://github.com/codership/galera Src]) | GPLv2 | CMake, Scons}}
+
{{librow| Galera | https://galeracluster.com/downloads/ | The Galera Cluster is the synchronous multi-master replication library (Galera) and a Write Set Replication (WSREP) API for MySQL/MariaDB ([https://github.com/codership/galera Src]) | GPLv2 | cmake, scons}}
{{librow | LevelDB | https://github.com/google/leveldb | A C++ library developed by Google that handles billion-scale Key-Value data persistence storage. ([https://github.com/google/leveldb/blob/main/doc/index.md Doc]) | BSD-3 | CMake }}
+
{{librow | LevelDB | https://github.com/google/leveldb | A C++ library developed by Google that handles billion-scale Key-Value data persistence storage. ([https://github.com/google/leveldb/blob/main/doc/index.md Doc]) | BSD-3 | cmake}}
{{librow | libpqxx | https://pqxx.org/development/libpqxx/ | The C++ connector for PostgreSQL ([https://github.com/jtv/libpqxx Src]) | BSD-3 | CMake, Make }}
+
{{librow | libpqxx | https://pqxx.org/development/libpqxx/ | The C++ connector for PostgreSQL ([https://github.com/jtv/libpqxx Src]) | BSD-3 | cmake, make}}
{{librow | lmdb++ | https://github.com/bendiken/lmdbxx | C++11 wrapper for the LMDB embedded B+ tree database library. | [https://github.com/drycpp/lmdbxx/blob/master/UNLICENSE Unlicense] | Make }}
+
{{librow | lmdb++ | https://github.com/bendiken/lmdbxx | C++11 wrapper for the LMDB embedded B+ tree database library. | [https://github.com/drycpp/lmdbxx/blob/master/UNLICENSE Unlicense] | make}}
{{librow | mongocxx | https://github.com/mongodb/mongo-cxx-driver/tree/master | Official C++11 driver library for MongoDB ([https://www.mongodb.com/docs/drivers/cxx Doc]). It offers optimized APIs for CRUD operations, indexing, and aggregation. Supporting BSON and featuring connection pooling and authentication mechanisms, it provides high-performance and scalable solutions for building C++ applications that leverage MongoDB.| [https://github.com/mongodb/mongo-cxx-driver/blob/master/LICENSE Apache 2.0] | CMake }}
+
{{librow | mongocxx | https://github.com/mongodb/mongo-cxx-driver/tree/master | An official C++11 driver library for MongoDB ([https://www.mongodb.com/docs/drivers/cxx Doc]). It offers optimized APIs for CRUD operations, indexing, and aggregation. Supporting BSON and featuring connection pooling and authentication mechanisms, it provides high-performance and scalable solutions for building C++ applications that leverage MongoDB.| [https://github.com/mongodb/mongo-cxx-driver/blob/master/LICENSE Apache 2.0] | cmake}}
{{librow | mysql++ | https://dev.mysql.com/ | MySQL DB and tools }}
+
{{librow | mysql++ | https://dev.mysql.com/ | MySQL DB and tools}}
{{librow | nanodbc | https://github.com/nanodbc/nanodbc | A small, cross-platform, C++14 wrapper for the native C ODBC API | MIT | CMake}}
+
{{librow | nanodbc | https://github.com/nanodbc/nanodbc | A small, cross-platform, C++14 wrapper for the native C ODBC API | MIT | cmake}}
{{librow | ODB | https://www.codesynthesis.com/products/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}}
+
{{librow | ODB | https://www.codesynthesis.com/products/odb/ | 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}}
{{librow | OTL | http://otl.sourceforge.net/ | OTL is a C++ template based database library for Oracle DB, ODBC and DB2-CLI. ([https://otl.sourceforge.net/otl3_down.htm Src]) }}
+
{{librow | OTL | http://otl.sourceforge.net/ | A C++ template based database library for Oracle DB, ODBC and DB2-CLI. ([https://otl.sourceforge.net/otl3_down.htm Src])}}
{{librow | Pgfe | https://github.com/dmitigr/pgfe/ | The PostgreSQL client (FrontEnd) API in modern C++ | Zlib | CMake}}
+
{{librow | Pgfe | https://github.com/dmitigr/pgfe/ | The PostgreSQL client (FrontEnd) API in modern C++ | Zlib | cmake}}
{{librow | QTL | https://github.com/znone/qtl | A friendly and lightweight C++ database library for MySQL, SQLite and ODBC. | Apache-2.0 | Make }}
+
{{librow | QTL | https://github.com/znone/qtl | A friendly and lightweight C++ database library for MySQL, SQLite and ODBC. | Apache-2.0 | make}}
{{librow | QUINCE | https://quince-lib.com/ | QUeries IN C++ Expressions (ORM+EDSL) | Boost}}
+
{{librow | QUINCE | https://quince-lib.com/ | '''QU'''eries '''IN''' '''C'''++ '''E'''xpressions (ORM+EDSL) | Boost}}
{{librow | QxOrm | https://www.qxorm.com/ | 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}}
+
{{librow | QxOrm | https://www.qxorm.com/ | An '''O'''bject '''R'''elational '''M'''apping (ORM) database library for C++/Qt, supports most common databases, serialization (JSON, binary, XML); standalone multi-threaded HTTP web server | GPLv3 or Proprietary}}
{{librow | redis-cpp | https://github.com/tdv/redis-cpp/ | C++17 Lightweight C++ client header-only library for executing Redis commands. | MIT | CMake }}
+
{{librow | redis-cpp | https://github.com/tdv/redis-cpp/ | A lightweight C++17 client library for executing Redis commands. | MIT | header-only; cmake}}
{{librow | redis-plus-plus | https://github.com/sewenew/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 | Apache-2.0 | CMake }}
+
{{librow | redis-plus-plus | https://github.com/sewenew/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 | Apache-2.0 | cmake}}
{{librow | SOCI | http://soci.sourceforge.net/ | A plugin-based database library that embeds SQL queries in a regular C++ code; supported backends include: DB2, Firebird, MySQL, ODBC (generic backend), Oracle, PostgreSQL, SQLite3. ([https://github.com/SOCI/soci Src]) ([https://soci.sourceforge.net/doc/master/ Doc]) | Boost | CMake }}
+
{{librow | SOCI | http://soci.sourceforge.net/ | A plugin-based database library that embeds SQL queries in a regular C++ code; supported backends include: DB2, Firebird, MySQL, ODBC (generic backend), Oracle, PostgreSQL, SQLite3. ([https://github.com/SOCI/soci Src]) ([https://soci.sourceforge.net/doc/master/ Doc]) | Boost | cmake}}
{{librow | SQLAPI++ | https://www.sqlapi.com/ | A middleware C++ database library that supports multiple SQL database systems: Oracle, SQL Server, DB2, Sybase, MySQL, PostgreSQL, SQLite, Informix, InterBase / Firebird, SQLBase, SQL Anywhere, ODBC, MariaDB. ([https://www.sqlapi.com/Download/ Src]) ([https://www.sqlapi.com/ApiDoc/ Doc]) | [https://www.sqlapi.com/Order/license/ Custom] | Make }}
+
{{librow | SQLAPI++ | https://www.sqlapi.com/ | A middleware C++ database library that supports multiple SQL database systems: Oracle, SQL Server, DB2, Sybase, MySQL, PostgreSQL, SQLite, Informix, InterBase / Firebird, SQLBase, SQL Anywhere, ODBC, MariaDB. ([https://www.sqlapi.com/Download/ Src]) ([https://www.sqlapi.com/ApiDoc/ Doc]) | [https://www.sqlapi.com/Order/license/ Custom] | make}}
{{librow | SQLiteCPP | https://github.com/SRombauts/SQLiteCpp | Lean and easy to use C++ SQLite3 wrapper. | MIT | CMake, Meson, vcpkg }}
+
{{librow | SQLiteCPP | https://github.com/SRombauts/SQLiteCpp | A lean and easy to use C++ SQLite3 wrapper. | MIT | cmake, meson, vcpkg}}
{{librow | sqlpp11 | https://github.com/rbock/sqlpp11 | A type safe embedded domain specific language for SQL queries and results in C++. | BSD-2 | CMake }}
+
{{librow | SQLite ORM | https://github.com/fnc12/sqlite_orm | An '''E'''mbedded '''D'''omain-'''S'''pecific '''L'''anguage (EDSL) for SQL, as understood by SQLite, for modern C++. | AGPL-3.0, MIT | header-only; cmake, vcpkg}}
{{librow | taoPQ | https://github.com/taocpp/taopq | Lightweight C++17 PostgreSQL client library | Boost | CMake}}
+
{{librow | sqlpp11 | https://github.com/rbock/sqlpp11 | A type safe embedded domain specific language for SQL queries and results in C++. | BSD-2 | cmake}}
 +
{{librow | taoPQ | https://github.com/taocpp/taopq | A lightweight C++17 PostgreSQL client library | Boost | cmake}}
 
{{libtableend}}
 
{{libtableend}}
  
Line 463: Line 450:
 
{{librow | AngelScript | https://angelcode.com/angelscript/ | A scripting language like C++. | ZLib}}
 
{{librow | AngelScript | https://angelcode.com/angelscript/ | A scripting language like C++. | ZLib}}
 
{{librow | ChaiScript | https://github.com/ChaiScript/ChaiScript | An easy to use embedded scripting language for C++. | BSD-3-Clause}}
 
{{librow | ChaiScript | https://github.com/ChaiScript/ChaiScript | An easy to use embedded scripting language for C++. | BSD-3-Clause}}
 +
{{librow | cling | https://rawcdn.githack.com/root-project/cling/d59d27ad61f2f3a78cd46e652cd9fb8adb893565/www/index.html | An interactive C++ interpreter, built on top of Clang and LLVM to leverage RAD, creating scripts, embeddable scripting, and runtime code generation. ([https://github.com/root-project/cling Src]) | [https://github.com/root-project/cling/blob/master/LICENSE.TXT Custom] / LGPL | cmake}}
 
{{librow | ExprTk | https://partow.net/programming/exprtk/index.html | 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. |}}
 
{{librow | ExprTk | https://partow.net/programming/exprtk/index.html | 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. |}}
{{librow | Jinx | https://jamesboer.github.io/Jinx/index.htm | Scripting language designed for videogames. | MIT | CMake}}
+
{{librow | Jinx | https://jamesboer.github.io/Jinx/index.htm | A scripting language designed for video games. | MIT | cmake}}
 
{{librow | spidermonkey.dev | https://spidermonkey.dev/ | Mozilla’s JavaScript and WebAssembly Engine.}}
 
{{librow | spidermonkey.dev | https://spidermonkey.dev/ | Mozilla’s JavaScript and WebAssembly Engine.}}
{{librow | muparser | https://beltoforion.de/en/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}}
+
{{librow | muparser | https://beltoforion.de/en/muparser/ | An extensible high performance math expression parser library written in C++. | BSD-2-Clause | cmake}}
{{librow | PythonQt | http://pythonqt.sourceforge.net/ | 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}}
+
{{librow | PythonQt | http://pythonqt.sourceforge.net/ | A 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}}
{{librow | ScriptCaller | https://github.com/Baduit/ScriptCaller | a header only library allowing us to call ruby scripts.}}
+
{{librow | lua | https://www.lua.org | A lightweight multi-paradigm scripting language designed primarily for embedded use. C library. | [https://www.lua.org/license.html MIT] | make}}
{{librow | lua | https://www.lua.org | Lightweight multi-paradigm scripting language designed primarily for embedded use. C library. | MIT}}
+
{{librow | sol2 | https://github.com/ThePhD/sol2 | A modern C++ library binding to Lua. | MIT | header-only; cmake}}
{{librow | sol2 | https://github.com/ThePhD/sol2 | A modern header-only C++ library binding to Lua. | MIT | CMake}}
+
{{librow | v8pp | https://github.com/pmed/v8pp | Binds C++ functions and classes into V8 JavaScript engine. | BSL-1.0 | header-only; cmake}}
{{librow | v8pp | https://github.com/pmed/v8pp | Bind C++ functions and classes into V8 JavaScript engine.}}
+
 
{{libtableend}}
 
{{libtableend}}
 +
 
==Embedded/Realtime==
 
==Embedded/Realtime==
  
 
{{libtablebegin}}
 
{{libtablebegin}}
{{librow | distortos | https://distortos.org/ | object-oriented C++ RTOS for microcontrollers}}
+
{{librow | distortos | https://distortos.org/ | An object-oriented C++11 RTOS for microcontrollers (ARM, STM32) ([https://github.com/DISTORTEC/distortos Src]) ([https://distortos.org/documentation/ Doc]) | MPL-2.0 | cmake}}
{{librow | ETL | https://www.etlcpp.com | Embedded Template Library - C++03, Portable template library tailored for low resource (embedded) platforms ([https://github.com/ETLCPP/etl.git Src]) | MIT}}
+
{{librow | ETL | https://www.etlcpp.com | '''E'''mbedded '''T'''emplate '''L'''ibrary - C++03, Portable template library tailored for low resource (embedded) platforms ([https://github.com/ETLCPP/etl.git Src]) | MIT}}
 
{{librow | QP/C++ | http://sourceforge.net/projects/qpc/files/QP_C%2B%2B/4.5.04/ | RTOS kernel: Real-Time Embedded Frameworks based on active objects & state machines | GPLv3}}
 
{{librow | QP/C++ | http://sourceforge.net/projects/qpc/files/QP_C%2B%2B/4.5.04/ | RTOS kernel: Real-Time Embedded Frameworks based on active objects & state machines | GPLv3}}
 
{{librow | µcuREST | https://github.com/hutorny/micurest | C++11 REST/JSON server framework for microcontrollers}}
 
{{librow | µcuREST | https://github.com/hutorny/micurest | C++11 REST/JSON server framework for microcontrollers}}
Line 494: Line 482:
  
 
{{libtablebegin}}
 
{{libtablebegin}}
{{librow | DataFrame | https://github.com/hosseinmoein/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}}
+
{{librow | DataFrame | https://github.com/hosseinmoein/DataFrame | A C++ DataFrame for statistical, Financial, and ML analysis -- in modern C++ using native types and continuous memory storage | BSD-3-Clause | cmake, make, conan}}
{{librow | QuantLib | https://www.quantlib.org/ | Quantitative finance Library - A free/open-source library for quantitative finance | modified BSD}}
+
{{librow | QuantLib | https://www.quantlib.org/ | A quantitative finance Library - A free/open-source library for quantitative finance | modified BSD}}
 
{{libtableend}}
 
{{libtableend}}
  
Line 501: Line 489:
  
 
{{libtablebegin}}
 
{{libtablebegin}}
{{librow | Anax | https://github.com/miguelishawt/anax | An open source C++ entity system | MIT | CMake }}
+
{{librow | Anax | https://github.com/miguelishawt/anax | An open-source C++ entity system | MIT | cmake}}
{{librow | Anura | https://github.com/anura-engine/anura | A fully-featured game engine and the tech behind the [https://github.com/frogatto/frogatto/wiki Frogatto & Friends]. | [https://github.com/anura-engine/anura/blob/trunk/LICENSE Custom] Open Source | make, vcpkg }}
+
{{librow | Anura | https://github.com/anura-engine/anura | A fully-featured game engine and the tech behind the [https://github.com/frogatto/frogatto/wiki Frogatto & Friends]. | [https://github.com/anura-engine/anura/blob/trunk/LICENSE Custom] Open Source | make, vcpkg}}
{{librow | BOX2D | https://box2d.org/ | Physics engine | MIT | CMake }}
+
{{librow | BOX2D | https://box2d.org/ | A physics engine | MIT | cmake}}
{{librow | EntityPlus | https://github.com/Yelnats321/EntityPlus | A C++17 Entity Component System | BSD-1.0 | CMake }}
+
{{librow | EntityPlus | https://github.com/Yelnats321/EntityPlus | A C++17 Entity Component System | BSD-1.0 | cmake}}
{{librow | EntityX | https://github.com/alecthomas/entityx | A fast, type-safe C++ Entity-Component system | MIT | CMake }}
+
{{librow | EntityX | https://github.com/alecthomas/entityx | A fast, type-safe C++ Entity-Component system | MIT | cmake}}
{{librow | EnTT | https://github.com/skypjack/entt | A header-only tiny library for game dev and more written in modern C++ | MIT | CMake, bazel, Conan, vcpkg, brew, cppget }}
+
{{librow | EnTT | https://github.com/skypjack/entt | A tiny library for game dev and more written in modern C++ | MIT | header-only; cmake, bazel, conan, vcpkg, brew, cppget}}
 
{{libtableend}}
 
{{libtableend}}
  
Line 512: Line 500:
  
 
{{libtablebegin}}
 
{{libtablebegin}}
{{librow | Kigs-framework | https://github.com/Kigs-framework/kigs | Modular Multi-purpose Cross Platform Framework | MIT}}
+
{{librow | Kigs-framework | https://github.com/Kigs-framework/kigs | A modular multi-purpose cross-platform framework | MIT}}
 
{{librow | openFrameworks | https://www.openframeworks.cc/ | | MIT}}
 
{{librow | openFrameworks | https://www.openframeworks.cc/ | | MIT}}
{{librow | SDL | https://www.libsdl.org/ | Simple DirectMedia Layer: cross-platform (Windows, macOS, Linux, iOS, Android, and others), low level access to audio, keyboard, mouse, joystick, and graphics hardware via that platform's graphics API (OpenGL/Direct3D/Metal/Vulkan) ([https://wiki.libsdl.org/SDL3/FrontPage Doc]) ([https://github.com/libsdl-org/SDL Src]) | zlib | CMake}}
+
{{librow | SDL | https://www.libsdl.org/ | '''S'''imple '''D'''irectMedia '''L'''ayer: a cross-platform (Windows, macOS, Linux, iOS, Android, and others), low level access to audio, keyboard, mouse, joystick, and graphics hardware via that platform's graphics API (OpenGL/Direct3D/Metal/Vulkan) ([https://wiki.libsdl.org/SDL3/FrontPage Doc]) ([https://github.com/libsdl-org/SDL Src]) | zlib | cmake}}
{{librow | SFML | https://www.sfml-dev.org/index.php | 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}}
+
{{librow | SFML | https://www.sfml-dev.org/index.php | '''S'''imple and '''F'''ast '''M'''ultimedia '''L'''ibrary; 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}}
{{librow | SIGIL | http://www.libsigil.com/ | 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 | [https://gitlab.com/geoff-nagy/sigil/-/blob/master/LICENSES.txt License] | CMake}}
+
{{librow | SIGIL | http://www.libsigil.com/ | '''S'''ound, '''I'''nput, and '''G'''raphics '''I'''ntegration '''L'''ibrary; a simple, cross-platform, minimalist library for text, shapes, input, audio, and 2D images. Supported platforms: Windows, Linux and Raspberry Pi | [https://gitlab.com/geoff-nagy/sigil/-/blob/master/LICENSES.txt License] | cmake}}
 
{{libtableend}}
 
{{libtableend}}
  
Line 522: Line 510:
  
 
{{libtablebegin}}
 
{{libtablebegin}}
{{librow | Abseil | https://abseil.io/ | An open-source collection of C++ library code from Google designed to augment the C++ standard library. ([https://abseil.io/docs/ Doc]) ([https://github.com/abseil/abseil-cpp Src]) | [https://github.com/abseil/abseil-cpp/blob/master/LICENSE Apache-2.0 ] | CMake}}
+
{{librow | Abseil | https://abseil.io/ | An open-source collection of C++ library code from Google designed to augment the C++ standard library. ([https://abseil.io/docs/ Doc]) ([https://github.com/abseil/abseil-cpp Src]) | [https://github.com/abseil/abseil-cpp/blob/master/LICENSE Apache-2.0 ] | cmake}}
 
{{librow | Abstract Intrusive Containers | https://github.com/wkaras/C-plus-plus-intrusive-container-templates | More flexible than [https://www.boost.org/doc/libs/release/doc/html/intrusive.html Boost.Intrusive], but not STL-compatible. |}}
 
{{librow | Abstract Intrusive Containers | https://github.com/wkaras/C-plus-plus-intrusive-container-templates | More flexible than [https://www.boost.org/doc/libs/release/doc/html/intrusive.html Boost.Intrusive], but not STL-compatible. |}}
{{librow | Au | https://aurora-opensource.github.io/au/main/ | A C++14-compatible physical units library with no dependencies and a single-file delivery option. Emphasis on safety, accessibility, performance, and developer experience. | [https://github.com/aurora-opensource/au/blob/main/LICENSE.txt Apache 2.0] | }}
+
{{librow | Au | https://github.com/aurora-opensource/au | A C++14-compatible physical units library with no dependencies with emphasis on safety, accessibility, and performance. ([https://aurora-opensource.github.io/au/main/ Doc]) | [https://github.com/aurora-opensource/au/blob/main/LICENSE.txt Apache 2.0] | header-only}}
 
{{librow | BDE | https://github.com/bloomberg/bde | The Bloomberg Development Environment core libraries from Bloomberg L.P. | Apache}}
 
{{librow | BDE | https://github.com/bloomberg/bde | The Bloomberg Development Environment core libraries from Bloomberg L.P. | Apache}}
{{librow | Better Enums | https://github.com/aantron/better-enums | Reflective enums (enum to string, iteration, etc.) with constexpr support. | BSD}}
+
{{librow | Better Enums | https://github.com/aantron/better-enums | Reflective enums (enum to string, iteration, etc.) with constexpr support. | BSD-2 | header-only, cmake, make}}
 
{{librow | bitfield.h | https://github.com/wkaras/C-plus-plus-library-bit-fields | Bit-field structure facility, more portable/flexible than the base language facility.}}
 
{{librow | bitfield.h | https://github.com/wkaras/C-plus-plus-library-bit-fields | Bit-field structure facility, more portable/flexible than the base language facility.}}
{{librow | Boost | https://www.boost.org/doc/libs | large collection of generic libraries | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
+
{{librow | Boost | https://www.boost.org/doc/libs | A large collection of generic libraries | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
{{librow | CAF | https://github.com/actor-framework/actor-framework | 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}}
+
{{librow | CAF | https://github.com/actor-framework/actor-framework | 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}}
{{librow | Cinder | https://libcinder.org/ | A community-developed, free and open source library for professional-quality creative coding in C++. ([https://libcinder.org/docs/ Doc]) ([https://github.com/cinder/Cinder Src]) | [https://github.com/cinder/Cinder/blob/master/COPYING Modified BSD] | CMake}}
+
{{librow | Cinder | https://libcinder.org/ | A community-developed, free and open-source library for professional-quality creative coding in C++. ([https://libcinder.org/docs/ Doc]) ([https://github.com/cinder/Cinder Src]) | [https://github.com/cinder/Cinder/blob/master/COPYING Modified BSD] | cmake}}
{{librow | CommonPP | https://github.com/daedric/commonpp | Multi-purpose library with a strong emphasis on getting metrics out of a project. | BSD}}
+
{{librow | CommonPP | https://github.com/daedric/commonpp | A multi-purpose library with a strong emphasis on getting metrics out of a project. | BSD}}
 
{{librow | composite_op.h | https://github.com/wkaras/C-plus-plus-library-default-operators | Basic class data member introspection, cumbersome and often non-re-entrant, but sometimes useful.}}
 
{{librow | composite_op.h | https://github.com/wkaras/C-plus-plus-library-default-operators | Basic class data member introspection, cumbersome and often non-re-entrant, but sometimes useful.}}
 
{{librow | cpp-mmf | https://github.com/carlomilanesi/cpp-mmf/ | A C++98 library that encapsulates memory-mapped-files for POSIX or Windows}}
 
{{librow | cpp-mmf | https://github.com/carlomilanesi/cpp-mmf/ | A C++98 library that encapsulates memory-mapped-files for POSIX or Windows}}
 
{{librow | cxxomfort | https://ryan.gulix.cl/fossil.cgi/cxxomfort/ | Backports of C++ features (C++11 to C++03 and C++1y proposals to C++11/C++03).}}
 
{{librow | cxxomfort | https://ryan.gulix.cl/fossil.cgi/cxxomfort/ | Backports of C++ features (C++11 to C++03 and C++1y proposals to C++11/C++03).}}
{{librow | Dlib | https://dlib.net | networking, threads, graphical interfaces, data structures, linear algebra, machine learning, XML and text parsing, numerical optimization, Bayesian nets, and numerous other tasks | Boost}}
+
{{librow | Dlib | https://dlib.net | Networking, threads, graphical interfaces, data structures, linear algebra, machine learning, XML and text parsing, numerical optimization, Bayesian nets, and numerous other tasks | Boost}}
{{librow | eventpp | https://github.com/wqking/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}}
+
{{librow | eventpp | https://github.com/wqking/eventpp | 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}}
 
{{librow | fcppt | https://fcppt.org/ | 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.}}
 
{{librow | fcppt | https://fcppt.org/ | 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.}}
{{librow | Folly | https://github.com/facebook/folly | Facebook open-source library. A crossplatform library of C++14 components designed with practicality and efficiency in mind. ([https://github.com/facebook/folly/blob/main/folly/docs Doc]) | [https://github.com/facebook/folly/blob/main/LICENSE Apache-2.0] | CMake, vcpkg}}
+
{{librow | Folly | https://github.com/facebook/folly | Facebook open-source library. A cross-platform library of C++14 components designed with practicality and efficiency in mind. ([https://github.com/facebook/folly/blob/main/folly/docs Doc]) | [https://github.com/facebook/folly/blob/main/LICENSE Apache-2.0] | cmake, vcpkg}}
{{librow | GSL | https://github.com/Microsoft/GSL | C++ Core '''G'''uidelines '''S'''upport '''L'''ibrary implementation, recommended by Bjarne Stroustrup, Herb Sutter and Co in [https://isocpp.github.io/CppCoreGuidelines C++ Core Guidelines] | [https://github.com/microsoft/GSL/blob/main/LICENSE MIT] | CMake, vcpkg}}
+
{{librow | GSL | https://github.com/Microsoft/GSL | C++ Core '''G'''uidelines '''S'''upport '''L'''ibrary implementation, recommended by Bjarne Stroustrup, Herb Sutter and Co in [https://isocpp.github.io/CppCoreGuidelines C++ Core Guidelines] | [https://github.com/microsoft/GSL/blob/main/LICENSE MIT] | cmake, vcpkg}}
{{librow | gsl-lite | https://github.com/martinmoene/gsl-lite | A single-file header-only version of ISO C++ Guideline Support Library (GSL) for C++98, C++11 and later | MIT}}
+
{{librow | gsl-lite | https://github.com/martinmoene/gsl-lite | A version of ISO C++ Guideline Support Library (GSL) for C++98, C++11 and later | MIT | header-only}}
{{librow | GUL14 | https://gul14.info/ | General Utility Library for C++14 from [https://www.desy.de/ DESY]: Often-used utility functions and types, including String utilities, Statistics and Numeric functions, Containers, Debugging means, etc. ([https://github.com/gul-cpp/gul14 Src])| LGPL-2.1 | Meson, vcpkg}}
+
{{librow | GUL14 | https://gul14.info/ | General Utility Library for C++14 from [https://www.desy.de/ DESY]: Often-used utility functions and types, including String utilities, Statistics and Numeric functions, Containers, Debugging means, etc. ([https://github.com/gul-cpp/gul14 Src])| LGPL-2.1 | meson, vcpkg}}
 
{{librow | History | https://github.com/ryder052/History | Modern C++17 Undo/Redo Framework | [https://github.com/ryder052/History/blob/master/LICENSE Unlicense]}}
 
{{librow | History | https://github.com/ryder052/History | Modern C++17 Undo/Redo Framework | [https://github.com/ryder052/History/blob/master/LICENSE Unlicense]}}
 
{{librow | hspp | https://github.com/BowenFu/hspp | An experimental library to bring Haskell Style Programming to C++. | Apache-2.0 | header-only}}
 
{{librow | hspp | https://github.com/BowenFu/hspp | An experimental library to bring Haskell Style Programming to C++. | Apache-2.0 | header-only}}
Line 547: Line 535:
 
{{librow | JUCE | https://www.juce.com/ | An extensive, mature, cross-platform C++ toolkit | GPL}}
 
{{librow | JUCE | https://www.juce.com/ | An extensive, mature, cross-platform C++ toolkit | GPL}}
 
{{librow | Kangaru | https://github.com/gracicot/kangaru | A dependency injection container for C++11 and C++14 | MIT}}
 
{{librow | Kangaru | https://github.com/gracicot/kangaru | A dependency injection container for C++11 and C++14 | MIT}}
{{librow | Kerbal | https://github.com/WentsingNee/Kerbal | Backports of modern STL facilities to previous standard. More features! More constexpr! | LGPL-3.0 | CMake, header-only}}
+
{{librow | Kerbal | https://github.com/WentsingNee/Kerbal | Backports of modern STL facilities to previous standard. More features! More constexpr! | LGPL-3.0 | header-only; cmake}}
{{librow | libsourcey | https://github.com/sourcey/libsourcey | Cross-platform C++14 library for high speed networking and media encoding. HTTP, WebSockets, TURN, STUN, Symple and more. | LGPL-2.1 | CMake}}
+
{{librow | libsourcey | https://github.com/sourcey/libsourcey | A cross-platform C++14 library for high speed networking and media encoding. HTTP, WebSockets, TURN, STUN, Symple and more. | LGPL-2.1 | cmake}}
{{librow | LLNL/units | https://github.com/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}}
+
{{librow | LLNL/units | https://github.com/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}}
{{librow | Loki | http://loki-lib.sourceforge.net/ | design patterns}}
+
{{librow | Loki | https://sourceforge.net/projects/loki-lib/ | A C++ library of designs, containing flexible implementations of common design patterns and idioms. | MIT | make}}
 
{{librow | match(it) | https://github.com/BowenFu/matchit.cpp | A lightweight pattern-matching library for C++17 with macro-free APIs. | Apache-2.0 | header-only}}
 
{{librow | match(it) | https://github.com/BowenFu/matchit.cpp | A lightweight pattern-matching library for C++17 with macro-free APIs. | Apache-2.0 | header-only}}
{{librow | nonstd-lite | https://github.com/martinmoene/nonstd-lite | Parent of *-lite repositories, a migration path to post-C++11 features for pre-C++11 environments | Boost}}
+
{{librow | nonstd-lite | https://github.com/martinmoene/nonstd-lite | A list of *-lite repositories (e.g., [https://github.com/martinmoene/span-lite span-lite], [https://github.com/martinmoene/scope-lite scope-lite], [https://github.com/martinmoene/expected-lite expected-lite]) containing C++98/11 implementations of some of the proposed or already standardized C++17/20/23 library types, such as {{lc|std::span}}, {{lc|std::expected}} etc). | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0] | header-only}}
{{librow | nytl | https://github.com/nyorain/nytl | Generic C++17 header-only utility template library. | Boost}}
+
{{librow | nytl | https://github.com/nyorain/nytl | A generic C++17 utility template library. | [https://github.com/martinmoene/ring-span-lite/blob/master/LICENSE.txt BSL-1.0] | header-only}}
 
{{librow | OnPosix | http://onposix.sourceforge.net/ | C++ library providing several abstractions (e.g., threading, networking, logging, IPC, etc.) on POSIX platforms.}}
 
{{librow | OnPosix | http://onposix.sourceforge.net/ | C++ library providing several abstractions (e.g., threading, networking, logging, IPC, etc.) on POSIX platforms.}}
{{librow | Reason | http://www.reasoning.biz/index.htm | ?? xml, xpath, regex, threads, sockets, http, sql, date-time, streams, encoding and decoding, filesystem, compression | GPL}}
+
{{librow | Reason | http://www.reasoning.biz/index.htm | <!--2008--> XML, xpath, regex, threads, sockets, HTTP, SQL, date-time, streams, encoding and decoding, filesystem, compression | GPL}}
{{librow | SaferCPlusPlus | https://github.com/duneroadrunner/SaferCPlusPlus | Safe compatible substitutes for unsafe C++ primitives, including pointers, int and std::vector. | Boost}}
+
{{librow | SaferCPlusPlus | https://github.com/duneroadrunner/SaferCPlusPlus | A safe compatible substitutes for unsafe C++ primitives, including pointers, {{c/core|int}} and {{lc|std::vector}}. | Boost}}
{{librow | Smart Enum | https://github.com/krabicezpapundeklu/smart_enum | "to_string", "from_string" and more for your enums. | Boost}}
+
{{librow | Smart Enum | https://github.com/krabicezpapundeklu/smart_enum | {{tt|to_string}}, {{tt|from_string}} and more for your enums. | BSL-1.0 | cmake}}
{{librow | units | https://github.com/nholthaus/units | A compile-time, header-only, dimensional analysis and unit conversion library built on c++14 with no dependencies | MIT}}
+
{{librow | units | https://github.com/nholthaus/units | A compile-time dimensional analysis and unit conversion library built on c++14 with no dependencies | MIT | header-only}}
{{librow | yaal | https://github.com/AmokHuginnsson/yaal | '''Y'''et '''A'''nother '''A'''bstraction '''L'''ayer - algorithms, collections, arbitrary precision calculation, generic-DSL grammar driven parsers and more | CC BY-ND-NC 4.0 | CMake}}
+
{{librow | yaal | https://github.com/AmokHuginnsson/yaal | '''Y'''et '''A'''nother '''A'''bstraction '''L'''ayer - algorithms, collections, arbitrary precision calculation, generic-DSL grammar driven parsers and more | CC BY-ND-NC 4.0 | cmake}}
{{librow | Yato | https://github.com/agruzdev/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}}
+
{{librow | Yato | https://github.com/agruzdev/Yato | A 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}}
{{librow | yomm2 | https://github.com/jll63/yomm2 | Open multi-methods for C++17 | Boost}}
+
{{librow | yomm2 | https://github.com/jll63/yomm2 | An open multi-methods for C++17 | Boost}}
 +
{{librow | zoolib | https://github.com/zoolib/zoolib_cxx | ZooLib is a feature rich C++ toolkit. | MIT}}
 
{{libtableend}}
 
{{libtableend}}
  
Line 567: Line 556:
  
 
{{libtablebegin}}
 
{{libtablebegin}}
{{librow | gpsd | https://gpsd.gitlab.io/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. ([https://gpsd.io/#documentation Doc]) ([https://download.savannah.gnu.org/releases/gpsd/ Src]) | [https://www.openhub.net/licenses/bsd_2clause_ish BSD 2-clause] | scons}}
+
{{librow | gpsd | https://gpsd.gitlab.io/gpsd/ | 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. ([https://gpsd.io/#documentation Doc]) ([https://download.savannah.gnu.org/releases/gpsd/ Src]) | [https://www.openhub.net/licenses/bsd_2clause_ish BSD 2-clause] | scons}}
 
{{libtableend}}
 
{{libtableend}}
  
Line 573: Line 562:
  
 
{{libtablebegin}}
 
{{libtablebegin}}
{{librow | Dear ImGui | https://github.com/ocornut/imgui | A bloat-free graphical user interface library that is highly optimized.}}
+
{{librow | Dear{{nbsp}}ImGui | https://github.com/ocornut/imgui | A lightweight GUI library for C++ with minimal dependencies, portable, render-agnostic, optimized for use in 3D-pipeline-enabled apps. | MIT | }}
 
{{librow | FLTK | https://www.fltk.org/ | 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}}
 
{{librow | FLTK | https://www.fltk.org/ | 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}}
{{librow | nana | http://nanapro.org/ | GUI programming in modern C++ style ([https://qpcr4vir.github.io/nana-doxy/html/ Doc]) | Boost}}
+
{{librow | nana | http://nanapro.org/ | Cross-platform GUI programming in modern C++ style. ([https://github.com/cnjinhao/nana Src]), ([http://nanapro.org/en-us/documentation/ Doc]) | [http://www.boost.org/LICENSE_1_0.txt BSL-1.0] | cmake, vcpkg}}
{{librow | nanogui | https://github.com/wjakob/nanogui | Minimalistic cross-platform widget library for OpenGL 3.x or higher ([https://nanogui.readthedocs.io/en/latest/ Doc])}}
+
{{librow | nanogui | https://github.com/wjakob/nanogui | A minimalistic cross-platform widget library for OpenGL 3.x or higher ([https://nanogui.readthedocs.io/en/latest/ Doc])}}
 
{{librow | OWLNext | http://sourceforge.net/projects/owlnext/ | Modern update to [https://en.wikipedia.org/wiki/Object_Windows_Library OWL] for writing GUI applications in standard C++ on Windows}}
 
{{librow | OWLNext | http://sourceforge.net/projects/owlnext/ | Modern update to [https://en.wikipedia.org/wiki/Object_Windows_Library OWL] for writing GUI applications in standard C++ on Windows}}
{{librow | tiny file dialogs | http://tinyfiledialogs.sourceforge.net | a single C C++ cross-platform file (no init, no main loop, 6 modal function calls)}}
+
{{librow |  Slint | https://slint.dev | A declarative GUI toolkit to build native user interfaces for desktop, embedded, and microcontrollers. ([https://github.com/slint-ui/slint Src]), ([https://slint.dev/docs/cpp Doc]) | GPL 3, [https://github.com/slint-ui/slint/blob/master/LICENSES/LicenseRef-Slint-Royalty-free-1.1.md Royalty-free], or Commercial | cmake }}
{{librow | U++ | https://www.ultimatepp.org | Cross-platform (Windows, GNU/Linux, macOS) rapid application development framework with bundled IDE. C++17 Compatible. ([https://www.ultimatepp.org/www$uppweb$documentation$en-us.html Doc]) ([https://github.com/ultimatepp/ultimatepp Src]) | BSD-3-Clause | Makefile}}
+
{{librow | tiny file dialogs | http://tinyfiledialogs.sourceforge.net | A set of C/C++ cross-platform file dialogs (no init, no main loop, 6 modal function calls) | | header-only}}
{{librow | WxWidgets | https://wxwidgets.org/ | A free and open source cross-platform (Windows, GNU/Linux, macOS) C++ framework for writing advanced GUI applications using native controls. ([https://docs.wxwidgets.org Doc]) | Modified LGPL | CMake, Makefile}}
+
{{librow | U++ | https://www.ultimatepp.org | A cross-platform (Windows, GNU/Linux, macOS) rapid application development framework with bundled IDE. C++17 Compatible. ([https://www.ultimatepp.org/www$uppweb$documentation$en-us.html Doc]) ([https://github.com/ultimatepp/ultimatepp Src]) | BSD-3-Clause | make}}
{{librow | xtd | https://gammasoft71.github.io/xtd/ | Modern C++17/20 framework to create console, GUI and unit tests applications on Windows, macOS, Linux, iOS, and Android. ([https://github.com/gammasoft71/xtd Src]) ([https://gammasoft71.github.io/xtd/reference_guides/latest/index.html Doc]) | MIT | CMake}}
+
{{librow | WxWidgets | https://wxwidgets.org/ | A free and open-source cross-platform (Windows, GNU/Linux, macOS) C++ framework for writing advanced GUI applications using native controls. ([https://docs.wxwidgets.org Doc]) | Modified LGPL | cmake, make}}
 +
{{librow | xtd | https://gammasoft71.github.io/xtd/ | A modern C++17/20 framework to create console, GUI and unit tests applications on Windows, macOS, Linux, iOS, and Android. ([https://github.com/gammasoft71/xtd Src]) ([https://gammasoft71.github.io/xtd/reference_guides/latest/index.html Doc]) | MIT | cmake}}
 
{{libtableend}}
 
{{libtableend}}
  
Line 588: Line 578:
  
 
{{libtablebegin}}
 
{{libtablebegin}}
{{librow | CopperSpice | https://www.copperspice.com/ | 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. ([https://www.copperspice.com/documentation-copperspice.html Doc]) ([https://github.com/copperspice/copperspice Src]) | LGPL-2.1 | CMake}}
+
{{librow | CopperSpice | https://www.copperspice.com/ | 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. ([https://www.copperspice.com/documentation-copperspice.html Doc]) ([https://github.com/copperspice/copperspice Src]) | LGPL-2.1 | cmake}}
{{librow | CsSignal | https://github.com/copperspice/cs_signal | Standalone C++ thread aware signal/slot library | LGPL-2.1 | CMake}}
+
{{librow | CsSignal | https://github.com/copperspice/cs_signal | A standalone C++ thread aware signal/slot library | LGPL-2.1 | cmake}}
{{librow | CsString | https://github.com/copperspice/cs_string | Standalone C++ unicode aware string library | LGPL-2.1 | CMake}}
+
{{librow | CsString | https://github.com/copperspice/cs_string | A standalone C++ Unicode aware string library | LGPL-2.1 | cmake}}
{{librow | libGuarded | https://github.com/copperspice/libguarded | Standalone C++ multithreading library for managing access to shared data | LGPL-2.1 | CMake}}
+
{{librow | libGuarded | https://github.com/copperspice/libguarded | A standalone C++ multithreading library for managing access to shared data | LGPL-2.1 | cmake}}
 
{{libtableend}}
 
{{libtableend}}
  
Line 614: Line 604:
 
{{librow | libdbusmenu-qt | https://launchpad.net/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.}}
 
{{librow | libdbusmenu-qt | https://launchpad.net/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.}}
 
{{librow | Qt | https://qt.io/ | ([https://doc.qt.io/ Doc]) ([https://qt.io/download Src])}}
 
{{librow | Qt | https://qt.io/ | ([https://doc.qt.io/ Doc]) ([https://qt.io/download Src])}}
{{librow | QuickQanava | https://github.com/cneben/QuickQanava | C++14 network/graph visualization library / Qt node editor. | BSD 2.0 | CMake}}
+
{{librow | QuickQanava | https://github.com/cneben/QuickQanava | A C++14 network/graph visualization library / Qt node editor. | BSD 2.0 | cmake}}
 
{{librow | qwt5 | http://qwt.sourceforge.net | Qt Widgets for Technical Applications}}
 
{{librow | qwt5 | http://qwt.sourceforge.net | Qt Widgets for Technical Applications}}
 
{{librow | qwtplot3d | http://qwtplot3d.sourceforge.net}}
 
{{librow | qwtplot3d | http://qwtplot3d.sourceforge.net}}
Line 623: Line 613:
  
 
{{libtablebegin}}
 
{{libtablebegin}}
{{librow | U++ | https://www.ultimatepp.org/ | 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. ([https://www.ultimatepp.org/www$uppweb$download$en-us.html Src/Bin]) | BSD}}
+
{{librow | U++ | https://www.ultimatepp.org/ | 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. ([https://www.ultimatepp.org/www$uppweb$download$en-us.html Src/Bin]) | BSD}}
{{librow | upp-components | https://github.com/ismail-yilmaz/upp-components | A collection of 3rd party packages for U++ like TerminalCtrl, MessageCtrl etc.. | BSD-3-Clause}}
+
{{librow | upp-components | https://github.com/ismail-yilmaz/upp-components | A collection of 3rd party packages for U++ like {{tt|TerminalCtrl}}, {{tt|MessageCtrl}} etc. | BSD-3-Clause}}
 
{{libtableend}}
 
{{libtableend}}
  
Line 630: Line 620:
  
 
{{libtablebegin}}
 
{{libtablebegin}}
{{librow | bgfx | https://github.com/bkaradzic/bgfx | Powerful cross-platform 2D/3D graphics rendering shaders aware library, supported platforms include Windows, Mac, Linux, iOS, Android, Web; rendering backends are: DX, opengl, metal, webgl, vulkan etc. ([https://bkaradzic.github.io/bgfx/bgfx.html Doc]) | BSD-2 | Makefile }}
+
{{librow | bgfx | https://github.com/bkaradzic/bgfx | A powerful cross-platform (Windows, Mac, Linux, iOS, Android, Web) 2D/3D graphics rendering shader-aware library with rendering backends: DX, OpenGL, Metal, WebGL, Vulkan etc. ([https://bkaradzic.github.io/bgfx/bgfx.html Doc]) | BSD-2 | make}}
 
{{librow | cairomm | https://cairographics.org/cairomm/ | A C++ wrapper for the [https://www.cairographics.org/ cairo graphics library] that is 2D library with support for multiple output devices: X Window, Quartz, Win32, image buffers, PostScript, PDF, SVG, OpenGL (experimental). | [https://www.gnu.org/licenses/lgpl.html LGPL]}}
 
{{librow | cairomm | https://cairographics.org/cairomm/ | A C++ wrapper for the [https://www.cairographics.org/ cairo graphics library] that is 2D library with support for multiple output devices: X Window, Quartz, Win32, image buffers, PostScript, PDF, SVG, OpenGL (experimental). | [https://www.gnu.org/licenses/lgpl.html LGPL]}}
{{librow | dfpsr | https://dawoodoz.com/dfpsr.html | 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}}
+
{{librow | dfpsr | https://dawoodoz.com/dfpsr.html | A 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}}
{{librow | gegl | https://gegl.org/ | '''GEGL''' (Generic Graphics Library) is a data flow based image processing framework, providing floating point processing and non-destructive image processing capabilities. ([https://gitlab.gnome.org/GNOME/gegl/ Src]) | LGPL}}
+
{{librow | gegl | https://gegl.org/ | '''Ge'''neric '''G'''raphics '''L'''ibrary (GEGL) is a data flow based image processing framework, providing floating-point processing and non-destructive image processing capabilities. ([https://gitlab.gnome.org/GNOME/gegl/ Src]) | LGPL}}
{{librow | io2d | https://github.com/cpp-io2d/P0267_RefImpl | Reference Implementations of [https://github.com/cpp-io2d/io2dts P0267], the proposed {{stddoc|P0267|2D graphics API for ISO C++}} | Boost | CMake}}
+
{{librow | io2d | https://github.com/cpp-io2d/P0267_RefImpl | A reference implementation of [https://github.com/cpp-io2d/io2dts P0267], the proposed {{stddoc|P0267|2D graphics API for ISO C++}} | BSL-1.0 | cmake}}
{{librow | nanovg | https://github.com/memononen/nanovg | 2D drawing library based on openGL/DX/metal.}}
+
{{librow | nanovg | https://github.com/memononen/nanovg | An antialiased 2D vector drawing library in C on top of OpenGL for UI and visualizations, with ports to DX11/Metal/bgfx. | zlib }}
 
{{librow | nux | https://launchpad.net/nux | An OpenGL toolkit | LGPL v3}}
 
{{librow | nux | https://launchpad.net/nux | An OpenGL toolkit | LGPL v3}}
{{librow | pangomm | https://gitlab.gnome.org/GNOME/pangomm | is the official C++ interface for the [https://www.pango.org/ Pango] font layout library. ([https://gitlab.gnome.org/GNOME/pango Src]) | [https://gitlab.gnome.org/GNOME/pangomm/-/blob/master/COPYING LGPL v2.1] | Makefile}}
+
{{librow | pangomm | https://gitlab.gnome.org/GNOME/pangomm | The official C++ interface for the [https://www.pango.org/ Pango] font layout library. ([https://gitlab.gnome.org/GNOME/pango Src]) | [https://gitlab.gnome.org/GNOME/pangomm/-/blob/master/COPYING LGPL v2.1] | make}}
{{librow | Skia | https://skia.org/ | is an open-source 2D-graphics library written in C++. {{enwiki|Skia Graphics Engine}} 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. | {{enwiki|New BSD License|New BSD}}}}
+
{{librow | Skia | https://skia.org/ | An open-source 2D-graphics library written in C++. {{enwiki|Skia Graphics Engine}} 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. | {{enwiki|New BSD License|New BSD}}}}
 
{{librow | TXLib | https://github.com/ded32/TXLib | TX Library is a tiny 2D graphics library for Win32 written in C++.}}
 
{{librow | TXLib | https://github.com/ded32/TXLib | TX Library is a tiny 2D graphics library for Win32 written in C++.}}
{{librow | ULIS | https://github.com/Praxinos/ULIS | Cross-Platform C++14 Library, Generic digital image processing, 2D Software rasterizer, Unlimited image formats ({{tt|u8}}, {{tt|u16}}, {{tt|u32}}, {{co|float}}, {{co|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}}
+
{{librow | ULIS | https://github.com/Praxinos/ULIS | A cross-platform C++14 library for generic digital image processing, 2D software rasterizer, unlimited image formats ({{tt|u8}}, {{tt|u16}}, {{tt|u32}}, {{co|float}}, {{co|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}}
 
{{libtableend}}
 
{{libtableend}}
  
Line 646: Line 636:
  
 
{{libtablebegin}}
 
{{libtablebegin}}
{{librow | assimp | http://assimp.sourceforge.net/ | 3D model loading}}
+
{{librow | assimp | https://github.com/assimp/assimp | 3D model loading | [https://github.com/assimp/assimp#License-1-ov-file BSD-3] | cmake, vcpkg}}
{{librow | bgfx | https://github.com/bkaradzic/bgfx#bgfx---cross-platform-rendering-library | Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library.}}
+
{{librow | bgfx | https://github.com/bkaradzic/bgfx#bgfx---cross-platform-rendering-library | A cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library. | [https://github.com/bkaradzic/bgfx#BSD-2-Clause-1-ov-file BSD-2] | make, vcpkg}}
{{librow | Diligent Engine | https://github.com/DiligentGraphics/DiligentEngine | A modern cross-platform low-level 3D graphics library.}}
+
{{librow | Diligent Engine | https://github.com/DiligentGraphics/DiligentEngine | A modern cross-platform low-level 3D graphics library. | [https://github.com/DiligentGraphics/DiligentEngine#Apache-2.0-1-ov-file Apache-2.0] | cmake}}
{{librow | Epoxy | https://github.com/anholt/libepoxy | 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.}}
+
{{librow | Epoxy | https://github.com/anholt/libepoxy | A 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. | MIT | meson, vcpkg}}
{{librow | G3D | https://casual-effects.com/g3d/www/index.html#features | 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. ([https://sourceforge.net/projects/g3d/ Src]) ([https://casual-effects.com/g3d/www/index.html#documentation Doc]) | BSD-2}}
+
{{librow | G3D | https://casual-effects.com/g3d/www/index.html#features | 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. ([https://sourceforge.net/projects/g3d/ Src]) ([https://casual-effects.com/g3d/www/index.html#documentation Doc]) | BSD-2}}
{{librow | GLAD | https://glad.dav1d.de/ | Customizable, lightweight library for loading OpenGL functions}}
+
{{librow | GLAD | https://glad.dav1d.de/ | A customizable, lightweight library for loading OpenGL functions}}
{{librow | GLEW | http://glew.sourceforge.net/ | OpenGL function loading}}
+
{{librow | GLEW | http://glew.sourceforge.net/ | An OpenGL functions loader ([https://github.com/nigels-com/glew Src]) | [https://github.com/nigels-com/glew?tab{{=}}License-1-ov-file#readme EXTGL/BSD/MIT] | make, vcpkg}}
{{librow | GLFW | https://www.glfw.org/ | OpenGL window manager}}
+
{{librow | GLFW | https://www.glfw.org/ | An OpenGL window manager ([https://github.com/glfw/glfw Src]) ([https://www.glfw.org/documentation.html Doc]) | [https://www.glfw.org/license.html zlib/libpng] | cmake, vcpkg}}
{{librow | GLM | https://github.com/g-truc/glm | Header only C++ mathematics library for rendering}}
+
{{librow | GLM | https://github.com/g-truc/glm | The Open'''GL''' '''M'''athematics (GLM) is a C++ mathematics library for graphics software based on [https://www.opengl.org/registry/doc/GLSLangSpec.4.50.diff.pdf GLSL] spec. | [https://github.com/g-truc/glm?tab{{=}}License-1-ov-file#readme The Happy Bunny /<br>MIT] | header-only; cmake, vcpkg}}
{{librow | Godot | https://github.com/godotengine/godot | Full featured multi-platform 2D and 3D game engine in C++17 with a GUI editor written on itself and a python-inspired script language. | MIT | SCons}}
+
{{librow | Godot | https://github.com/godotengine/godot | A full featured multi-platform 2D and 3D game engine in C++17 with a GUI editor written on itself and a python-inspired script language. | MIT | scons}}
{{librow | hlsl++ | https://github.com/redorav/hlslpp | Header only C++ math library for rendering using hlsl syntax. Supports SSE and NEON}}
+
{{librow | hlsl++ | https://github.com/redorav/hlslpp | A C++ math library for rendering using HLSL syntax. Supports SSE and NEON | MIT | header-only}}
{{librow | Horde3D | https://www.horde3d.org/ | 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.}}
+
{{librow | Horde3D | https://www.horde3d.org/ | 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. | [http://www.horde3d.org/license.html EPL]}}
{{librow | Irrlicht | http://irrlicht.sourceforge.net/ | 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.}}
+
{{librow | Irrlicht | http://irrlicht.sourceforge.net/ | 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. | [https://irrlicht.sourceforge.io/?page_id{{=}}294 zlib/libpng] | make, vcpkg}}
{{librow | klein | https://github.com/jeremyong/klein | C++11/14/17 SSE-optimized Projective Geometric Algebra library for graphics and animation}}
+
{{librow | klein | https://github.com/jeremyong/klein | A C++11/14/17 SSE-optimized Projective Geometric Algebra library for graphics and animation | MIT | cmake, vcpkg}}
{{librow | Magnum | https://magnum.graphics | Lightweight and modular C++11/C++14 graphics middleware for games and data visualization}}
+
{{librow | Magnum | https://magnum.graphics | A lightweight and modular C++11/C++14 graphics middleware for games and data visualization ([https://github.com/mosra/magnum Src]) | [https://github.com/mosra/magnum?tab{{=}}License-1-ov-file#readme Custom] | cmake}}
{{librow | O3DE | https://github.com/o3de/o3de | '''O'''pen-source '''3D''' '''E'''ngine (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 [https://o3de.org/docs/welcome-guide/features-intro/ more]. ([https://o3de.org Doc]) | Apache 2.0 | CMake}}
+
{{librow | O3DE | https://github.com/o3de/o3de | The '''O'''pen-source '''3D''' '''E'''ngine (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 [https://o3de.org/docs/welcome-guide/features-intro/ more]. ([https://o3de.org Doc]) | Apache 2.0 | cmake}}
{{librow | Ogre3D | https://ogrecave.github.io/ogre/api/latest/manual.html | 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}}
+
{{librow | Ogre3D | https://ogrecave.github.io/ogre/api/latest/manual.html | The OGRE is an Object-Oriented Graphics Rendering Engine - a multipurpose visualization library, suitable for scientific visualization, games, simulation, virtual reality and other graphic projects. It is multi-platform and very robust, with a good documentation. | MIT | cmake, vcpkg}}
{{librow | Open CASCADE | https://www.opencascade.com/content/core-technology | SDK for 3D CAD/CAM/CAE applications}}
+
{{librow | Open CASCADE | https://dev.opencascade.org/ | SDK for 3D CAD/CAM/CAE applications ([https://github.com/Open-Cascade-SAS/OCCT Src]) | LGPL-2.1 | cmake}}
{{librow | OpenGL | https://www.opengl.org/ | 3D language, graphics and SDK for developing 3D applications.}}
+
{{librow | OpenGL | https://www.opengl.org/ | 3D language, graphics and SDK for developing 3D applications. | Khronos (MIT)}}
{{librow | OpenSceneGraph | https://www.openscenegraph.com/ | 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.}}
+
{{librow | OpenSceneGraph | https://openscenegraph.github.io/openscenegraph.io | 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. ([https://github.com/openscenegraph/OpenSceneGraph Src]) ([https://openscenegraph.github.io/openscenegraph.io/documentation/documentation.html Doc]) | [https://github.com/openscenegraph/OpenSceneGraph?tab{{=}}License-1-ov-file#License-1-ov-file Custom,<br>GNU LGPL] | cmake, vcpkg}}
{{librow | Visionaray | https://github.com/szellmann/visionaray | A C++ ray tracing template library.}}
+
{{librow | Visionaray | https://github.com/szellmann/visionaray | A C++ ray tracing template library. | MIT | cmake}}
{{librow | VTK | https://vtk.org/ | 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.}}
+
{{librow | VTK | https://vtk.org/ | 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. | BSD-3 | cmake, vcpkg}}
{{librow | Vulkan | https://www.khronos.org/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.}}
+
{{librow | Vulkan | https://www.khronos.org/vulkan/ | 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. | Khronos (MIT) | make, vcpkg}}
 
{{libtableend}}
 
{{libtableend}}
  
Line 674: Line 664:
  
 
{{libtablebegin}}
 
{{libtablebegin}}
{{librow | Adobe/boost GIL | https://boost.org/libs/gil | high-level generic library, focused on algorithms that operate on 2D images. Very limited I/O options. | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
+
{{librow | Adobe/boost GIL | https://boost.org/libs/gil | A high-level generic library, focused on algorithms that operate on 2D images. Very limited I/O options. | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
{{librow | agge | https://github.com/tyoma/agge | Anti-Grain Evolution. 2D graphics engine for Speed and Quality in C++ | MIT | CMake}}
+
{{librow | agge | https://github.com/tyoma/agge | Anti-Grain Evolution. A 2D graphics engine for speed and quality in C++ | MIT | cmake}}
 
{{librow | FreeImage | https://freeimage.sourceforge.io | 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 |}}
 
{{librow | FreeImage | https://freeimage.sourceforge.io | 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 |}}
{{librow | FreeImageRe | https://github.com/agruzdev/FreeImageRe | A fork from the Open-Source library FreeImage v3.18 to support image codecs updates and adjust for comfortable usage. All original formats and plugins are maintained. | GPLv2, GPLv3, FIPL | CMake }}
+
{{librow | FreeImageRe | https://github.com/agruzdev/FreeImageRe | A fork from the Open-Source library FreeImage v3.18 to support image codecs updates and adjust for comfortable usage. All original formats and plugins are maintained. | GPLv2, GPLv3, FIPL | cmake}}
 
{{librow | GraphicsMagick | http://www.graphicsmagick.org/ | Reading, writing, and manipulating images in over 88 major formats. Forked from ImageMagick in 2002 | [http://www.graphicsmagick.org/Copyright.html Copyright] | Mercurial}}
 
{{librow | GraphicsMagick | http://www.graphicsmagick.org/ | Reading, writing, and manipulating images in over 88 major formats. Forked from ImageMagick in 2002 | [http://www.graphicsmagick.org/Copyright.html Copyright] | Mercurial}}
{{librow | SAIL | https://sail.software | Reading and writing static, animated, multi-paged images along with their meta data and ICC profiles. Converting capabilities. Targets simplicity and speed. | MIT | CMake}}
+
{{librow | SAIL | https://sail.software | Reading and writing static, animated, multi-paged images along with their meta data and ICC profiles. Converting capabilities. Targets simplicity and speed. | MIT | cmake}}
{{librow | stb | https://github.com/nothings/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}}
+
{{librow | stb | https://github.com/nothings/stb | A set of C/C++ game-dev oriented libraries featuring 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, and more. | MIT, [https://github.com/nothings/stb/blob/master/LICENSE Custom] | header-only}}
 
{{libtableend}}
 
{{libtableend}}
  
Line 701: Line 691:
  
 
{{libtablebegin}}
 
{{libtablebegin}}
{{librow | Matplot++ | https://github.com/alandefreitas/matplotplusplus | A '''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. ([https://github.com/alandefreitas/matplotplusplus/blob/master/docs/README.md Doc]) | MIT | CMake}}
+
{{librow | Matplot++ | https://github.com/alandefreitas/matplotplusplus | A '''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. ([https://github.com/alandefreitas/matplotplusplus/blob/master/docs/README.md Doc]) | MIT | cmake}}
 
{{librow | plotutils | https://www.gnu.org/software/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}}
 
{{librow | plotutils | https://www.gnu.org/software/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}}
{{librow | sciplot | https://github.com/sciplot/sciplot | A modern header-only C++ scientific plotting library powered by [http://www.gnuplot.info/ gnuplot], with the export to pdf, svg, png, eps, etc. | MIT | CMake, vcpkg}}
+
{{librow | sciplot | https://github.com/sciplot/sciplot | A modern C++ scientific plotting library powered by [http://www.gnuplot.info/ gnuplot], with the export to PDF, SVG, PNG, EPS, etc. | MIT | header-only; cmake, vcpkg}}
 
{{libtableend}}
 
{{libtableend}}
  
Line 710: Line 700:
 
{{libtablebegin}}
 
{{libtablebegin}}
 
{{librow | dlib | http://dlib.net/imaging.html}}
 
{{librow | dlib | http://dlib.net/imaging.html}}
{{librow | Halide | https://github.com/halide/Halide | A C++-embedded DSL for high-performance processing of images and tensors. | MIT | CMake, vcpkg}}
+
{{librow | Halide | https://github.com/halide/Halide | A C++-embedded DSL for high-performance processing of images and tensors. | MIT | cmake, vcpkg}}
{{librow | ITK - Insight Toolkit | https://itk.org | 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}}
+
{{librow | ITK - Insight Toolkit | https://itk.org | 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}}
 
{{librow | opencv | https://opencv.org/}}
 
{{librow | opencv | https://opencv.org/}}
 
{{librow | OTB | https://www.orfeo-toolbox.org/}}
 
{{librow | OTB | https://www.orfeo-toolbox.org/}}
Line 719: Line 709:
  
 
{{libtablebegin}}
 
{{libtablebegin}}
{{librow | gettext | https://www.gnu.org/software/gettext/ | GNU internationalization library. | GPL | Makefile}}
+
{{librow | gettext | https://www.gnu.org/software/gettext/ | GNU internationalization library. | GPL | make}}
{{librow | ICU | https://icu.unicode.org/ | '''I'''nternational '''C'''omponents for '''U'''nicode is a mature, widely used set of C/C++ libraries providing Unicode and Globalization support for software applications. ([https://github.com/unicode-org/icu Src]) | [https://github.com/unicode-org/icu/blob/main/icu4c/LICENSE icu4c/LICENSE] | Makefile}}
+
{{librow | ICU | https://icu.unicode.org/ | '''I'''nternational '''C'''omponents for '''U'''nicode is a mature, widely used set of C/C++ libraries providing Unicode and Globalization support for software applications. ([https://github.com/unicode-org/icu Src]) | [https://github.com/unicode-org/icu/blob/main/icu4c/LICENSE icu4c/LICENSE] | make}}
{{librow | spirit-po | https://github.com/cbeck88/spirit-po | A small, header-only library which parses po-files and provides an interface similar to GNU libintl. Based on boost::spirit. | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0] | Header only}}
+
{{librow | spirit-po | https://github.com/cbeck88/spirit-po | A small library which parses po-files and provides an interface similar to GNU libintl. Based on boost::spirit. | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0] | header-only}}
{{librow | uni-algo | https://github.com/uni-algo/uni-algo | Unicode Algorithms Implementation for C/C++ | MIT/Unlicense | CMake, Conan, vcpkg}}
+
{{librow | uni-algo | https://github.com/uni-algo/uni-algo | Unicode Algorithms Implementation for C/C++ | MIT/Unlicense | cmake, conan, vcpkg}}
 
{{libtableend}}
 
{{libtableend}}
  
Line 728: Line 718:
  
 
{{libtablebegin}}
 
{{libtablebegin}}
{{librow | Backward | https://github.com/bombela/backward-cpp | Printing nice Python-styled stack traces with colors and source snippets, especially on crashes. Header-only. | MIT | CMake, Conan}}
+
{{librow | Backward | https://github.com/bombela/backward-cpp | Printing nice Python-styled stack traces with colors and source snippets, especially on crashes. | MIT | header-only; cmake, conan}}
 
{{librow | Boost.Log | https://www.boost.org/doc/libs/release/libs/log/doc/html/index.html | A cross-platform logging library that is simple to use, extensible, and performant. | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
 
{{librow | Boost.Log | https://www.boost.org/doc/libs/release/libs/log/doc/html/index.html | A cross-platform logging library that is simple to use, extensible, and performant. | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
{{librow | clutchlog | https://github.com/nojhan/clutchlog | Single-header logging system which targets versatile DEBUGGING instead of service event storage. | BSD | CMake}}
+
{{librow | clutchlog | https://github.com/nojhan/clutchlog | Single-header logging system which targets versatile DEBUGGING instead of service event storage. | BSD | cmake}}
{{librow | glog | https://github.com/google/glog | Google Logging Library for C++98 based on C++-style streams | [https://github.com/google/glog/blob/master/COPYING License] | Bazel, CMake, vcpkg}}
+
{{librow | glog | https://github.com/google/glog | Google Logging Library for C++98 based on C++-style streams | [https://github.com/google/glog/blob/master/COPYING License] | bazel, cmake, vcpkg}}
{{librow | Log4cplus | https://github.com/log4cplus/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. | [https://github.com/log4cplus/log4cplus/blob/master/LICENSE BSD (two clause) or Apache 2.0] | Autotools, CMake, Visual Studio}}
+
{{librow | Log4cplus | https://github.com/log4cplus/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. | [https://github.com/log4cplus/log4cplus/blob/master/LICENSE BSD (two clause) or Apache 2.0] | Autotools, cmake, Visual Studio}}
 
{{librow | Log4cpp | http://log4cpp.sourceforge.net/ | A library of C++ classes for flexible logging to files, syslog, IDSA and other destinations. | LGPL}}
 
{{librow | Log4cpp | http://log4cpp.sourceforge.net/ | A library of C++ classes for flexible logging to files, syslog, IDSA and other destinations. | LGPL}}
{{librow | log4cxx | https://logging.apache.org/log4cxx/latest_stable/index.html | Apache log4cxx is a logging framework for C++ patterned after Apache log4j. ([https://github.com/apache/logging-log4cxx Src]) | [https://www.apache.org/licenses Apache] | CMake}}
+
{{librow | log4cxx | https://logging.apache.org/log4cxx/latest_stable/index.html | Apache log4cxx is a logging framework for C++ patterned after Apache log4j. ([https://github.com/apache/logging-log4cxx Src]) | [https://www.apache.org/licenses Apache] | cmake}}
{{librow | Pantheios | http://www.pantheios.org/ | Diagnostic Logging API library, offering a combination of type-safety, efficiency, genericity and extensibility | BSD-style |}}
+
{{librow | lwlog | https://github.com/ChristianPanov/lwlog | An extremely fast synchronous and asynchronous C++17 logging library | MIT | cmake}}
{{librow | plog | https://github.com/SergiusTheBest/plog | Portable and simple log for C++ in less than 1000 lines of code | [https://github.com/SergiusTheBest/plog/blob/master/LICENSE MPL-2.0]}}
+
{{librow | Pantheios | http://www.pantheios.org/ | A diagnostic logging API library, offering a combination of type-safety, efficiency, genericity and extensibility | BSD-style |}}
{{librow | Quill | https://github.com/odygrd/quill | Cross-platform, C++14 Asynchronous [https://github.com/odygrd/quill#Performance Low Latency] Logging Library | MIT | CMake}}
+
{{librow | plog | https://github.com/SergiusTheBest/plog | A portable and simple log for C++ in less than 1000 lines of code | [https://github.com/SergiusTheBest/plog/blob/master/LICENSE MPL-2.0]}}
{{librow | spdlog | https://github.com/gabime/spdlog | Super fast, header only, C++ logging library | MIT | CMake, Conan}}
+
{{librow | Quill | https://github.com/odygrd/quill | A cross-platform, C++14 Asynchronous [https://github.com/odygrd/quill#Performance Low Latency] Logging Library | MIT | cmake}}
 +
{{librow | spdlog | https://github.com/gabime/spdlog | A super fast C++ logging library | MIT | header-only; cmake, conan}}
 
{{libtableend}}
 
{{libtableend}}
  
Line 744: Line 735:
  
 
{{libtablebegin}}
 
{{libtablebegin}}
{{librow | Boost.LEAF | https://www.boost.org/doc/libs/release/libs/leaf/doc/html/index.html | 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. | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
+
{{librow | Boost.LEAF | https://www.boost.org/doc/libs/release/libs/leaf/doc/html/index.html | A 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. ([https://github.com/boostorg/leaf Src]) | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0] | header-only, cmake}}
 
{{libtableend}}
 
{{libtableend}}
  
Line 751: Line 742:
 
{{libtablebegin}}
 
{{libtablebegin}}
 
{{librow | alglib | https://www.alglib.net/ | 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}}
 
{{librow | alglib | https://www.alglib.net/ | 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}}
{{librow | ArrayFire | https://www.arrayfire.com/docs/index.htm | 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. ([https://github.com/arrayfire/arrayfire Src]) | [https://github.com/arrayfire/arrayfire/blob/master/LICENSE Custom]}}
+
{{librow | ArrayFire | https://www.arrayfire.com/docs/index.htm | 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. ([https://github.com/arrayfire/arrayfire Src]) | [https://github.com/arrayfire/arrayfire/blob/master/LICENSE Custom]}}
{{librow | Boost.Math | https://www.boost.org/doc/libs/release/libs/math/doc/html/math_toolkit/main_intro.html | 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. | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
+
{{librow | Boost.Math | https://www.boost.org/doc/libs/release/libs/math/doc/html/math_toolkit/main_intro.html | 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. | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
{{librow | Boost.Random | https://www.boost.org/doc/libs/release/doc/html/boost_random.html | provides a variety of generators and distributions to produce random numbers having useful properties, such as uniform distribution. | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
+
{{librow | Boost.Random | https://www.boost.org/doc/libs/release/doc/html/boost_random.html | Provides a variety of generators and distributions to produce random numbers having useful properties, such as uniform distribution. | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
{{librow | Boost.SafeNumerics | https://www.boost.org/doc/libs/release/libs/safe_numerics/doc/html/index.html | C++14, header only, Guaranteed Correct Integer Arithmetic, a drop-in replacement for the built-in integer types. | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
+
{{librow | Boost.SafeNumerics | https://www.boost.org/doc/libs/release/libs/safe_numerics/doc/html/index.html | C++14, Guaranteed Correct Integer Arithmetic, a drop-in replacement for the built-in integer types. | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0] | header-only}}
{{librow | cpp-measures | https://github.com/carlomilanesi/cpp-measures/ | A header-only C++11 library to handle physical measures}}
+
{{librow | cpp-measures | https://github.com/carlomilanesi/cpp-measures/ | A C++11 library to handle physical measures | MPL-2.0 | header-only}}
{{librow | G+Smo | https://github.com/gismo/gismo/wiki | cross-platform library for isogeometric analysis}}
+
{{librow | G+Smo | https://github.com/gismo/gismo | A cross-platform library for isogeometric analysis ([https://github.com/gismo/gismo/wiki Doc]) | MPL-2.0 | cmake}}
{{librow | GNU MP bignum C++ interface | https://gmplib.org/manual/C_002b_002b-Class-Interface.html#C_002b_002b-Class-Interface | C++ convenience class interface that offers overloaded functions and operators. The [https://gmplib.org/ 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}}
+
{{librow | GNU MP bignum C++ interface | https://gmplib.org/manual/C_002b_002b-Class-Interface.html#C_002b_002b-Class-Interface | A C++ convenience class interface that offers overloaded functions and operators. The [https://gmplib.org/ 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}}
{{librow | libmpdec++ | https://www.bytereef.org/mpdecimal/index.html | Cross-platform library for correctly-rounded arbitrary precision decimal floating point arithmetic. | BSD-2-Clause | Autoconf, Visual Studio build scripts}}
+
{{librow | libmpdec++ | https://www.bytereef.org/mpdecimal/index.html | A cross-platform C library (with C++ wrappers) for correctly-rounded arbitrary precision decimal floating-point arithmetic. | BSD-2-Clause | make, nmake}}
 
{{librow | NTL | https://libntl.org/ | 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+}}
 
{{librow | NTL | https://libntl.org/ | 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+}}
 
{{librow | PCGrand | https://www.pcg-random.org/ | 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}}
 
{{librow | PCGrand | https://www.pcg-random.org/ | 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}}
 
{{librow | stats++ | https://statsxx.com/ | Advanced, comprehensive statistical software: data collection and preprocessing, statistics, machine learning, and optimization, with open C++ source code.}}
 
{{librow | stats++ | https://statsxx.com/ | Advanced, comprehensive statistical software: data collection and preprocessing, statistics, machine learning, and optimization, with open C++ source code.}}
{{librow | StatsLib | https://github.com/kthohr/stats | A templated, header-only library of statistical distribution functions.}}
+
{{librow | StatsLib | https://github.com/kthohr/stats | A template library of statistical distribution functions. | Apache-2.0 | header-only}}
 
{{libtableend}}
 
{{libtableend}}
  
Line 769: Line 760:
  
 
{{libtablebegin}}
 
{{libtablebegin}}
{{librow | yasmine | https://yasmine.seadex.de/yasmine.html | C++11 UML state machine framework ([https://yasmine.seadex.de/libyasmine_%28documentation%29.html Doc]) ([https://yasmine.seadex.de/Downloads.html Src]) | [https://yasmine.seadex.de/License.html License]}}
+
{{librow | yasmine | https://yasmine.seadex.de/yasmine.html | A C++11 UML state machine framework ([https://yasmine.seadex.de/libyasmine_%28documentation%29.html Doc]) ([https://yasmine.seadex.de/Downloads.html Src]) | [https://yasmine.seadex.de/License.html License]}}
 
{{libtableend}}
 
{{libtableend}}
  
Line 776: Line 767:
  
 
{{libtablebegin}}
 
{{libtablebegin}}
{{librow | BigNumber | https://github.com/limeoats/BigNumber | C++ class for creating and computing arbitrary-length integers | Apache 2.0 | CMake}}
+
{{librow | BigNumber | https://github.com/limeoats/BigNumber | A C++ class for creating and computing arbitrary-length integers | Apache 2.0 | cmake}}
 
{{librow | Boost.Multiprecision | https://www.boost.org/doc/libs/release/libs/multiprecision/doc/html/index.html | 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. | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
 
{{librow | Boost.Multiprecision | https://www.boost.org/doc/libs/release/libs/multiprecision/doc/html/index.html | 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. | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
 
{{librow | cln | https://www.ginac.de/CLN/ | CLN is a library for efficient computations with all kinds of numbers in arbitrary precision. | GPL}}
 
{{librow | cln | https://www.ginac.de/CLN/ | CLN is a library for efficient computations with all kinds of numbers in arbitrary precision. | GPL}}
{{librow | CNL | https://johnmcfarlane.github.io/cnl/ | Compositional Numeric Library - fixed-precision numeric types | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0] | CMake, Conan}}
+
{{librow | CNL | https://johnmcfarlane.github.io/cnl/ | '''C'''ompositional '''N'''umeric '''L'''ibrary - fixed-precision numeric types | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0] | cmake, conan}}
{{librow | Universal Numbers| https://github.com/stillwater-sc/universal | 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}}
+
{{librow | fpm | https://github.com/MikeLankamp/fpm | A C++11 '''f'''ixed-'''p'''oint '''m'''ath library that provides standard library's floating-point functionality on integers. Useful if your target platform lacks an FPU, or deterministic calculations required. | MIT | header-only; cmake}}
 +
{{librow | Universal Numbers| https://github.com/stillwater-sc/universal | 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}}
 
{{libtableend}}
 
{{libtableend}}
  
Line 787: Line 779:
  
 
{{libtablebegin}}
 
{{libtablebegin}}
{{librow | CGAL | https://www.cgal.org/ | Computational geometry algorithms library | GPL-3.0 or commercial | CMake}}
+
{{librow | Boost.Geometry | https://www.boost.org/doc/libs/release/libs/geometry/doc/html/index.html | Boost.Geometry (aka '''G'''eneric '''G'''eometry '''L'''ibrary, GGL), defines concepts, primitives and algorithms for solving geometry problems. Boost.Geometry contains a dimension-agnostic, coordinate-system-agnostic and scalable kernel, based on concepts, meta-functions and tag dispatching. Supported algorithms are: calculation of area, length, perimeter, centroid, convex hull, intersection (clipping), within (point in polygon), distance, envelope (bounding box), simplify, transform, and much more. The library supports high precision arithmetic numbers | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
 +
{{librow | CGAL | https://www.cgal.org/ | Computational geometry algorithms library | GPL-3.0 or commercial | cmake}}
 
{{librow | PCL | https://pointclouds.org/ | Point Cloud library}}
 
{{librow | PCL | https://pointclouds.org/ | Point Cloud library}}
 
{{librow | pmp-library | https://www.pmp-library.org/ | Polygon Mesh Processing Library}}
 
{{librow | pmp-library | https://www.pmp-library.org/ | Polygon Mesh Processing Library}}
Line 798: Line 791:
 
{{libtablebegin}}
 
{{libtablebegin}}
 
{{librow | Boost.Graph | https://www.boost.org/doc/libs/release/libs/graph/doc/index.html | | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
 
{{librow | Boost.Graph | https://www.boost.org/doc/libs/release/libs/graph/doc/index.html | | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
{{librow | CXXGraph | https://github.com/ZigRazor/CXXGraph | A C++17 Header-Only Library for Graph Representation, Manipulation, Partitioning and Algorithms | [https://github.com/ZigRazor/CXXGraph/blob/master/LICENSE AGPL-3.0] | CMake}}
+
{{librow | CXXGraph | https://github.com/ZigRazor/CXXGraph | A C++17 library for graph representation, manipulation, partitioning and algorithms | [https://github.com/ZigRazor/CXXGraph/blob/master/LICENSE AGPL-3.0] | header-only; cmake}}
{{librow | GTpo | https://github.com/cneben/QuickQanava/tree/master/GTpo | A C++14 directed graphs modelling library, part of [https://github.com/cneben/QuickQanava QuickQanava project] | BSD | QMake, CMake}}
+
{{librow | GTpo | https://github.com/cneben/QuickQanava/tree/master/GTpo | A C++14 directed graphs modelling library, part of [https://github.com/cneben/QuickQanava QuickQanava project] | BSD | qmake, cmake}}
 
{{librow | LEMON | https://lemon.cs.elte.hu/trac/lemon | '''L'''ibrary for '''E'''fficient '''M'''odeling and '''O'''ptimization in '''N'''etworks implements common data structures and algorithms focusing on combinatorial optimization, graphs and networks. ([https://lemon.cs.elte.hu/trac/lemon/wiki/Documentation Doc]) | [https://lemon.cs.elte.hu/trac/lemon/wiki/License License]}}
 
{{librow | LEMON | https://lemon.cs.elte.hu/trac/lemon | '''L'''ibrary for '''E'''fficient '''M'''odeling and '''O'''ptimization in '''N'''etworks implements common data structures and algorithms focusing on combinatorial optimization, graphs and networks. ([https://lemon.cs.elte.hu/trac/lemon/wiki/Documentation Doc]) | [https://lemon.cs.elte.hu/trac/lemon/wiki/License License]}}
 
{{librow | NGraph | https://math.nist.gov/~RPozo/ngraph/ngraph_index.html | A simple (Network) Graph library in C++}}
 
{{librow | NGraph | https://math.nist.gov/~RPozo/ngraph/ngraph_index.html | A simple (Network) Graph library in C++}}
{{librow | OGDF | https://ogdf.uos.de/ | Open Graph algorithms and Data structures Framework - is a C++ library for graph algorithms, in particular for automatic graph drawing. | GPL v2 or v3}}
+
{{librow | OGDF | https://ogdf.uos.de/ | '''O'''pen '''G'''raph algorithms and '''D'''ata structures '''F'''ramework - is a C++ library for graph algorithms, in particular for automatic graph drawing. | GPL v2 or v3}}
 
{{libtableend}}
 
{{libtableend}}
  
Line 809: Line 802:
  
 
{{libtablebegin}}
 
{{libtablebegin}}
{{librow | Armadillo | http://arma.sourceforge.net/}}
+
{{librow | Armadillo | http://arma.sourceforge.net/ | A C++ template library for linear algebra and scientific computing featuring wrappers for OpenBLAS, Intel MKL, LAPACK, ATLAS, ARPACK, SuperLU and FFTW. Useful for ML, pattern recognition, DSP, bioinformatics, statistics, finance, etc. | Apache 2.0 | }}
{{librow | Blasw | https://github.com/Mathific/Blasw | C++11 Header-Only BLAS and Parts of LAPACK Wrapper | BSD-3-Clause | CMake}}
+
{{librow | Blasw | https://github.com/Mathific/Blasw | A C++11 BLAS and Parts of LAPACK Wrapper | BSD-3-Clause | header-only; cmake}}
 
{{librow | Blaze | https://bitbucket.org/blaze-lib/blaze}}
 
{{librow | Blaze | https://bitbucket.org/blaze-lib/blaze}}
{{librow | Blitz++ | http://sourceforge.net/projects/blitz/}}
+
{{librow | Blitz++ | https://github.com/blitzpp/blitz | A C++ template class library that provides high-performance dense arrays and vectors, random number generators, and small vectors. | GPL-3.0, LGPL-3.0, Custom | cmake}}
{{librow | Boost.uBLAS | https://www.boost.org/doc/libs/release/libs/numeric/ublas/doc/index.htm | | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
+
{{librow | Boost.uBLAS | https://www.boost.org/doc/libs/release/libs/numeric/ublas/doc/index.htm | A C++ template class library that provides BLAS level 1, 2, 3 functionality for dense, packed and sparse matrices. Uses expression templates. | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
{{librow | C++ Matrix | https://github.com/hosseinmoein/Tiger | High performance and accurate (e.g. edge cases) matrix math library with expression template arithmetic operators | BSD-3-Clause | CMake, Makefile}}
+
{{librow | C++ Matrix | https://github.com/hosseinmoein/Tiger | High performance and accurate (e.g. edge cases) matrix math library with expression template arithmetic operators | BSD-3-Clause | cmake, make}}
{{librow | DecompLib | https://github.com/jmatta1/DecompLib | A header-only C++11 library to decompose a vector into a set of positive definite weighted basis vectors.}}
+
{{librow | DecompLib | https://github.com/jmatta1/DecompLib | A C++11 library to decompose a vector into a set of positive definite weighted basis vectors. | MIT | header-only}}
 
{{librow | Dlib - linear algebra tools | http://dlib.net/linear_algebra.html}}
 
{{librow | Dlib - linear algebra tools | http://dlib.net/linear_algebra.html}}
{{librow | Eigen | https://eigen.tuxfamily.org | A C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms. | MPL2 | CMake, Conan}}
+
{{librow | Eigen | https://eigen.tuxfamily.org | A C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms. | MPL2 | cmake, conan}}
 
{{librow | ETL | https://github.com/wichtounet/etl}}
 
{{librow | ETL | https://github.com/wichtounet/etl}}
 
{{librow | IT++ | http://sourceforge.net/projects/itpp/}}
 
{{librow | IT++ | http://sourceforge.net/projects/itpp/}}
{{librow | Matrix | https://github.com/mlcpp/Matrix | Easy-to-use Scientific Computing library in/for C++ available for Linux and Windows. | MIT | CMake}}
+
{{librow | Matrix | https://github.com/mlcpp/Matrix | Easy-to-use Scientific Computing library in/for C++ available for Linux and Windows. | MIT | cmake}}
{{librow | NumCpp | https://github.com/dpilger26/NumCpp | NumCpp: A templatized header only C++ implementation of the Python NumPy library | MIT | CMake, vcpkg, Conan}}
+
{{librow | NumCpp | https://github.com/dpilger26/NumCpp | A C++ template library implementing the Python's NumPy | MIT | header-only; cmake, vcpkg, conan}}
 
{{librow | PETSc | https://www.mcs.anl.gov/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.}}
 
{{librow | PETSc | https://www.mcs.anl.gov/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.}}
{{librow | Spectra | https://spectralib.org/ | '''Sp'''arse '''E'''igenvalue '''C'''omputation '''T'''oolkit as a '''R'''edesigned '''A'''RPACK is an open-source header-only C++ library for large scale eigenvalue problems, built on top of [https://eigen.tuxfamily.org Eigen] linear algebra library (also open-source and header-only). ([https://github.com/yixuan/spectra/ Src]) | [https://github.com/yixuan/spectra/blob/master/LICENSE MPL-2.0] | CMake, vcpkg}}
+
{{librow | Spectra | https://spectralib.org/ | '''Sp'''arse '''E'''igenvalue '''C'''omputation '''T'''oolkit as a '''R'''edesigned '''A'''RPACK is an open-source C++ library for large scale eigenvalue problems, built on top of [https://eigen.tuxfamily.org Eigen] linear algebra library (also open-source and header-only). ([https://github.com/yixuan/spectra/ Src]) | [https://github.com/yixuan/spectra/blob/master/LICENSE MPL-2.0] | header-only; cmake, vcpkg}}
{{librow | Tense | https://github.com/Mathific/Tense | Fast C++17 Header-Only Expression Template Matrix and Tensor Library | BSD-3-Clause | CMake}}
+
{{librow | Tense | https://github.com/Mathific/Tense | A fast C++17 expression template matrix and tensor library | BSD-3-Clause | header-only; cmake}}
 
{{librow | xtensor | https://xtensor.readthedocs.io/en/latest/ | A C++ library meant for numerical analysis with multi-dimensional array expressions. | BSD}}
 
{{librow | xtensor | https://xtensor.readthedocs.io/en/latest/ | A C++ library meant for numerical analysis with multi-dimensional array expressions. | BSD}}
 
{{libtableend}}
 
{{libtableend}}
Line 832: Line 825:
  
 
{{libtablebegin}}
 
{{libtablebegin}}
{{librow | Dlib | http://dlib.net/ml.html | machine learning tools}}
+
{{librow | Dlib | http://dlib.net/ml.html | A machine learning tools}}
{{librow | FANN | https://leenissen.dk/fann/wp/ | Fast Artificial Neural Network Library}}
+
{{librow | FANN | https://leenissen.dk/fann/wp/ | A '''F'''ast '''A'''rtificial '''N'''eural '''N'''etwork library}}
{{librow | gaenari | https://github.com/greenfish77/gaenari | C++17 based incremental decision tree | Apache-2.0 | CMake}}
+
{{librow | gaenari | https://github.com/greenfish77/gaenari | A C++17 based incremental decision tree | Apache-2.0 | cmake}}
 
{{librow | liblinear | https://www.csie.ntu.edu.tw/~cjlin/liblinear/}}
 
{{librow | liblinear | https://www.csie.ntu.edu.tw/~cjlin/liblinear/}}
{{librow | libtorch | https://pytorch.org/ | C++ frontend to the popular PyTorch Python library (backend is written in C++) | BSD-style | CMake}}
+
{{librow | libtorch | https://pytorch.org/ | A C++ frontend to the popular PyTorch Python library (backend is written in C++) | BSD-style | cmake}}
{{librow | MLPACK | http://mlpack.org | machine learning package}}
+
{{librow | MLPACK | http://mlpack.org | A machine learning package}}
{{librow | Shogun | https://shogun-toolbox.org | large scale machine learning toolbox}}
+
{{librow | Shogun | https://shogun-toolbox.org | A large scale machine learning toolbox}}
 
{{librow | stats++ | https://statsxx.com/}}
 
{{librow | stats++ | https://statsxx.com/}}
{{librow | tensorflow | https://github.com/tensorflow/tensorflow | An Open Source Machine Learning Framework for Everyone; provides stable [https://www.tensorflow.org/api_docs/cc C++ API] and written mainly in C++ | Apache-2.0}}
+
{{librow | tensorflow | https://github.com/tensorflow/tensorflow | An Open Source Machine Learning Framework for Everyone; provides stable [https://www.tensorflow.org/api_docs/cc C++ API] and written mainly in C++ | Apache-2.0 | bazel}}
 
{{libtableend}}
 
{{libtableend}}
  
Line 847: Line 840:
  
 
{{libtablebegin}}
 
{{libtablebegin}}
{{librow | LibBF | https://bellard.org/libbf | An arbitrary precision numerical calculation library developed by Bellard with a sample program that calculates pi to billions of bits}}
+
{{librow | LibBF | https://bellard.org/libbf | An arbitrary precision numerical calculation library developed by Bellard with a sample program that calculates {{math|π}} to billions of bits | MIT}}
 
{{libtableend}}
 
{{libtableend}}
  
Line 854: Line 847:
  
 
{{libtablebegin}}
 
{{libtablebegin}}
{{librow | ceres-solver | https://github.com/ceres-solver/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}}
+
{{librow | ceres-solver | https://github.com/ceres-solver/ceres-solver | An 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}}
 
{{librow | OptimLib | https://github.com/kthohr/optim | A C++11 library of numerical optimization methods for nonlinear functions.}}
 
{{librow | OptimLib | https://github.com/kthohr/optim | A C++11 library of numerical optimization methods for nonlinear functions.}}
 
{{libtableend}}
 
{{libtableend}}
Line 862: Line 855:
  
 
{{libtablebegin}}
 
{{libtablebegin}}
{{librow | CasADi | https://web.casadi.org/ | Symbolic framework for nonlinear optimization and algorithmic differentiation. Supports C++ code generation for symbolic expressions and dynamic connection of compiled generated code. | LGPLv3.0 | CMake}}
+
{{librow | CasADi | https://web.casadi.org/ | A symbolic framework for nonlinear optimization and algorithmic differentiation. Supports C++ code generation for symbolic expressions and dynamic connection of compiled generated code. | LGPLv3.0 | cmake}}
{{librow | ExprTk | https://www.partow.net/programming/exprtk/index.html | The C++ Mathematical Expression Toolkit Library (ExprTk) is a simple to use, header-only, 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. | [https://opensource.org/licenses/MIT MIT]}}
+
{{librow | ExprTk | https://www.partow.net/programming/exprtk/index.html | The C++ Mathematical Expression Toolkit Library (ExprTk) is 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. | [https://opensource.org/licenses/MIT MIT] | header-only}}
{{librow | GiNaC | https://www.ginac.de/ | The library is designed to allow the creation of integrated systems that embed symbolic manipulations together with more established areas of computer science (like computation- intense numeric applications, graphical interfaces, etc.) under one roof. | [https://www.gnu.org/licenses/gpl-3.0.html GPLv3]}}
+
{{librow | GiNaC | https://www.ginac.de/ | A library for creating integrated systems that embed symbolic manipulations together with more established areas of computer science (like computation-intense numeric applications, graphical interfaces, etc.) under one roof. | [https://www.gnu.org/licenses/gpl-3.0.html GPLv3]}}
{{librow | mathiu.cpp | https://github.com/BowenFu/mathiu.cpp | A simple computer algebra system in C++17 | Apache-2.0 | CMake}}
+
{{librow | mathiu.cpp | https://github.com/BowenFu/mathiu.cpp | A simple computer algebra system in C++17 | Apache-2.0 | cmake}}
{{librow | SEMT | https://github.com/st-gille/semt | Compile time symbolic differentiation | [https://github.com/st-gille/semt/blob/master/LICENSE License] | Makefile}}
+
{{librow | SEMT | https://github.com/st-gille/semt | A compile-time symbolic differentiation | [https://github.com/st-gille/semt/blob/master/LICENSE License] | make}}
{{librow | SymbolicC++ | https://issc.uj.ac.za/symbolic/symbolic.html | SymbolicC++ is a general purpose computer algebra system | [https://www.gnu.org/licenses/gpl-2.0.html GPLv2] | Autoconf}}
+
{{librow | SymbolicC++ | https://issc.uj.ac.za/symbolic/symbolic.html | A general-purpose computer algebra system | [https://www.gnu.org/licenses/gpl-2.0.html GPLv2] | autoconf}}
{{librow | SymCC | https://www.s3.eurecom.fr/tools/symbolic_execution/symcc.html | SymCC is a compiler wrapper which embeds symbolic execution into the program during compilation, and an associated run-time support library. In essence, the compiler inserts code that computes symbolic expressions for each value in the program. The actual computation happens through calls to the support library at run time. | [https://github.com/eurecom-s3/symcc/blob/master/LICENSE GPLv3] | CMake}}
+
{{librow | SymCC | https://www.s3.eurecom.fr/tools/symbolic_execution/symcc.html | A compiler wrapper which embeds symbolic execution into the program during compilation, and an associated run-time support library. In essence, the compiler inserts code that computes symbolic expressions for each value in the program. The actual computation happens through calls to the support library at run time. | [https://github.com/eurecom-s3/symcc/blob/master/LICENSE GPLv3] | cmake}}
{{librow | SymEngine | https://symengine.org | SymEngine is a standalone fast C++ symbolic manipulation library. | [https://github.com/symengine/symengine/blob/master/LICENSE MIT] | CMake}}
+
{{librow | SymEngine | https://symengine.org | A standalone fast C++ symbolic manipulation library. | [https://github.com/symengine/symengine/blob/master/LICENSE MIT] | cmake}}
{{librow | ViennaMath | https://viennamath.sourceforge.net | ViennaMath is a symbolic math library that enables a convenient instantiation, manipulation, and evaluation of mathematical expressions at run time and compile time. | [https://github.com/viennamath/viennamath-dev/blob/master/LICENSE MIT] | CMake}}
+
{{librow | ViennaMath | https://viennamath.sourceforge.net | A symbolic math library that enables a convenient instantiation, manipulation, and evaluation of mathematical expressions at run time and compile-time. | [https://github.com/viennamath/viennamath-dev/blob/master/LICENSE MIT] | cmake}}
 
{{libtableend}}
 
{{libtableend}}
  
Line 876: Line 869:
  
 
{{libtablebegin}}
 
{{libtablebegin}}
{{librow | Boost.CallableTraits | https://www.boost.org/doc/libs/release/libs/callable_traits/doc/html/index.html | | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
+
{{librow | Boost.CallableTraits | https://www.boost.org/doc/libs/release/libs/callable_traits/doc/html/index.html | A C++11/17 library for the compile-time inspection and manipulation of all 'callable' types. A successor to Boost.FunctionTypes. | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0] | header-only}}
{{librow | Boost.Hana | https://www.boost.org/doc/libs/release/libs/hana/doc/html/index.html | New metaprogramming library for both types and values | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
+
{{librow | Boost.Hana | https://www.boost.org/doc/libs/release/libs/hana/doc/html/index.html | A new metaprogramming library for both types and values | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
{{librow | Boost.Metaparse | https://www.boost.org/doc/libs/release/doc/html/metaparse.html | Compile-time parser library, producing types, values, and metafunctions from compile-time strings | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
+
{{librow | Boost.Metaparse | https://www.boost.org/doc/libs/release/doc/html/metaparse.html | A compile-time parser library, producing types, values, and metafunctions from compile-time strings | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
{{librow | Boost.Mp11 | https://www.boost.org/doc/libs/release/libs/mp11/doc/html/mp11.html | | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
+
{{librow | Boost.Mp11 | https://www.boost.org/doc/libs/release/libs/mp11/doc/html/mp11.html | A C++11 metaprogramming library for compile-time manipulation of data structures that contain types. | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0] | header-only}}
{{librow | Boost.MPL | https://www.boost.org/doc/libs/release/libs/mpl/doc/index.html | Original metaprogramming library, targeted at C++03, slow | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
+
{{librow | Boost.MPL | https://www.boost.org/doc/libs/release/libs/mpl/doc/index.html | An original metaprogramming library, targeted at C++03, slow | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
{{librow | Boost.PFR | https://www.boost.org/doc/libs/release/doc/html/boost_pfr.html | A header only C++14 library for basic reflection (without macros): visiting members of a user defined type by index, IO streaming. | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
+
{{librow | Boost.PFR | https://www.boost.org/doc/libs/release/doc/html/boost_pfr.html | A C++14 library for basic reflection (without macros): visiting members of a user defined type by index, IO streaming. | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]| header-only}}
 
{{librow | Boost.Proto | https://www.boost.org/doc/libs/release/doc/html/proto.html | A library for building expression template-backed EDSLs | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
 
{{librow | Boost.Proto | https://www.boost.org/doc/libs/release/doc/html/proto.html | A library for building expression template-backed EDSLs | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
 
{{librow | Brigand | https://github.com/edouarda/brigand | Uses eager metafunctions, optimized for best performance}}
 
{{librow | Brigand | https://github.com/edouarda/brigand | Uses eager metafunctions, optimized for best performance}}
{{librow | CoMeta | https://github.com/kfrlib/cometa | Lightweight, header-only C++14 metaprogramming library}}
+
{{librow | CoMeta | https://github.com/kfrlib/cometa | A lightweight C++14 metaprogramming library | | header-only}}
 
{{librow | Meta | https://github.com/ericniebler/meta | Uses eager metafunctions, middle ground between metal and brigand wrt performance}}
 
{{librow | Meta | https://github.com/ericniebler/meta | Uses eager metafunctions, middle ground between metal and brigand wrt performance}}
 
{{librow | Metal | https://github.com/brunocodutra/metal | Uses eager metafunctions, 100% SFINAE-friendly}}
 
{{librow | Metal | https://github.com/brunocodutra/metal | Uses eager metafunctions, 100% SFINAE-friendly}}
 
{{librow | refl-cpp | https://github.com/veselink1/refl-cpp | A modern compile-time reflection library for C++ with support for overloads, templates, attributes and proxies}}
 
{{librow | refl-cpp | https://github.com/veselink1/refl-cpp | A modern compile-time reflection library for C++ with support for overloads, templates, attributes and proxies}}
{{librow | Refureku | https://github.com/jsoysouvanh/Refureku | C++17 runtime reflection and code generation library | MIT | CMake}}
+
{{librow | Refureku | https://github.com/jsoysouvanh/Refureku | A C++17 runtime reflection and code generation library | MIT | cmake}}
 
{{librow | visit_struct | https://github.com/garbageslam/visit_struct | A miniature reflection library, providing structure visitors for C++11/14. Self-contained, 200-400 lines of code depending how you count.}}
 
{{librow | visit_struct | https://github.com/garbageslam/visit_struct | A miniature reflection library, providing structure visitors for C++11/14. Self-contained, 200-400 lines of code depending how you count.}}
 
{{libtableend}}
 
{{libtableend}}
Line 895: Line 888:
  
 
{{libtablebegin}}
 
{{libtablebegin}}
{{librow | HARU | https://libharu.org/}}
+
{{librow | HARU | https://libharu.org/ | A free, cross-platform, open-source library for generating PDF files. ([https://github.com/libharu/libharu/wiki Doc]) ([https://github.com/libharu/libharu Src]) | zlib/libpng | cmake}}
{{librow | JagPDF | http://www.jagpdf.org/}}
+
{{librow | JagPDF | http://www.jagpdf.org/ | A free, open-source library for generating PDF ([http://www.jagpdf.org/doc/index.htm Doc]) | MIT}}
{{librow | PoDoFo | http://podofo.sourceforge.net/}}
+
{{librow | PoDoFo | http://podofo.sourceforge.net/ | A free portable C++17 library to work with the PDF | LGPL-2.0 | cmake, conan, vcpkg}}
 
{{libtableend}}
 
{{libtableend}}
  
Line 903: Line 896:
  
 
{{libtablebegin}}
 
{{libtablebegin}}
{{librow | Bullet | https://pybullet.org/wordpress | Physics simulation for games, visual effects, robotics and reinforcement learning}}
+
{{librow | Bullet | https://pybullet.org/wordpress | A physics simulation for games, visual effects, robotics and reinforcement learning}}
{{librow | HELICS | https://github.com/GMLC-TDC/HELICS | Co-simulation framework for synchronizing time and exchanging data between different types of simulators | BSD 3-Clause "New" or "Revised" | CMake}}
+
{{librow | HELICS | https://github.com/GMLC-TDC/HELICS | A co-simulation framework for synchronizing time and exchanging data between different types of simulators | BSD 3-Clause "New" or "Revised" | cmake}}
{{librow | ProjectCHRONO | https://projectchrono.org | An Open Source Multi-physics Simulation Engine}}
+
{{librow | ProjectCHRONO | https://projectchrono.org | An open-source multi-physics simulation engine}}
{{librow | ReactPhysics3D | https://www.reactphysics3d.com | C++ physics engine library for 3D simulations and game}}
+
{{librow | ReactPhysics3D | https://www.reactphysics3d.com | A C++ physics engine library for 3D simulations and game}}
 
{{libtableend}}
 
{{libtableend}}
  
Line 915: Line 908:
  
 
{{libtablebegin}}
 
{{libtablebegin}}
{{librow | GTSAM | https://gtsam.org | Sensor Fusion, SLAM, SFM, VO, Computer vision ([https://github.com/borglab/gtsam Src]) | BSD | CMake}}
+
{{librow | GTSAM | https://gtsam.org | Sensor Fusion, SLAM, SFM, VO, Computer vision ([https://github.com/borglab/gtsam Src]) | BSD | cmake}}
{{librow | opencv | https://opencv.org/ | Computer vision and perception, Calibration, Feature Matching ([https://github.com/opencv/opencv Src]) ([https://docs.opencv.org/ Doc]) | BSD, Apache 2 | CMake}}
+
{{librow | opencv | https://opencv.org/ | Computer vision and perception, Calibration, Feature Matching ([https://github.com/opencv/opencv Src]) ([https://docs.opencv.org/ Doc]) | BSD, Apache 2 | cmake}}
 
{{libtableend}}
 
{{libtableend}}
  
Line 924: Line 917:
 
{{librow | Boost.Serialization | https://www.boost.org/doc/libs/release/libs/serialization/ | | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
 
{{librow | Boost.Serialization | https://www.boost.org/doc/libs/release/libs/serialization/ | | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0]}}
 
{{librow | C++ XML objects | http://cppxmlobj.sourceforge.net}}
 
{{librow | C++ XML objects | http://cppxmlobj.sourceforge.net}}
{{librow | cereal | https://uscilab.github.io/cereal/ | C++11 serialization | BSD}}
+
{{librow | cereal | https://uscilab.github.io/cereal/ | A C++11 serialization | BSD}}
{{librow | cista | https://cista.rocks | A simple, high-performance, zero-copy C++ serialization & reflection library. ([https://github.com/felixguendling/cista Src]) | MIT | CMake}}
+
{{librow | cista | https://cista.rocks | A simple, high-performance, zero-copy C++ serialization & reflection library. ([https://github.com/felixguendling/cista Src]) | MIT | cmake}}
{{librow | cppcodec | https://github.com/tplgy/cppcodec | Header-only C++11 library to encode/decode base64, base32 and hex with consistent, flexible API | MIT}}
+
{{librow | cppcodec | https://github.com/tplgy/cppcodec | A C++11 library to encode/decode base64, base32 and hex with consistent, flexible API | MIT | header-only}}
{{librow | GPDS | https://github.com/simulton/gpds | General purpose data serializer to serialize objects to and from XML. Uses TinyXML under the hood.}}
+
{{librow | GPDS | https://github.com/simulton/gpds | A general purpose data serializer to serialize objects to and from XML. Uses TinyXML under the hood.}}
{{librow | gSOAP | http://gsoap2.sourceforge.net | accurate XML serialization}}
+
{{librow | gSOAP | http://gsoap2.sourceforge.net | An accurate XML serialization}}
{{librow | iguana | https://github.com/qicosmos/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}}
+
{{librow | iguana | https://github.com/qicosmos/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}}
{{librow | jios | https://github.com/castedo/jios | JSON serialization | MIT | CMake}}
+
{{librow | jios | https://github.com/castedo/jios | JSON serialization | MIT | cmake}}
{{librow | libs11n | https://www.s11n.net}}
+
{{librow | protobuf | https://github.com/google/protobuf/ | Protocol Buffers (a.k.a., protobuf) is Google's language-neutral, platform-neutral, extensible mechanism for serializing structured data, including .proto files compiler. ([https://protobuf.dev/ Doc]) | [https://github.com/protocolbuffers/protobuf/blob/main/LICENSE Custom] | bazel, cmake}}
{{librow | protobuf | https://github.com/google/protobuf/}}
+
{{librow | rpnx-serial | https://github.com/Exaeta/rpnx-serial | A library that can (de)serialize types like {{lc|std::map}}, {{lc|std::vector}}, etc.}}
{{librow | rpnx-serial | https://github.com/Exaeta/rpnx-serial | A library that can (de)serialize types like std::map, std::vector, etc.}}
+
{{librow | Serio | https://github.com/ShahriarSS/serio | A fast lightweight C++ serialization library | BSD-3-Clause | header-only; cmake}}
<!--{{librow | sweet_persist | http://www.sweetsoftware.co.nz/persist_overview.html}}-->
+
{{librow | ThorsSerializer | https://github.com/Loki-Astari/ThorsSerializer | A C++ serialization library for JSON | MIT | make}}
{{librow | Serio | https://github.com/ShahriarSS/serio | Fast Lightweight Header-only C++ Serialization Library | BSD-3-Clause | CMake}}
+
{{librow | ThorsSerializer | https://github.com/Loki-Astari/ThorsSerializer | C++ Serialization library for JSON | MIT | Makefile}}
+
 
{{librow | yaml-cpp | https://github.com/jbeder/yaml-cpp}}
 
{{librow | yaml-cpp | https://github.com/jbeder/yaml-cpp}}
{{librow | YAS | https://github.com/niXman/yas | '''Y'''et '''A'''nother '''S'''erialization. YAS is C++11 library; no third-party libraries dependencies. Archives can be binary, text, JSON | Boost | Header only}}
+
{{librow | YAS | https://github.com/niXman/yas | '''Y'''et '''A'''nother '''S'''erialization is a C++11 library w/o third-party libraries dependencies. Archives can be binary, text, JSON | Boost | header-only}}
 
{{libtableend}}
 
{{libtableend}}
  
Line 946: Line 937:
 
{{libtablebegin}}
 
{{libtablebegin}}
 
{{librow | binn | https://github.com/liteserver/binn | A binary serialization library designed to be compact, fast, and easy to use, itself an implementation of the same name format.}}
 
{{librow | binn | https://github.com/liteserver/binn | A binary serialization library designed to be compact, fast, and easy to use, itself an implementation of the same name format.}}
{{librow | blobify | https://github.com/neobrain/blobify | C++17 header-only, infers the serialized layout from the structure definition alone. | Boost | CMake}}
+
{{librow | blobify | https://github.com/neobrain/blobify | A C++17 library that infers the serialized layout from the structure definition alone. | Boost | header-only; cmake}}
{{librow | bson-cxx | https://github.com/dwight/bson-cxx | C++ implementation in BSON format.}}
+
{{librow | bson-cxx | https://github.com/dwight/bson-cxx | A C++11 implementation of {{enwiki|BSON}} format. | | scons}}
{{librow | fast_ber | https://github.com/Samuel-Tyler/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.}}
+
{{librow | fast_ber | https://github.com/Samuel-Tyler/fast_ber | A C++11 high-performance serialization using BER/DER encoding rules. Encoding layout is defined by ASN.1 schemas.}}
{{librow | UBjsonCpp | https://github.com/WhiZTiM/UbjsonCpp | High-performance UBJson read-write library based on C++14}}
+
{{librow | UBjsonCpp | https://github.com/WhiZTiM/UbjsonCpp | A high-performance UBJson read-write library based on C++14}}
 
{{libtableend}}
 
{{libtableend}}
  
Line 956: Line 947:
 
{{libtablebegin}}
 
{{libtablebegin}}
 
{{librow | Cpp-sort | https://github.com/Morwenn/cpp-sort | A collection of various sorting algorithms in a simple package. | MIT}}
 
{{librow | Cpp-sort | https://github.com/Morwenn/cpp-sort | A collection of various sorting algorithms in a simple package. | MIT}}
{{librow | Indiesort | https://plflib.org/indiesort.htm | 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}}
+
{{librow | Indiesort | https://plflib.org/indiesort.htm | A function template that allows {{lc|std::sort}} (and other random access sort functions) to be used with non-random-access containers. It also increases the performance of sorting large objects in random-access containers and arrays | zlib}}
{{librow | Timsort | https://github.com/gfx/cpp-TimSort | Templated stable sorting function which outperforms quicksort-based algorithms including std::sort, for reversed or semi-sorted data. | MIT}}
+
{{librow | Timsort | https://github.com/gfx/cpp-TimSort | A stable sorting function template which outperforms which outperforms quicksort-based algorithms including {{lc|std::sort}}, for reversed or semi-sorted data. | MIT}}
 
{{libtableend}}
 
{{libtableend}}
  
Line 963: Line 954:
  
 
{{libtablebegin}}
 
{{libtablebegin}}
{{librow | Infoware | https://github.com/ThePhD/infoware | C++ Library for pulling system and hardware information, without hitting the command line. | Creative Commons v1.0 | CMake}}
+
{{librow | Infoware | https://github.com/ThePhD/infoware | A C++ library for pulling system and hardware information, without hitting the command line. | Creative Commons v1.0 | cmake}}
 
{{libtableend}}
 
{{libtableend}}
  
Line 969: Line 960:
  
 
{{libtablebegin}}
 
{{libtablebegin}}
{{librow | cli | https://github.com/daniele77/cli | A cross-platform header-only library for interactive command line interfaces in modern C++. | [https://github.com/daniele77/cli/blob/master/LICENSE BSL-1.0] | make, cmake, nmake, vcpkg}}
+
{{librow | cli | https://github.com/daniele77/cli | A cross-platform library for interactive command line interfaces in modern C++. | [https://github.com/daniele77/cli/blob/master/LICENSE BSL-1.0] | header-only; cmake, make, nmake, vcpkg}}
{{librow | cwidget | https://salsa.debian.org/cwidget-team | high-level terminal interface library for C++, modeled on GTK+ and Qt, but using `curses` as its display layer | GPL v2.0 | make}}
+
{{librow | cwidget | https://salsa.debian.org/cwidget-team | A high-level terminal interface library for C++, modeled on GTK+ and Qt, but using {{enwiki|Curses (programming library)|curses}} as its display layer | GPL v2.0 | make}}
 
{{librow | replxx | https://github.com/AmokHuginnsson/replxx | A readline and libedit replacement that supports UTF-8, syntax highlighting & hints.}}
 
{{librow | replxx | https://github.com/AmokHuginnsson/replxx | A readline and libedit replacement that supports UTF-8, syntax highlighting & hints.}}
 
{{libtableend}}
 
{{libtableend}}
Line 977: Line 968:
  
 
{{libtablebegin}}
 
{{libtablebegin}}
{{librow | bandit | https://banditcpp.github.io/bandit/ | Human-friendly unit testing for C++11. ([https://github.com/banditcpp/bandit Src]) | MIT | CMake}}
+
{{librow | bandit | https://banditcpp.github.io/bandit/ | A human-friendly unit testing for C++11. ([https://github.com/banditcpp/bandit Src]) | MIT | cmake}}
{{librow | Boost.Test | https://www.boost.org/libs/test/ | A C++03/11/14/17 unit testing library, available on a wide range of platforms and compilers. ([https://github.com/boostorg/test Src]) | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0] | CMake, b2}}
+
{{librow | Boost.Test | https://www.boost.org/libs/test/ | A C++03/11/14/17 unit testing library, available on a wide range of platforms and compilers. ([https://github.com/boostorg/test Src]) | [https://www.boost.org/LICENSE_1_0.txt BSL-1.0] | cmake, b2}}
{{librow | Catch2 | https://github.com/catchorg/Catch2 | A modern, C++-native, test framework for unit-tests, TDD and BDD - using C++14, C++17 and later | Boost | CMake}}
+
{{librow | Catch2 | https://github.com/catchorg/Catch2 | A modern, C++-native, test framework for unit-tests, TDD and BDD - using C++14, C++17 and later | Boost | cmake}}
{{librow | cppunit | http://sourceforge.net/projects/cppunit/ | C++ port of the famous JUnit framework for unit testing | LGPL-2.1 | Makefile}}
+
{{librow | cppunit | http://sourceforge.net/projects/cppunit/ | A C++ port of the famous JUnit framework for unit testing | LGPL-2.1 | make}}
{{librow | CUTE | https://github.com/PeterSommerlad/CUTE | C++ Unit Testing Easier (no reliance on static initialization for registration), integrated into [https://cevelop.com Cevelop] for TDD | MIT | Header only}}
+
{{librow | CUTE | https://github.com/PeterSommerlad/CUTE | A '''C'''++ '''U'''nit '''T'''esting '''E'''asier (no reliance on static initialization for registration), integrated into [https://cevelop.com Cevelop] for TDD | MIT | header-only}}
{{librow | doctest | https://github.com/onqtam/doctest | The lightest feature-rich C++ single-header testing framework for unit tests and TDD | MIT | CMake}}
+
{{librow | doctest | https://github.com/onqtam/doctest | A lightest feature-rich C++ single-header testing framework for unit tests and TDD | MIT | header-only; cmake}}
{{librow | ELFspy | https://github.com/mollismerx/elfspy | Testing in isolation with fakes and spies - Linux only | GPL-2.0 | Makefile}}
+
{{librow | ELFspy | https://github.com/mollismerx/elfspy | Testing in isolation with fakes and spies - Linux only | GPL-2.0 | make}}
{{librow | faker-cxx | https://github.com/cieslarmichal/faker-cxx | Modern C++20 Faker library for generating testing data. | MIT | CMake}}
+
{{librow | faker-cxx | https://github.com/cieslarmichal/faker-cxx | A modern C++20 Faker library for generating testing data. | MIT | cmake}}
{{librow | Google Test | https://google.github.io/googletest | Google Testing and Mocking Framework. ([https://github.com/google/googletest Src]) | BSD 3-Clause "New" or "Revised" | Bazel, CMake}}
+
{{librow | Google Test | https://google.github.io/googletest | Google Testing and Mocking Framework. ([https://github.com/google/googletest Src]) | BSD 3-Clause "New" or "Revised" | bazel, cmake}}
{{librow | lest | https://github.com/martinmoene/lest | A modern, C++11-native, single-file header-only, tiny framework for unit-tests, TDD and BDD (includes C++98 variant). | Boost | CMake}}
+
{{librow | lest | https://github.com/martinmoene/lest | A C++11-native tiny framework for unit-tests, TDD and BDD (includes C++98 variant). | Boost | header-only; cmake}}
{{librow | liblittletest | https://github.com/etr/liblittletest | Portable, one file header-only testing framework | LGPL-2.1 | Header only}}
+
{{librow | liblittletest | https://github.com/etr/liblittletest | A portable testing framework | LGPL-2.1 | header-only}}
{{librow | snitch | https://github.com/cschreib/snitch | Lightweight C++20 testing framework. | Boost | CMake}}
+
{{librow | snitch | https://github.com/cschreib/snitch | A lightweight C++20 testing framework. | Boost | cmake}}
{{librow | tunit | https://github.com/gammasoft71/tunit | Modern c++17 unit testing library on Windows, macOS, Linux, iOS, and Android. [https://gammasoft71.wixsite.com/tunit Office site] | MIT | CMake}}
+
{{librow | tunit | https://github.com/gammasoft71/tunit | A modern C++17 unit testing library on Windows, macOS, Linux, iOS, and Android. [https://gammasoft71.wixsite.com/tunit Office site] | MIT | cmake}}
 
{{libtableend}}
 
{{libtableend}}
  
Line 998: Line 989:
  
 
{{libtablebegin}}
 
{{libtablebegin}}
{{librow | strsuite | https://github.com/Loara/StringSuite | A C++20 library to manage strings with different encodings | LGPL3.0 | CMake}}
+
{{librow | strsuite | https://github.com/Loara/StringSuite | A C++20 library to manage strings with different encodings | LGPL3.0 | cmake}}
{{librow | uchardet | https://github.com/BYVoid/uchardet | The ability to guess string encoding is basically the same as the uchardet function in Python. | MOZILLA PUBLIC LICENSE v1.1 | CMake}}
+
{{librow | uchardet | https://github.com/BYVoid/uchardet | Guesses a string encoding, basically the same as the {{tt|uchardet}} function in Python. | MOZILLA PUBLIC LICENSE v1.1 | cmake}}
{{librow | win-iconv | https://github.com/win-iconv/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}}
+
{{librow | win-iconv | https://github.com/win-iconv/win-iconv | A character set encoding conversion library for Linux and Mac. The Windows implementation of {{tt|iconv}} is based on the Win32 Character Set Conversion API. | public domain | cmake}}
 
{{libtableend}}
 
{{libtableend}}
  
Line 1,014: Line 1,005:
  
 
{{libtablebegin}}
 
{{libtablebegin}}
{{librow | coformat | https://gitlab.com/44100Hz/coformat | A companion C++ library for {{lc|std::format}} to enable text colorization and styling. | public domain | header only}}
+
{{librow | coformat | https://gitlab.com/44100Hz/coformat | A companion C++ library for {{lc|std::format}} to enable text colorization and styling. | public domain | header-only}}
{{librow | fmt | https://github.com/fmtlib/fmt | Open-source formatting library providing a fast and safe alternative to C stdio and C++ iostreams. Prototype for C++20 {{lc|std::format}} family. | [https://github.com/fmtlib/fmt/blob/master/LICENSE.rst License] | CMake, Conan}}
+
{{librow | fmt | https://github.com/fmtlib/fmt | An open-source formatting library providing a fast and safe alternative to C stdio and C++ {{lc|std::iostream|iostream}}s. Prototype for C++20 {{lc|std::format}} family. | [https://github.com/fmtlib/fmt/blob/master/LICENSE.rst License] | cmake, conan}}
 
{{libtableend}}
 
{{libtableend}}
  
Line 1,022: Line 1,013:
  
 
{{libtablebegin}}
 
{{libtablebegin}}
{{librow | BNFlite | https://github.com/r35382/bnflite | A single file lightweight grammar parser library | MIT | Header only}}
+
{{librow | BNFlite | https://github.com/r35382/bnflite | A lightweight grammar parser library | MIT | header-only}}
{{librow | PEGTL | https://github.com/taocpp/PEGTL | Parsing Expression Grammar Template Library | Boost | Header only}}
+
{{librow | Boost.Spirit | http://boost-spirit.com/home/ | A set of C++17 libraries for parsing and output generation implemented as '''D'''omain '''S'''pecific '''E'''mbedded '''L'''anguages (DSEL) using Expression templates and Template Meta-Programming. The Spirit libraries enable a target grammar to be written exclusively in C++. ([https://github.com/boostorg/spirit/ Src]) ([http://www.boost.org/doc/libs/develop/libs/spirit/doc/x3/html/index.html Doc]) | [https://github.com/foonathan/lexy/blob/main/LICENSE BSL-1.0] | cmake}}
 +
{{librow | CTRE | https://github.com/hanickadot/compile-time-regular-expressions | Fast '''C'''ompile-'''T'''ime '''R'''egular '''E'''xpressions with support for matching/searching/capturing during compile-time or runtime. | Apache-2.0 | header-only, cmake, vcpkg}}
 +
{{librow | lexy | https://github.com/foonathan/lexy | A C++17 parser combinator library which allows you to write a parser by specifying it in a convenient C++ DSL with all the flexibility and control of a handwritten parser. Supports UTF-8/16/32. ([https://lexy.foonathan.net/ Doc]) | [https://github.com/foonathan/lexy/blob/main/LICENSE BSL-1.0] | cmake}}
 +
{{librow | PEGTL | https://github.com/taocpp/PEGTL | '''P'''arsing '''E'''xpression '''G'''rammar '''T'''emplate '''L'''ibrary is a zero-dependency C++17 header-only parser combinator library for creating parsers according to a {{enwiki|Parsing Expression Grammar}} (PEG). | Boost | header-only}}
 
{{libtableend}}
 
{{libtableend}}
  
Line 1,030: Line 1,024:
  
 
{{libtablebegin}}
 
{{libtablebegin}}
{{librow | clucene | http://clucene.sourceforge.net | CLucene is a cross platform, full-featured, open-source indexing and searching engine/API. ([https://sourceforge.net/p/clucene/code/ci/master/tree/ Src]) ([http://clucene.sourceforge.net/doc/html/ Doc]) | LGPL v2.1 | CMake}}
+
{{librow | clucene | http://clucene.sourceforge.net | The CLucene is a cross-platform, full-featured, open-source indexing and searching engine/API. ([https://sourceforge.net/p/clucene/code/ci/master/tree/ Src]) ([http://clucene.sourceforge.net/doc/html/ Doc]) | LGPL v2.1 | cmake}}
{{librow | Step20 | https://github.com/storm-ptr/step20 | Ukkonen's online algorithm for constructing {{enwiki|Suffix tree}}, Manber's algorithm for constructing {{enwiki|Suffix array}}. | MIT | Header only}}
+
{{librow | Step20 | https://github.com/storm-ptr/step20 | Ukkonen's online algorithm for constructing {{enwiki|Suffix tree}}, Manber's algorithm for constructing {{enwiki|Suffix array}}. | MIT | header-only}}
{{librow | xapian | https://xapian.org/ | Open-source search engine with indexing facilities ([https://xapian.org/download Src]) ([https://xapian.org/docs/ Doc]) | GPL v2+| make}}
+
{{librow | xapian | https://xapian.org/ | An open-source search engine with indexing facilities ([https://xapian.org/download Src]) ([https://xapian.org/docs/ Doc]) | GPL v2+| make}}
 
{{libtableend}}
 
{{libtableend}}
  
Line 1,039: Line 1,033:
  
 
{{libtablebegin}}
 
{{libtablebegin}}
{{librow | inja | https://github.com/pantor/inja | Header-only Template Engine for C++17. | MIT | CMake, Conan, vcpkg, etc.}}
+
{{librow | inja | https://github.com/pantor/inja | A template engine for C++17. | MIT | header-only; cmake, conan, vcpkg, etc.}}
{{librow | Jinja2C++ | https://github.com/jinja2cpp/Jinja2Cpp | C++14/17 implementation of Jinja2 templates | MPL-2.0 | CMake, Conan}}
+
{{librow | Jinja2C++ | https://github.com/jinja2cpp/Jinja2Cpp | A C++14/17 implementation of Jinja2 templates | MPL-2.0 | cmake, conan}}
 
{{libtableend}}
 
{{libtableend}}
  
Line 1,046: Line 1,040:
  
 
{{libtablebegin}}
 
{{libtablebegin}}
{{librow | coo-semver | https://github.com/easz/cpp-semver | The C++ operation library for semantic version numbers.}}
+
{{librow | coo-semver | https://github.com/easz/cpp-semver | A C++ operation library for semantic version numbers.}}
{{librow | LibGit2 | https://libgit2.org/ | Version Control System Git's core library.}}
+
{{librow | LibGit2 | https://libgit2.org/ | A version control system Git's core library.}}
 
{{libtableend}}
 
{{libtableend}}
  
Line 1,058: Line 1,052:
 
{{librow | libVLC | https://wiki.videolan.org/LibVLC}}
 
{{librow | libVLC | https://wiki.videolan.org/LibVLC}}
 
{{librow | mjpegtools | http://mjpeg.sourceforge.net/}}
 
{{librow | mjpegtools | http://mjpeg.sourceforge.net/}}
{{librow | OpenH264 | https://www.openh264.org/ | Multi-platform, multi-architecture, open source library which supports H.264 encoding and decoding ([https://github.com/cisco/openh264 Src]) | [https://github.com/cisco/openh264/blob/master/LICENSE BSD-2 Clause] | Meson}}
+
{{librow | OpenH264 | https://www.openh264.org/ | A multi-platform, multi-architecture, open-source library which supports H.264 encoding and decoding ([https://github.com/cisco/openh264 Src]) | [https://github.com/cisco/openh264/blob/master/LICENSE BSD-2 Clause] | meson}}
 
{{libtableend}}
 
{{libtableend}}
  
Line 1,067: Line 1,061:
 
{{librow | cpp-jwt | https://github.com/arun11299/cpp-jwt}}
 
{{librow | cpp-jwt | https://github.com/arun11299/cpp-jwt}}
 
{{librow | Drogon | https://github.com/an-tao/drogon | A C++14/17 based HTTP web application framework running on Linux/macOS/Unix/Windows.}}
 
{{librow | Drogon | https://github.com/an-tao/drogon | A C++14/17 based HTTP web application framework running on Linux/macOS/Unix/Windows.}}
{{librow | ffead-cpp | https://github.com/sumeetchhetri/ffead-cpp | Framework for Enterprise Application Development in c++, HTTP1/HTTP2/HTTP3 compliant, Supports multiple server backends | Apache 2.0 | CMake}}
+
{{librow | ffead-cpp | https://github.com/sumeetchhetri/ffead-cpp | A '''f'''ramework '''f'''or '''E'''nterprise '''A'''pplication '''D'''evelopment in '''C'''++, HTTP1/HTTP2/HTTP3 compliant, supports multiple server backends | Apache 2.0 | cmake}}
{{librow | libhttpserver | https://github.com/etr/libhttpserver | libhttpserver is a C++ library for building high performance RESTful web servers. libhttpserver is built upon libmicrohttpd to provide a simple API for developers to create HTTP services in C++. | LGPL-v2.1 | autotools}}
+
{{librow | libhttpserver | https://github.com/etr/libhttpserver | A C++ library for building high performance RESTful web servers. Built upon {{tt|libmicrohttpd}} to provide a simple API for developers to create HTTP services in C++. | LGPL-v2.1 | autotools}}
 
{{librow | libkcddb | https://www.kde.org/}}
 
{{librow | libkcddb | https://www.kde.org/}}
 
{{librow | liblastfm | https://www.last.fm/}}
 
{{librow | liblastfm | https://www.last.fm/}}
 
{{librow | libmusicbrainz5 | https://musicbrainz.org/doc/libmusicbrainz}}
 
{{librow | libmusicbrainz5 | https://musicbrainz.org/doc/libmusicbrainz}}
 
{{librow | libnavajo | https://github.com/titi38/libnavajo}}
 
{{librow | libnavajo | https://github.com/titi38/libnavajo}}
{{librow | Molybden | https://teamdev.com/molybden | An SDK for building cross-platform C++ desktop apps with HTML/CSS/JS GUI. ([https://docs.molybden.io/ Doc]) ([https://api.molybden.io/preview/files.html Src]) | [https://docs.molybden.io/faq/ License] | [https://docs.molybden.io/quick-start/ npm] }}
+
{{librow | Molybden | https://teamdev.com/molybden | An SDK for building cross-platform C++ desktop apps with HTML/CSS/JS GUI. ([https://docs.molybden.io/ Doc]) ([https://api.molybden.io/preview/files.html Src]) | [https://docs.molybden.io/faq/ License] | [https://docs.molybden.io/quick-start/ npm]}}
{{librow | oatpp | https://oatpp.io/ | Light and powerful web-framework for IoT and high-performance web-services. Zero-dependency and easy-portable.}}
+
{{librow | oatpp | https://oatpp.io/ | A powerful portable lightweight and zero-dependency web-framework for IoT and high-performance web-services.}}
 
{{librow | QtWebApp | http://stefanfrings.de/qtwebapp/index-en.html | HTTP(s) Server in C++ inspired by Java Servlets}}
 
{{librow | QtWebApp | http://stefanfrings.de/qtwebapp/index-en.html | HTTP(s) Server in C++ inspired by Java Servlets}}
{{librow | Tufão | https://github.com/vinipsmaker/tufao}}
+
{{librow | Tufão | https://github.com/vinipsmaker/tufao | An asynchronous web framework for C++11 built on top of Qt ([http://vinipsmaker.github.com/tufao/ref/ Doc]) | LGPL-2.1, GPL-2.0 | cmake}}
{{librow | uri-template | https://github.com/TinkoffCreditSystems/uri-template | URI Templates expansion and reverse-matching for C++ | Apache 2.0 | CMake}}
+
{{librow | uri-template | https://github.com/TinkoffCreditSystems/uri-template | URI Templates expansion and reverse-matching for C++ | Apache 2.0 | cmake}}
{{librow | userver | https://github.com/userver-framework/userver | The C++ Asynchronous Framework | Apache 2.0 | CMake}}
+
{{librow | userver | https://github.com/userver-framework/userver | The C++ Asynchronous Framework | Apache 2.0 | cmake}}
{{librow | Wt | https://www.webtoolkit.eu/wt/ | Widgets and building blocks to build web apps, built-in security, PDF rendering, 2D and 3D painting, ORM, charting, authentication frameworks. ([https://www.webtoolkit.eu/wt/doc/reference/html/index.html Doc]) ([https://www.webtoolkit.eu/wt/download Src]) | GNU GPL or Commercial}}
+
{{librow | Wt | https://www.webtoolkit.eu/wt/ | Widgets and building blocks for web apps, built-in security, PDF rendering, 2D and 3D painting, ORM, charting, authentication frameworks. ([https://www.webtoolkit.eu/wt/doc/reference/html/index.html Doc]) ([https://www.webtoolkit.eu/wt/download Src]) | GNU GPL or Commercial}}
 
{{libtableend}}
 
{{libtableend}}
  
Line 1,093: Line 1,087:
 
{{elink|num=3|[https://github.com/fffaraz/awesome-cpp A curated list of (awesome) C++ and C libraries] &mdash; at GitHub}}
 
{{elink|num=3|[https://github.com/fffaraz/awesome-cpp A curated list of (awesome) C++ and C libraries] &mdash; at GitHub}}
 
{{elink|num=4|1=[https://www.boost.org/doc/libs/?view=condensed Boost C++ libraries] &mdash; at Boost.org}}
 
{{elink|num=4|1=[https://www.boost.org/doc/libs/?view=condensed Boost C++ libraries] &mdash; at Boost.org}}
 +
{{elink|num=5|1=[https://trilarion.github.io/opensourcegames/games/languages.html#c++ A huge list of C++ open-source games and frameworks] &mdash; at GitHub.io}}
 
{{elink end}}
 
{{elink end}}
  
 
{{langlinks|de|es|fr|it|ja|pt|ru|zh}}
 
{{langlinks|de|es|fr|it|ja|pt|ru|zh}}

Latest revision as of 13:50, 25 October 2024

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

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

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

Libraries: Table Of Contents

Libraries:


Contents

[edit] Package managers

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

[edit] Libraries

[edit] Audio

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

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

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

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

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

[edit] Benchmarking

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

[edit] Communication

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

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

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

[edit] Concurrency

Library Description License Configuration
AdaptiveCpp Provides a SYCL and C++ parallel STL offloading compiler and runtime system for CPUs and GPUs from NVIDIA, AMD, Intel BSD-2-Clause cmake
Asyncpp An asynchronous c++ library that provides various concurrent operations MIT cmake
BlockingCollection C++11 thread safe, multi-producer, multi-consumer blocking queue, stack & priority queue class GPL-3.0 header-only
Boost.Atomic Provides atomic data types and operations on these data types, as well as memory ordering constraints required for coordinating multiple threads through atomic variables. BSL-1.0
Boost.Compute A GPU/parallel-computing library for C++ based on OpenCL. BSL-1.0 cmake
Boost.Context A C++11 library that provides a cooperative multitasking abstraction on a single thread. BSL-1.0
Boost.Interprocess Simplifies the use of interprocess communication and synchronization mechanisms and offers a wide range of them: shared memory, memory-mapped files, semaphores, mutexes, condition variables and upgradable mutex types, named versions of the synchronization objects, file locking, message queues. BSL-1.0
Boost.Lockfree Provides non-blocking (aka lock-free) concurrent data structures: a queue, a stack, and a ringbuffer (spsc_queue). BSL-1.0
Boost.MPI A C++-friendly interface to the standard Message Passing Interface BSL-1.0
Boost.Thread Enables the use of multiple threads of execution with shared data and means for synchronizing data between the threads. BSL-1.0
concurrencpp Modern concurrency for C++. Tasks, executors, timers and C++20 coroutines. MIT cmake
dispenso High-performance concurrency for C++. parallel_for, Futures, pipelines, timers, timed/periodic tasks, and concurrent data structures. MIT cmake
Highway Provides performance-portable, length-agnostic SIMD/vector intrinsics. Supports: SSE3, SSE4, AVX*, NEON, SVE*, WASM SIMD, RISC-V, POWER. (Doc) Apache-2.0 cmake
HPX A general purpose C++ runtime system for parallel and distributed applications of any scale (Doc) BSL-1.0 cmake, vcpkg
Intel TBB Intel® TBB is a cross-platform C++ library for shared memory parallel programming and heterogeneous computing. The library provides: generic parallel algorithms, concurrent containers, a scalable memory allocator, work-stealing task scheduler, and low-level synchronization primitives. (Src) (Doc) Apache-2.0 or Commercial cmake, make
KOKKOS A programming model for writing performance portable HPC applications, using CUDA, HIP, SYCL, HPX, OpenMP and C++ threads as backends (Doc) Custom cmake, make
libopenmpi The Open MPI Project is an open-source Message Passing Interface implementation 3-clause BSD
libsimdpp A portable zero-overhead C++ low level SIMD library. Boost header-only; cmake
MPL A C++-17-friendly interface to the standard Message Passing Interface BSD 3-Clause "New" or "Revised" header-only; cmake
MutexGear A mutex-only synchronization (wheel, rwlock, work queues) C/C++11 library The MutexGear Library configure, msvc, make
OpenMP The OpenMP API specification for parallel programming
PoCL A portable retargetable open-source (LLVM based) implementation of the OpenCL standard. (Src) (Doc) MIT cmake
RaftLib A C++17 stream-like concurrent actors that enable parallel data-flow computations Apache-2.0 cmake
SObjectizer A small cross-platform framework for concurrent and event-driven applications in C++ by using actor and publish-subscribe models. BSD-3-Clause cmake, vcpkg, conan
stdgpu Efficient STL-like Data Structures on the GPU Apache 2.0 cmake
subprocess C++17/20 cross-platform library for running subprocesses MIT cmake, teaport
Taskflow Parallel Task Programming in Modern C++ TASKFLOW MIT cmake
task-thread-pool Fast and lightweight thread pool for C++11 and newer. BSD-2-Clause or MIT or BSL-1.0 cmake, vcpkg, single header
ThreadPool A simple light-weight thread pool BSD-3-Clause header-only; cmake, make
thread_pool A modern, fast, lightweight thread pool MIT cmake
Thrust STL-like parallel algorithms and data-structures on top of CUDA, TBB, or OpenMP Apache v2.0, Boost v1.0. cmake
TimerAlarm Timers and Alarms based on threads. BSD-3-Clause header-only; cmake, make
VexCL A C++ vector expression template library for OpenCL, CUDA, OpenMP MIT cmake
ViennaCL Linear algebra and algorithms with OpenMP, CUDA, and OpenCL backends. (Src) (Doc) Custom cmake
Xenium A C++17 library that provides various concurrent data structures and reclamation schemes. MIT header-only; cmake

[edit] 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
figcone Read JSON, YAML, TOML, XML or INI configuration by declaring a struct MS-PL cmake
gconfmm A cross-platform (official) C++ interface for the popular GUI library GTK, including typesafe callbacks, and a comprehensive set of widgets that are easily extensible via inheritance. gtkmm uses STL, including strings, containers, and iterators. UTF8 is supported. (Src) (Doc) LGPLv2.1 autotools, meson, make
libconfig A simple cross-platform C/C++ library for processing structured configuration files ("*.cfg") (Src) (Doc) LGPL 2.1 autotools, cmake, make
libconfini An cross-platform INI parser written in C (Doc) GPL-3.0 autotools, make
uconfig A lightweight C++17 configuration library Apache 2.0 header-only; cmake

Command Line
Library Description License Configuration
Argh! A minimalist argument handler. BSD 3-Clause header-only; cmake, vcpkg
argparse (hbristow) A slimline C++ class for parsing command-line arguments, with an interface similar to python's class of the same name. BSD
argparse (morrisfranken) A lightweight library for parsing command line arguments in an elegant manner. Apache 2 header-only; cmake
argparse (p-ranav) A command-line argument parser for C++17 MIT header-only; cmake, vcpkg
args A simple C++ argument parser library. MIT header-only; cmake, conan, meson, vcpkg
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 C++11 command line parser that provides a rich feature set with a simple and intuitive interface. BSD-3-Clause header-only; cmake, meson, vcpkg
clipp Powerful & Expressive Argument Parsing for Modern C++. MIT header-only; cmake, vcpkg
cmd_line_parser Command line parser for C++17. MIT header-only; cmake
cmdlime A C++17 library for command-line parsing that provides a concise, declarative interface with support for sub-commands, validators, and the ability to choose either the GNU, POSIX, or X11 command-line options format. MS-PL cmake
cxxopts A lightweight C++11/C++17 command-line arguments parser, supporting the standard GNU style syntax for options. MIT header-only; bazel, cmake
fire-hpp Create fully functional CLIs using function signatures. BSL-1.0 header-only; cmake
flags Simple, extensible C++17 argument parser. Unlicense header-only; cmake
gflags A library that implements command-line 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
structopt Parse command line arguments by defining a struct. MIT header-only; cmake
tclap A simple C++ template 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 A C++ implementation of the HOCON format developed by Pupplet.

JSON
Library Description License Configuration
ArduinoJson C++98/11/14/17 JSON library for Arduino, IoT and embedded C++ MIT cmake
Boost.JSON The JSON parsing, serialization, and DOM in C++11/17 BSL-1.0
cajun-jsonapi A C++ API for the JSON with an emphasis on an intuitive, concise interface that mimic standard C++ as closely as possible. make
DAW JSON Link A C++17 library providing 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
Glaze One of the fastest JSON library (C++23) with direct memory serialization. Also supports BEVE and CSV. MIT cmake, conan, build2, vcpkg
jansson A C library for encoding, decoding and manipulating JSON data with UTF-8 support MIT cmake, make
jeayeson A very sane C++14 JSON library BSD-3 header-only
jios JSON Input Output Streams MIT cmake
JOST
json Niels Lohmann JSON for C++11, featuring intuitive syntax MIT header-only; bazel, cmake, meson
JSON Voorhees Killer JSON for C++11 (Doc) Apache-2.0 cmake
JSON++
json11 A tiny JSON library for C++11, providing JSON parsing and serialization. MIT cmake
JsonBox A C++ library used to read and write JSON with ease and speed. MIT cmake
jsoncons A library for JSON and JSON-like data formats, with JSON Pointer, JSON Patch, JSONPath, CSV, MessagePack, CBOR, BSON, UBJSON. Custom header-only
jsoncpp A library that allows manipulating JSON values, including serialization and de-serialization, while preserving comments. MIT cmake, conan, vcpkg
libjson
minijson A C++ DOM-less and allocation-free JSON parsing and serialization Custom cmake
Neyson Lightweight A C++11 JSON Library BSD-3-Clause cmake
nosjob A C++98 library for generating and consuming JSON data MIT make
qjson
rapidjson A fast JSON parser/generator for C++ with both SAX/DOM style API, supports UTF-8/16/32, optionally uses SIMD. (Doc) Custom header-only; cmake, vcpkg
simdjson Parse gigabytes of JSON per second taking advantage of modern micro-architectures and parallelizing with SIMD (Doc) (Kino) Apache-2.0 cmake, vcpkg
struct_mapping Maps JSON to and from a C++ structure MIT cmake
swxJson The most convenient C++JSON library currently in use. Read and write complex structures at any level with just one function call. The performance is approximately half that of RapidJSON. MIT make
ThorsSerializer JSON/BSON/YAML Input Output Streams MIT make
ujson µjson is a small, C++11, UTF-8, JSON library cmake
yyjson A high performance JSON library written in ANSI C MIT cmake

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. AGPL-3.0 make
GPDS A general purpose data serializer to serialize objects to and from XML. Uses TinyXML under the hood.
gSOAP XML data bindings
libxml++ The libxml++ is a C++ wrapper for the libxml XML parser C library. (Doc) LGPL-2
pugixml A 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 A YAML parser and emitter in C++ MIT cmake

[edit] 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. (Src) BSL-1.0
Boost.Container A library that implements several well-known containers, including STL-like containers, as well as recursive containers, and new useful containers: flat_map, flat_set, flat_multimap, flat_multiset, stable_vector, static_vector, small_vector, devector. (Src) BSL-1.0 header-only
Boost.Fusion A library for working with heterogeneous collections of tuples. Provides a set of containers (vector, list, set and map), along with transformed presentation of their underlying data, a.k.a views." (Src) BSL-1.0
Boost.Heap An implementation of priority queues with more functionality and different performance characteristics, than STL has. (Src) BSL-1.0
Boost.Pointer Container Provides containers for holding heap-allocated objects in an exception-safe manner and with minimal overhead. (Src) BSL-1.0
Boost.Tuple Implements pre-C++11 n-tuple (a fixed size collection of elements) (Src) BSL-1.0
Boost.Variant Implements pre-C++17 variant (a safe, generic, stack-based discriminated union container) (Src) BSL-1.0
C++ Allocators STL conformant allocators for fixed size static and stack based memory + another conformant allocator that allows custom boundary allocation BSD-3-Clause cmake, make
cpp-btree B-tree containers make better use of the CPU cache: btree_map, btree_set, btree_multimap, btree_multiset. (Src) Apache-2.0 header-only; cmake
DataFrame C++ DataFrame for statistical, Financial, and ML analysis -- in modern C++ using native types and continuous memory storage BSD-3-Clause cmake, make, 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 C++14 constexpr perfect-hashing-based immutable sets, maps, and algorithms. Apache-2.0 header-only; cmake
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 A std::list implementation which sacrifices range-splicing for cache-friendliness, yielding faster insertion, erasure and iteration. C++98/03/11/14/17/20/23/26/etc-compatible. (Src) (Doc) zlib
plf::reorderase An extension and optimization of the "swap-and-pop"/"move-and-pop" idiom for random access containers to increase random_access container erase performance, when post-erasure order is unimportant. Covers single, range and std::erase_if-style erasures. C++98/11/14/etc-compatible. (Src) zlib
plf::queue A 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 A 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 lite implementation of Arthur O'Dwyer's ring_span, a.k.a. circular buffer view. C++98- compatible. BSL-1.0 header-only; 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

[edit] Cryptography

Library Description License Configuration
Botan A cryptography Toolkit. (Src) BSD 2-Clause "Simplified" make
crypto++ A free C++ Class Library of Cryptographic Schemes. (Src) Boost make
gnutls A secure communications library implementing the SSL, TLS and DTLS protocols and technologies around them. (Src) LGPL-2.1 make
openssl A robust, commercial-grade, full-featured toolkit for general-purpose cryptography and secure communication. (Src) Apache-2.0 make
TomCrypt A fairly comprehensive, modular and portable cryptographic toolkit that provides developers with a vast array of well known published block ciphers, one-way hash functions, chaining modes, pseudo-random number generators, public key cryptography and a plethora of other routines. (Src) public domain cmake, make

[edit] Databases

Library Description License Configuration
Boost::MySQL MySQL client library BSL-1.0
cpp-redis C++11 Lightweight Redis client: async, thread-safe, no dependency, pipelining, multi-platform. (Doc) MIT cmake
DTL Makes ODBC record-sets look just like an STL container (Src) (Doc)
EasyQtSql A lightweight C++11 (Qt based) library for quick and easy SQL querying MIT header-only; qmake
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. (Doc) BSD-3 cmake
libpqxx The C++ connector for PostgreSQL (Src) BSD-3 cmake, make
lmdb++ C++11 wrapper for the LMDB embedded B+ tree database library. Unlicense make
mongocxx An official C++11 driver library for MongoDB (Doc). It offers optimized APIs for CRUD operations, indexing, and aggregation. Supporting BSON and featuring connection pooling and authentication mechanisms, it provides high-performance and scalable solutions for building C++ applications that leverage MongoDB. Apache 2.0 cmake
mysql++ MySQL DB and tools
nanodbc A small, cross-platform, C++14 wrapper for the native C ODBC API MIT cmake
ODB 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 A C++ template based database library for Oracle DB, ODBC and DB2-CLI. (Src)
Pgfe The PostgreSQL client (FrontEnd) API in modern C++ Zlib cmake
QTL A friendly and lightweight C++ database library for MySQL, SQLite and ODBC. Apache-2.0 make
QUINCE QUeries IN C++ Expressions (ORM+EDSL) Boost
QxOrm An 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 A lightweight C++17 client library for executing Redis commands. MIT header-only; cmake
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 Apache-2.0 cmake
SOCI A plugin-based database library that embeds SQL queries in a regular C++ code; supported backends include: DB2, Firebird, MySQL, ODBC (generic backend), Oracle, PostgreSQL, SQLite3. (Src) (Doc) Boost cmake
SQLAPI++ A middleware C++ database library that supports multiple SQL database systems: Oracle, SQL Server, DB2, Sybase, MySQL, PostgreSQL, SQLite, Informix, InterBase / Firebird, SQLBase, SQL Anywhere, ODBC, MariaDB. (Src) (Doc) Custom make
SQLiteCPP A lean and easy to use C++ SQLite3 wrapper. MIT cmake, meson, vcpkg
SQLite ORM An Embedded Domain-Specific Language (EDSL) for SQL, as understood by SQLite, for modern C++. AGPL-3.0, MIT header-only; cmake, vcpkg
sqlpp11 A type safe embedded domain specific language for SQL queries and results in C++. BSD-2 cmake
taoPQ A lightweight C++17 PostgreSQL client library Boost cmake

[edit] 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
cling An interactive C++ interpreter, built on top of Clang and LLVM to leverage RAD, creating scripts, embeddable scripting, and runtime code generation. (Src) Custom / LGPL cmake
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 A scripting language designed for video games. MIT cmake
spidermonkey.dev Mozilla’s JavaScript and WebAssembly Engine.
muparser An extensible high performance math expression parser library written in C++. BSD-2-Clause cmake
PythonQt A 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
lua A lightweight multi-paradigm scripting language designed primarily for embedded use. C library. MIT make
sol2 A modern C++ library binding to Lua. MIT header-only; cmake
v8pp Binds C++ functions and classes into V8 JavaScript engine. BSL-1.0 header-only; cmake

[edit] Embedded/Realtime

Library Description License Configuration
distortos An object-oriented C++11 RTOS for microcontrollers (ARM, STM32) (Src) (Doc) MPL-2.0 cmake
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

[edit] File metadata

Library Description License Configuration
exempi
exiv2
libkexiv2
rarian

[edit] Financial Calculations

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

[edit] Game Engine Architecture

Library Description License Configuration
Anax An open-source C++ entity system MIT cmake
Anura A fully-featured game engine and the tech behind the Frogatto & Friends. Custom Open Source make, vcpkg
BOX2D A physics engine MIT cmake
EntityPlus A C++17 Entity Component System BSD-1.0 cmake
EntityX A fast, type-safe C++ Entity-Component system MIT cmake
EnTT A tiny library for game dev and more written in modern C++ MIT header-only; cmake, bazel, conan, vcpkg, brew, cppget

[edit] General Multimedia

Library Description License Configuration
Kigs-framework A modular multi-purpose cross-platform framework MIT
openFrameworks MIT
SDL Simple DirectMedia Layer: a cross-platform (Windows, macOS, Linux, iOS, Android, and others), low level access to audio, keyboard, mouse, joystick, and graphics hardware via that platform's graphics API (OpenGL/Direct3D/Metal/Vulkan) (Doc) (Src) zlib cmake
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; a simple, cross-platform, minimalist library for text, shapes, input, audio, and 2D images. Supported platforms: Windows, Linux and Raspberry Pi License cmake

[edit] 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.
Au A C++14-compatible physical units library with no dependencies with emphasis on safety, accessibility, and performance. (Doc) Apache 2.0 header-only
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-2 header-only, cmake, make
bitfield.h Bit-field structure facility, more portable/flexible than the base language facility.
Boost A 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 A 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 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 cross-platform 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 version of ISO C++ Guideline Support Library (GSL) for C++98, C++11 and later MIT header-only
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; cmake
libsourcey A 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 A C++ library of designs, containing flexible implementations of common design patterns and idioms. MIT make
match(it) A lightweight pattern-matching library for C++17 with macro-free APIs. Apache-2.0 header-only
nonstd-lite A list of *-lite repositories (e.g., span-lite, scope-lite, expected-lite) containing C++98/11 implementations of some of the proposed or already standardized C++17/20/23 library types, such as std::span, std::expected etc). BSL-1.0 header-only
nytl A generic C++17 utility template library. BSL-1.0 header-only
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 A 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. BSL-1.0 cmake
units A compile-time dimensional analysis and unit conversion library built on c++14 with no dependencies MIT header-only
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 A 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 An open multi-methods for C++17 Boost
zoolib ZooLib is a feature rich C++ toolkit. MIT

[edit] GPS

Library Description License Configuration
gpsd 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

[edit] Graphic user interface

Library Description License Configuration
Dear ImGui A lightweight GUI library for C++ with minimal dependencies, portable, render-agnostic, optimized for use in 3D-pipeline-enabled apps. MIT
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 Cross-platform GUI programming in modern C++ style. (Src), (Doc) BSL-1.0 cmake, vcpkg
nanogui A 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
Slint A declarative GUI toolkit to build native user interfaces for desktop, embedded, and microcontrollers. (Src), (Doc) GPL 3, Royalty-free, or Commercial cmake
tiny file dialogs A set of C/C++ cross-platform file dialogs (no init, no main loop, 6 modal function calls) header-only
U++ A cross-platform (Windows, GNU/Linux, macOS) rapid application development framework with bundled IDE. C++17 Compatible. (Doc) (Src) BSD-3-Clause make
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, make
xtd A modern C++17/20 framework to create console, GUI and unit tests applications on Windows, macOS, Linux, iOS, and Android. (Src) (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 A standalone C++ thread aware signal/slot library LGPL-2.1 cmake
CsString A standalone C++ Unicode aware string library LGPL-2.1 cmake
libGuarded A 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 A 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++ 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

[edit] Graphics

Library Description License Configuration
bgfx A powerful cross-platform (Windows, Mac, Linux, iOS, Android, Web) 2D/3D graphics rendering shader-aware library with rendering backends: DX, OpenGL, Metal, WebGL, Vulkan etc. (Doc) BSD-2 make
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 A 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 Generic Graphics Library (GEGL) is a data flow based image processing framework, providing floating-point processing and non-destructive image processing capabilities. (Src) LGPL
io2d A reference implementation of P0267, the proposed 2D graphics API for ISO C++ BSL-1.0 cmake
nanovg An antialiased 2D vector drawing library in C on top of OpenGL for UI and visualizations, with ports to DX11/Metal/bgfx. zlib
nux An OpenGL toolkit LGPL v3
pangomm The official C++ interface for the Pango font layout library. (Src) LGPL v2.1 make
Skia An open-source 2D-graphics library written in C++. Skia Graphics Engine 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 A cross-platform C++14 library for 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

[edit] Graphics (3D)

Library Description License Configuration
assimp 3D model loading BSD-3 cmake, vcpkg
bgfx A cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library. BSD-2 make, vcpkg
Diligent Engine A modern cross-platform low-level 3D graphics library. Apache-2.0 cmake
Epoxy A 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. MIT meson, vcpkg
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 A customizable, lightweight library for loading OpenGL functions
GLEW An OpenGL functions loader (Src) EXTGL/BSD/MIT make, vcpkg
GLFW An OpenGL window manager (Src) (Doc) zlib/libpng cmake, vcpkg
GLM The OpenGL Mathematics (GLM) is a C++ mathematics library for graphics software based on GLSL spec. The Happy Bunny /
MIT
header-only; cmake, vcpkg
Godot A full featured multi-platform 2D and 3D game engine in C++17 with a GUI editor written on itself and a python-inspired script language. MIT scons
hlsl++ A C++ math library for rendering using HLSL syntax. Supports SSE and NEON MIT header-only
Horde3D 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. EPL
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. zlib/libpng make, vcpkg
klein A C++11/14/17 SSE-optimized Projective Geometric Algebra library for graphics and animation MIT cmake, vcpkg
Magnum A lightweight and modular C++11/C++14 graphics middleware for games and data visualization (Src) Custom cmake
O3DE The 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 The OGRE is an Object-Oriented Graphics Rendering Engine - a multipurpose visualization library, suitable for scientific visualization, games, simulation, virtual reality and other graphic projects. It is multi-platform and very robust, with a good documentation. MIT cmake, vcpkg
Open CASCADE SDK for 3D CAD/CAM/CAE applications (Src) LGPL-2.1 cmake
OpenGL 3D language, graphics and SDK for developing 3D applications. Khronos (MIT)
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. (Src) (Doc) Custom,
GNU LGPL
cmake, vcpkg
Visionaray A C++ ray tracing template library. MIT cmake
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. BSD-3 cmake, vcpkg
Vulkan 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. Khronos (MIT) make, vcpkg

[edit] Images

Library Description License Configuration
Adobe/boost GIL A high-level generic library, focused on algorithms that operate on 2D images. Very limited I/O options. BSL-1.0
agge Anti-Grain Evolution. A 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
FreeImageRe A fork from the Open-Source library FreeImage v3.18 to support image codecs updates and adjust for comfortable usage. All original formats and plugins are maintained. GPLv2, GPLv3, FIPL cmake
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 A set of C/C++ game-dev oriented libraries featuring 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, and more. MIT, Custom header-only

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

Plotting
Library Description License Configuration
Matplot++ A 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 C++ scientific plotting library powered by gnuplot, with the export to PDF, SVG, PNG, EPS, etc. MIT header-only; cmake, vcpkg

[edit] 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

[edit] Internationalization

Library Description License Configuration
gettext GNU internationalization library. GPL make
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 make
spirit-po A small library which parses po-files and provides an interface similar to GNU libintl. Based on boost::spirit. BSL-1.0 header-only
uni-algo Unicode Algorithms Implementation for C/C++ MIT/Unlicense cmake, conan, vcpkg

[edit] Logging

Library Description License Configuration
Backward Printing nice Python-styled stack traces with colors and source snippets, especially on crashes. MIT header-only; 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
lwlog An extremely fast synchronous and asynchronous C++17 logging library MIT cmake
Pantheios A diagnostic logging API library, offering a combination of type-safety, efficiency, genericity and extensibility BSD-style
plog A portable and simple log for C++ in less than 1000 lines of code MPL-2.0
Quill A cross-platform, C++14 Asynchronous Low Latency Logging Library MIT cmake
spdlog A super fast C++ logging library MIT header-only; cmake, conan

[edit] Error handling

Library Description License Configuration
Boost.LEAF A 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. (Src) BSL-1.0 header-only, cmake

[edit] 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 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
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.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, Guaranteed Correct Integer Arithmetic, a drop-in replacement for the built-in integer types. BSL-1.0 header-only
cpp-measures A C++11 library to handle physical measures MPL-2.0 header-only
G+Smo A cross-platform library for isogeometric analysis (Doc) MPL-2.0 cmake
GNU MP bignum C++ interface A 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++ A cross-platform C library (with C++ wrappers) for correctly-rounded arbitrary precision decimal floating-point arithmetic. BSD-2-Clause make, nmake
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+
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
stats++ Advanced, comprehensive statistical software: data collection and preprocessing, statistics, machine learning, and optimization, with open C++ source code.
StatsLib A template library of statistical distribution functions. Apache-2.0 header-only

Automata theory
Library Description License Configuration
yasmine A C++11 UML state machine framework (Doc) (Src) License

Class Library for Numbers
Library Description License Configuration
BigNumber A C++ class for creating and computing arbitrary-length integers Apache 2.0 cmake
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
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
fpm A C++11 fixed-point math library that provides standard library's floating-point functionality on integers. Useful if your target platform lacks an FPU, or deterministic calculations required. MIT header-only; cmake
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
Boost.Geometry Boost.Geometry (aka Generic Geometry Library, GGL), defines concepts, primitives and algorithms for solving geometry problems. Boost.Geometry contains a dimension-agnostic, coordinate-system-agnostic and scalable kernel, based on concepts, meta-functions and tag dispatching. Supported algorithms are: calculation of area, length, perimeter, centroid, convex hull, intersection (clipping), within (point in polygon), distance, envelope (bounding box), simplify, transform, and much more. The library supports high precision arithmetic numbers BSL-1.0
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 library for graph representation, manipulation, partitioning and algorithms AGPL-3.0 header-only; 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 A C++ template library for linear algebra and scientific computing featuring wrappers for OpenBLAS, Intel MKL, LAPACK, ATLAS, ARPACK, SuperLU and FFTW. Useful for ML, pattern recognition, DSP, bioinformatics, statistics, finance, etc. Apache 2.0
Blasw A C++11 BLAS and Parts of LAPACK Wrapper BSD-3-Clause header-only; cmake
Blaze
Blitz++ A C++ template class library that provides high-performance dense arrays and vectors, random number generators, and small vectors. GPL-3.0, LGPL-3.0, Custom cmake
Boost.uBLAS A C++ template class library that provides BLAS level 1, 2, 3 functionality for dense, packed and sparse matrices. Uses expression templates. 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, make
DecompLib A C++11 library to decompose a vector into a set of positive definite weighted basis vectors. MIT header-only
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
NumCpp A C++ template library implementing the Python's NumPy MIT header-only; cmake, vcpkg, conan
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 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 header-only; cmake, vcpkg
Tense A fast C++17 expression template matrix and tensor library BSD-3-Clause header-only; cmake
xtensor A C++ library meant for numerical analysis with multi-dimensional array expressions. BSD

Machine Learning
Library Description License Configuration
Dlib A machine learning tools
FANN A Fast Artificial Neural Network library
gaenari A C++17 based incremental decision tree Apache-2.0 cmake
liblinear
libtorch A C++ frontend to the popular PyTorch Python library (backend is written in C++) BSD-style cmake
MLPACK A machine learning package
Shogun A 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 bazel

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

Optimization
Library Description License Configuration
ceres-solver An 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.

Symbolic expression manipulations
Library Description License Configuration
CasADi A symbolic framework for nonlinear optimization and algorithmic differentiation. Supports C++ code generation for symbolic expressions and dynamic connection of compiled generated code. LGPLv3.0 cmake
ExprTk The C++ Mathematical Expression Toolkit Library (ExprTk) is 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. MIT header-only
GiNaC A library for creating integrated systems that embed symbolic manipulations together with more established areas of computer science (like computation-intense numeric applications, graphical interfaces, etc.) under one roof. GPLv3
mathiu.cpp A simple computer algebra system in C++17 Apache-2.0 cmake
SEMT A compile-time symbolic differentiation License make
SymbolicC++ A general-purpose computer algebra system GPLv2 autoconf
SymCC A compiler wrapper which embeds symbolic execution into the program during compilation, and an associated run-time support library. In essence, the compiler inserts code that computes symbolic expressions for each value in the program. The actual computation happens through calls to the support library at run time. GPLv3 cmake
SymEngine A standalone fast C++ symbolic manipulation library. MIT cmake
ViennaMath A symbolic math library that enables a convenient instantiation, manipulation, and evaluation of mathematical expressions at run time and compile-time. MIT cmake

[edit] Metaprogramming

Library Description License Configuration
Boost.CallableTraits A C++11/17 library for the compile-time inspection and manipulation of all 'callable' types. A successor to Boost.FunctionTypes. BSL-1.0 header-only
Boost.Hana A new metaprogramming library for both types and values BSL-1.0
Boost.Metaparse A compile-time parser library, producing types, values, and metafunctions from compile-time strings BSL-1.0
Boost.Mp11 A C++11 metaprogramming library for compile-time manipulation of data structures that contain types. BSL-1.0 header-only
Boost.MPL An original metaprogramming library, targeted at C++03, slow BSL-1.0
Boost.PFR A C++14 library for basic reflection (without macros): visiting members of a user defined type by index, IO streaming. BSL-1.0 header-only
Boost.Proto A library for building expression template-backed EDSLs BSL-1.0
Brigand Uses eager metafunctions, optimized for best performance
CoMeta A lightweight C++14 metaprogramming library header-only
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 A 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.

[edit] PDF

Library Description License Configuration
HARU A free, cross-platform, open-source library for generating PDF files. (Doc) (Src) zlib/libpng cmake
JagPDF A free, open-source library for generating PDF (Doc) MIT
PoDoFo A free portable C++17 library to work with the PDF LGPL-2.0 cmake, conan, vcpkg

[edit] Physics and Simulations

Library Description License Configuration
Bullet A physics simulation for games, visual effects, robotics and reinforcement learning
HELICS A 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 A C++ physics engine library for 3D simulations and game

[edit] 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

[edit] Serialization

Library Description License Configuration
Boost.Serialization BSL-1.0
C++ XML objects
cereal A C++11 serialization BSD
cista A simple, high-performance, zero-copy C++ serialization & reflection library. (Src) MIT cmake
cppcodec A C++11 library to encode/decode base64, base32 and hex with consistent, flexible API MIT header-only
GPDS A general purpose data serializer to serialize objects to and from XML. Uses TinyXML under the hood.
gSOAP An 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
protobuf Protocol Buffers (a.k.a., protobuf) is Google's language-neutral, platform-neutral, extensible mechanism for serializing structured data, including .proto files compiler. (Doc) Custom bazel, cmake
rpnx-serial A library that can (de)serialize types like std::map, std::vector, etc.
Serio A fast lightweight C++ serialization library BSD-3-Clause header-only; cmake
ThorsSerializer A C++ serialization library for JSON MIT make
yaml-cpp
YAS Yet Another Serialization is a C++11 library w/o 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 A C++17 library that infers the serialized layout from the structure definition alone. Boost header-only; cmake
bson-cxx A C++11 implementation of BSON format. scons
fast_ber A C++11 high-performance serialization using BER/DER encoding rules. Encoding layout is defined by ASN.1 schemas.
UBjsonCpp A high-performance UBJson read-write library based on C++14

[edit] Sorting

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

[edit] System

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

[edit] Terminal

Library Description License Configuration
cli A cross-platform library for interactive command line interfaces in modern C++. BSL-1.0 header-only; cmake, make, nmake, vcpkg
cwidget A 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.

[edit] Testing

Library Description License Configuration
bandit A human-friendly unit testing for C++11. (Src) MIT cmake
Boost.Test A C++03/11/14/17 unit testing library, available on a wide range of platforms and compilers. (Src) BSL-1.0 cmake, b2
Catch2 A modern, C++-native, test framework for unit-tests, TDD and BDD - using C++14, C++17 and later Boost cmake
cppunit A C++ port of the famous JUnit framework for unit testing LGPL-2.1 make
CUTE A C++ Unit Testing Easier (no reliance on static initialization for registration), integrated into Cevelop for TDD MIT header-only
doctest A lightest feature-rich C++ single-header testing framework for unit tests and TDD MIT header-only; cmake
ELFspy Testing in isolation with fakes and spies - Linux only GPL-2.0 make
faker-cxx A modern C++20 Faker library for generating testing data. MIT cmake
Google Test Google Testing and Mocking Framework. (Src) BSD 3-Clause "New" or "Revised" bazel, cmake
lest A C++11-native tiny framework for unit-tests, TDD and BDD (includes C++98 variant). Boost header-only; cmake
liblittletest A portable testing framework LGPL-2.1 header-only
snitch A lightweight C++20 testing framework. Boost cmake
tunit A modern C++17 unit testing library on Windows, macOS, Linux, iOS, and Android. Office site MIT cmake

[edit] Text

Coding
Library Description License Configuration
strsuite A C++20 library to manage strings with different encodings LGPL3.0 cmake
uchardet Guesses a string encoding, basically the same as the uchardet function in Python. MOZILLA PUBLIC LICENSE v1.1 cmake
win-iconv A 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
coformat A companion C++ library for std::format to enable text colorization and styling. public domain header-only
fmt An open-source formatting library providing a fast and safe alternative to C stdio and C++ iostreams. Prototype for C++20 std::format family. License cmake, conan

Parse
Library Description License Configuration
BNFlite A lightweight grammar parser library MIT header-only
Boost.Spirit A set of C++17 libraries for parsing and output generation implemented as Domain Specific Embedded Languages (DSEL) using Expression templates and Template Meta-Programming. The Spirit libraries enable a target grammar to be written exclusively in C++. (Src) (Doc) BSL-1.0 cmake
CTRE Fast Compile-Time Regular Expressions with support for matching/searching/capturing during compile-time or runtime. Apache-2.0 header-only, cmake, vcpkg
lexy A C++17 parser combinator library which allows you to write a parser by specifying it in a convenient C++ DSL with all the flexibility and control of a handwritten parser. Supports UTF-8/16/32. (Doc) BSL-1.0 cmake
PEGTL Parsing Expression Grammar Template Library is a zero-dependency C++17 header-only parser combinator library for creating parsers according to a Parsing Expression Grammar (PEG). Boost header-only

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

Template Engine
Library Description License Configuration
inja A template engine for C++17. MIT header-only; cmake, conan, vcpkg, etc.
Jinja2C++ A C++14/17 implementation of Jinja2 templates MPL-2.0 cmake, conan

[edit] Version Control

Library Description License Configuration
coo-semver A C++ operation library for semantic version numbers.
LibGit2 A version control system Git's core library.

[edit] Video

Library Description License Configuration
crystalhd
gstreamermm
libmatroska
libVLC
mjpegtools
OpenH264 A multi-platform, multi-architecture, open-source library which supports H.264 encoding and decoding (Src) BSD-2 Clause meson

[edit] 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 A framework for Enterprise Application Development in C++, HTTP1/HTTP2/HTTP3 compliant, supports multiple server backends Apache 2.0 cmake
libhttpserver A C++ library for building high performance RESTful web servers. Built upon libmicrohttpd to provide a simple API for developers to create HTTP services in C++. LGPL-v2.1 autotools
libkcddb
liblastfm
libmusicbrainz5
libnavajo
Molybden An SDK for building cross-platform C++ desktop apps with HTML/CSS/JS GUI. (Doc) (Src) License npm
oatpp A powerful portable lightweight and zero-dependency web-framework for IoT and high-performance web-services.
QtWebApp HTTP(s) Server in C++ inspired by Java Servlets
Tufão An asynchronous web framework for C++11 built on top of Qt (Doc) LGPL-2.1, GPL-2.0 cmake
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 for web apps, built-in security, PDF rendering, 2D and 3D painting, ORM, charting, authentication frameworks. (Doc) (Src) GNU GPL or Commercial

[edit] See also

C documentation for Non-ANSI/ISO Libraries

[edit] External links

1.  List of C++ unit testing frameworks — at Wikipedia
2.  A curated list of (awesome) header-only C++ libraries — at GitHub
3.  A curated list of (awesome) C++ and C libraries — at GitHub
4.  Boost C++ libraries — at Boost.org
5.  A huge list of C++ open-source games and frameworks — at GitHub.io