Namensräume
Varianten
Aktionen

Eine Liste von Open-Source C++ Bibliotheken

Von cppreference.com
< cpp‎ | links

Ziel dieser Seite ist es, eine umfassende Liste von Open-Source C++ Bibliotheken zu erstellen, damit man bei Bedarf nach einer Implementierung bestimmter Funktionalität keine Zeit mit der Suche im Web (DuckDuckGo, Google, Bing, etc.) verschwenden muss.

Wenn Sie eine Bibliothek kennen, die für andere nützlich sein könnte, fügen Sie hier bitte einen Link dazu ein. Es gibt keine Einschränkungen, was aufgenommen werden kann, außer dass der **Quellcode** der Bibliothek zum Download **verfügbar** sein muss.

Die Seite wird „wie besehen“ bereitgestellt – in der Hoffnung, nützlich zu sein, aber ohne jegliche Gewährleistung. Veraltete, irreführende oder falsche Links können hier erscheinen. Wenn Sie eines davon bemerkt haben, wäre es toll, wenn Sie den Fehler beheben würden.

Bibliotheken: Inhaltsverzeichnis

Bibliotheken


Inhalt

[bearbeiten] Paketmanager

Paketmanager Beschreibung
build2 Eine Open-Source (MIT), plattformübergreifende Build-Toolchain, die darauf abzielt, die Bequemlichkeit von Rust Cargo für die Entwicklung und Verpackung von C/C++-Projekten zu erreichen und gleichzeitig mehr Tiefe und Flexibilität zu bieten, insbesondere im Build-System.
cget Cmake Paketabruf. Dies kann verwendet werden, um Cmake-Pakete herunterzuladen und zu installieren.
cmodule Nicht-intrusives Cmake-Abhängigkeitsmanagement.
conan Dezentraler, Open-Source (MIT), C/C++ Paketmanager.
CPM.cmake Ein Cmake-Skript, das Cmake Paketmanagementfähigkeiten hinzufügt. Es ist als dünner Wrapper um das FetchContent-Modul von Cmake aufgebaut, das Versionskontrolle, Caching, eine einfache API und mehr hinzufügt.
hunter Ein Cmake-gesteuerter, plattformübergreifender Paketmanager für C/C++-Projekte.
spack Ein Paketmanager für Supercomputer, Linux und macOS. Er vereinfacht die Installation wissenschaftlicher Software. Er ist nicht an eine bestimmte Sprache gebunden.
teaport Ein von Cocoapods inspirierter Abhängigkeitsmanager.
vcpkg Ein C/C++ Paketmanager für Windows, Linux und macOS.
xmake Ein plattformübergreifendes Lua-basiertes C/C++ Build-Tool und Paketmanager.

[bearbeiten] Bibliotheken

[bearbeiten] Audio

Bibliothek Beschreibung Lizenz Konfiguration
Amplitude Audio SDK Eine plattformübergreifende Audio-Engine, die auf die Bedürfnisse von Spielen zugeschnitten ist. (Src) Apache-2.0 cmake, vcpkg
Aquila Eine Open-Source und plattformübergreifende DSP-Bibliothek für C++11. MIT cmake
Aubio Eine C/Python-Bibliothek für Audio- und Musikanalyse. (Src) GPL-3.0 make
audioFlux Eine C-Bibliothek für Audio- und Musikanalyse, Merkmalsextraktion. MIT
Essentia Eine Open-Source-Bibliothek und Werkzeuge für Audio- und Musikanalyse, -beschreibung und -synthese (MIR) (Src) Affero GPLv3
FFTW Eine Bibliothek zur Berechnung der DFT (SSE/SSE2/AVX/Altivec/ARM Neon). (Src) GPL-2.0 cmake
FMOD Eine einfach zu bedienende, plattformübergreifende Audio-Engine und ein Werkzeug zur Erstellung von Audio-Inhalten für Spiele. Kostenlos für nicht-kommerzielle/Kommerziell cmake
KFR Ein schnelles, modernes C++17, Open-Source, plattformübergreifendes DSP/DFT-Framework, unterstützt Audio-Resampling, FIR/IIR-Filter, Biquad, (SSE, AVX, AVX-512, ARM NEON). (Src) GPL-2.0 cmake
libsoundio Eine C-Bibliothek für plattformübergreifende Echtzeit-Audio-Ein- und Ausgabe. (Src) MIT cmake
Maximilian C++ Audio und Musik DSP Bibliothek. MIT cmake
Miniaudio Eine C-Bibliothek für Audio-Wiedergabe und -Aufnahme. (Src) Unlicense Einzelne Quelldatei
ni-media C++ Bibliothek zum Lesen und Schreiben von Audiodateien. MIT cmake, vcpkg
OpenAL Eine plattformübergreifende Audio-API. BSD/LGPL/Proprietär cmake
PortAudio PortAudio ist eine kostenlose, plattformübergreifende, Open-Source-Bibliothek für Audio-Ein-/Ausgabe. (Src) MIT cmake, vcpkg
rnnoise Rekurrentes neuronales Netz zur Audio-Rauschunterdrückung. BSD-3-Clause make
SELA SimplE Lossless Audio. MIT cmake
SoLoud Einfache, portable Audio-Engine für Spiele. zlib
Soundtouch SoundTouch ist eine Open-Source, plattformübergreifende Audio-Verarbeitungsbibliothek zur Änderung von Tempo, Tonhöhe und Wiedergabegeschwindigkeit von Audiostreams oder Audiodateien. (Src) LGPL-2.1 make
Tonic Einfache und effiziente Audiosynthese in C++. Unlicense
Verovio Eine schnelle und leichte Bibliothek für Notensatz. (Src) LGPL cmake, qmake
Wav2Letter++ Ein schnelles Spracherkennungs-Toolkit, das vollständig in C++ geschrieben ist und die ArrayFire-Tensorbibliothek sowie die Flashlight-Maschinenlernbibliothek für maximale Effizienz nutzt. Unlicense cmake

CD
Bibliothek Beschreibung Lizenz Konfiguration
libkcompactdisc Eine Bibliothek zur Interaktion mit CDs GPL v2.0 cmake

Fingerprinting
Bibliothek Beschreibung Lizenz Konfiguration
chromaprint Chromaprint ist eine Audio-Fingerprinting-Bibliothek zur Identifizierung von nahezu identischen Audios. Sie tauscht Präzision und Robustheit gegen Suchleistung. Chromaprint kann mehrere FFT-Bibliotheken verwenden – FFmpeg, FFTW3, KissFFT oder vDSP. (Src) MIT, LGPL 2.1 cmake
libmusicbrainz Die MusicBrainz Client Library (libmusicbrainz), auch bekannt als mb_client, ist eine Entwicklungsbibliothek für Entwickler, die ihrer Anwendungen MusicBrainz-Lookup-Funktionen hinzufügen möchten. Die Bibliothek unterstützt Windows, Linux und Mac OS X (Src) LGPL-2.1 cmake
libofa Ein Open-Source Audio-Fingerprinting von MusicIP APL make

Formate
Bibliothek Beschreibung Lizenz Konfiguration
AudioFile Eine einfache C++ Bibliothek zum Lesen und Schreiben von Audiodateien. MIT cmake
audio_file Eine Bibliothek, die das Lesen und Schreiben von Audiodateien in vielen gängigen Formaten ermöglicht. (Src) LGPL-2.1 make
dr_libs Einzeldraht-Audio (FLAC, MP3, WAV) Dekodierungsbibliotheken für C und C++. Unlicense
flac FLAC steht für Free Lossless Audio Codec, was bedeutet, dass in FLAC komprimiertes Audio keine Qualitätsverluste aufweist. FLAC ist der schnellste und am weitesten verbreitete verlustfreie Audio-Codec, nicht proprietär und frei von Patenten. Open Source, BSD, GPL
LAME LAME ist ein hochwertiger MPEG Audio Layer III (MP3) Encoder. LGPL
libsndfile Eine C-Bibliothek mit C++-Wrapper zum Lesen und Schreiben von Dateien mit Abtastgeräuschen (z. B. WAV, AIFF) über eine einzige standardisierte Bibliotheks-Schnittstelle. (Src) LGPL-2.1 cmake, make, vcpkg
minimp3 Minimalistischer MP3-Decoder CC0-1.0 nur Header
Opus Ein vollständig offener, lizenzfreier, hochgradig vielseitiger Audio-Codec. BSD cmake
Vorbis Ogg Vorbis ist ein vollständig offenes, nicht proprietäres, patent- und lizenzfreies, allgemeines komprimiertes Audioformat. BSD cmake

Tagging
Bibliothek Beschreibung Lizenz Konfiguration
id3lib Eine Open-Source, plattformübergreifende Bibliothek zum Lesen, Schreiben und Bearbeiten von ID3v1- und ID3v2-Tags sowie zum Abrufen einiger grundlegender MP3-Header-Informationen wie Bitrate. Wir empfehlen jedoch jetzt, zu taglib zu wechseln :) LGPL v2
taglib Die TagLib Audio Metadata Library ist eine Bibliothek zum Lesen und Bearbeiten der Metadaten mehrerer gängiger Audioformate: ID3v1, ID3v2 für MP3-Dateien, Ogg Vorbis-Kommentare und ID3-Tags sowie Vorbis-Kommentare in FLAC, MPC, Speex, WavPack, TrueAudio, WAV, AIFF, MP4 und ASF-Dateien. (Src) LGPL und MPL v1.1

[bearbeiten] Benchmarking

Bibliothek Beschreibung Lizenz Konfiguration
benchmark Eine Bibliothek zum Benchmarking von Code-Snippets, ähnlich wie Unit-Tests Apache 2.0 cmake
Celero Eine funktionsreiche C++ Benchmark Authoring Library/Framework. Unterstützt Windows, Linux und OSX mit C++11. Apache cmake
Criterion Eine Mikro-Benchmarking-Bibliothek für modernes C++ MIT nur Header; cmake
gperftools Die „Google Performance Tools“ umfassen eine leistungsstarke, multithreaded Malloc-Implementierung sowie Werkzeuge zum Benchmarking von Heap-Speicherzuweisung und CPU-Auslastung. BSD 3-Clause „New“ oder „Revised“ configure
nanobench Eine einfache, schnelle, genaue Single-Header-Mikro-Benchmarking-Funktionalität für C++11/14/17/20. (Src) MIT nur Header; cmake
picobench Eine winzige (Mikro-)Mikro-Benchmarking-Bibliothek MIT nur Header; cmake
plf::nanotimer Eine Cross-Platform-Timer-Klasse mit geringstem Overhead und einfacher Nutzung für Benchmarking. zlib nur Header

[bearbeiten] Kommunikation

Bibliothek Beschreibung Lizenz Konfiguration
ACE Asynchrone Netzwerke, Ereignis-Demultiplexing, Messaging (Src) (Doc) Benutzerdefiniert make
Apache Thrift Das Apache Thrift Software Framework für die skalierbare sprachübergreifende Entwicklung von Diensten kombiniert einen Software-Stack mit einer Code-Generierungs-Engine zum Erstellen von Diensten, die effizient und nahtlos zwischen C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, OCaml und Delphi sowie anderen Sprachen funktionieren. (Src) Apache-2.0 cmake, vcpkg
Boost.Asio Asynchrone und synchrone Netzwerke, Timer, serielle E/A BSL-1.0
Boost.Beast Eine HTTP- und WebSocket-Bibliothek, die auf Boost.Asio aufbaut. BSL-1.0
Breep Eine ereignisbasierte, High-Level-Peer-to-Peer-Bibliothek, die es Benutzern ermöglicht, Objekte direkt zu senden und zu empfangen. European Union Public License 1.1 cmake
brpc Ein RPC-Framework für den industriellen Einsatz, das in Baidu eingesetzt wird und mehr als 1.000.000 Instanzen und Tausende von Service-Arten umfasst. (Src) (Doc) Apache 2.0 cmake
C++ REST SDK Ein asynchroner HTTP-Client und -Listener, asynchrone Streams, URI, JSON MIT cmake
cpp-httplib Eine C++11 Single-File-Header-Only-plattformübergreifende HTTP/HTTPS-Bibliothek MIT nur Header; cmake
cpp-netlib Eine C++ Netzwerkbibliothek BSL-1.0 cmake
cppsimpleuri Ein moderner C++ URI- & Query-Parser MIT cmake
cpr Eine moderne C++ HTTP-Anfragenbibliothek MIT cmake
Crow Ein C++ Micro-Web-Framework (inspiriert von Python Flask) BSD-3-Clause nur Header; cmake
curlpp C++ Wrapper für libcURL (CURL-Bibliothek). (Src) cmake, vcpkg
DumaisLib Verschiedene Utilities wie WebServer, JSON, WebSocket-Server, REST-Framework (eine Bibliothek zur Erstellung einer REST-API in Ihrer C++-Anwendung) MIT make
EasyHttp Eine plattformübergreifende HTTP-Client-Bibliothek mit Fokus auf Benutzerfreundlichkeit und Geschwindigkeit, die Caching von HTTP-Antworten und mehr unterstützt. MIT cmake
eCAL Eine leistungsstarke Interprozesskommunikationsbibliothek Apache 2.0 cmake
fineftp-server Eine FTP-Server-Bibliothek für Windows und Unix MIT cmake
FPNN Fast Programmable Nexus Network. Leistungsstarkes, vollständig asynchrones RPC-Service-Framework. Unterstützt gleichzeitig HTTP, WebSocket, TCP und zuverlässiges UDP. Ermöglicht die Entwicklung von Servern mit extrem hoher Last, mit entsprechenden Client-SDKs. Unbekannt make
gRPC Ein modernes Open-Source-RPC-Framework mit hoher Leistung, das in jeder Umgebung laufen kann. (Src) (Doc) Apache-2.0 bazel, cmake, vcpkg
gsoap Ein C/C++-Entwicklungswerkzeug für XML-Datenbindungen, schnelle WSDL/SOAP/XML-Webdienste, WS-Security, JSON/XML-RPC RESTful-Dienste GPLv2
hmbdc Ein leichtgewichtiges und leistungsstarkes C++17-Nachrichten-Pub/Sub-Middleware-Framework/Lib nur Header
HTTPP Ein einfacher, C++14-fähiger, produktionsreifer HTTP-Server, der auf Boost aufbaut, und ein Client, der auf libcurl aufbaut. BSD 2-Clause „Simplified“ cmake, make
IXWebSocket Eine Open-Source-WebSocket-+-HTTP-Bibliothek ohne Abhängigkeiten, unterstützt SSL und die per-message-deflate WebSocket-Erweiterung. BSD 3-Clause „New“ oder „Revised“ cmake, make
KCP Ein schnelles und zuverlässiges ARQ-Protokoll, das Anwendungen hilft, Netzwerklatenz zu reduzieren. MIT cmake
libashttp Eine asynchrone HTTP-Client-Bibliothek GNU Lesser General Public v3.0
libjson-rpc-cpp

Ein Framework, das plattformübergreifende JSON-RPC (Remote Procedure Call)-Unterstützung für C++ bietet und vollständig mit JSON-RPC 2.0 & 1.0 kompatibel ist.

MIT cmake, conan
libnavajo Ein C++ Framework mit einem schnellen Multithreaded HTTP-Server, HTML5 Websockets, SSL, X509 und HTTP-Authentifizierung, Kompression, Cookies und fortschrittlichem Sitzungsmanagement, IPv4 und IPv6 (CeCILL-C). CECILL-C FREE SOFTWARE LICENSE AGREEMENT cmake
libtins Eine Netzwerkpaket-Crafting- und Sniffing-Bibliothek (Src) (Doc) BSD-2 cmake, vcpkg
LiteNetLibPP Eine leichtgewichtige, zuverlässige UDP-Bibliothek für Spiele MIT cmake
mailio MIME- und E-Mail-Bibliothek BSD 2-Clause „Simplified“ cmake
nanomsg Eine schnelle Nachrichtenwarteschlange, Nachfolger von ZeroMQ
netif Eine C++14-Bibliothek zum Abrufen von Netzwerkadressen unter Windows, Linux, macOS und FreeBSD. BSD 3-Clause „New“ oder „Revised“ nur Header; cmake
nghttp2 HTTP/2 C Bibliothek und Werkzeuge (Server, Client, Proxy und Benchmarking-Werkzeuge) MIT cmake, configure
ngrest Ein schnelles und einfach zu bedienendes JSON RESTful Web Services Framework Apache 2.0 cmake
nng Eine schnelle Nachrichtenwarteschlange, Nachfolger von nanomsg
Oat++ Ein Web Framework: REST-API und Request-Implementierung (Src) (Doc) Apache 2.0 cmake
omniORB Die schnellste, vollständigste und portabelste CORBA ORB-Implementierung in C++
OpenDDS DDS (Data Distribution Service) Implementierung
Paho MQTT Ein moderner C++ Client für MQTT von Eclipse cmake
paozhu Ein C++20 Web Framework unterstützt HTTP/2 ORM WebSocket MIT cmake
PcapPlusPlus Plattformübergreifendes C++ Netzwerk-Sniffing und Paket-Parsing- und Crafting-Framework. Bietet C++-Wrapper für viele beliebte Paketverarbeitungsprogramme wie libpcap, Npcap, WinPcap, DPDK, AF_XDP und PF_RING. (Src) Unlicense conan, homebrew, cmake, vcpkg
POCO Netzwerk: Verschlüsselung, HTTP; Zip-Dateien (Doc)
rest_rpc Ein C++11-, leistungsstarkes, plattformübergreifendes, einfach zu bedienendes RPC-Framework. MIT cmake
restbed Ein plattformübergreifendes, funktionsreiches Framework, das asynchrone RESTful-Funktionalität (sichere Kommunikation über HTTP) für C++14-Anwendungen bietet. Lizenz cmake
restc-cpp Zugriff auf JSON-APIs von C++. HTTP-Client, native C++-Klassen zur JSON-Serialisierung/-Deserialisierung, asynchrone E/A über Boost::asio Coroutinen. C++14. MIT cmake
restful_mapper ORM zum Konsumieren von RESTful JSON-APIs in C++ cmake, make
seastar Ein leistungsstarkes Server-Side-Anwendungsframework, basierend auf C++14/C++17. Apache 2.0 cmake, etc.
Silicon Das Silicon C++14 Web Framework: Schnelle und robuste Web-APIs MIT cmake
sockpp Eine einfache, moderne C++-Socket-Bibliothek BSD 3-Clause „New“ oder „Revised“ cmake
stream-client Ein leichtgewichtiger Boost-basierter Client-seitiger Socket/Connector/Socket Pool/Resolver Apache 2.0 nur Header; cmake
tacopie Eine C++11 TCP-Bibliothek MIT cmake
TAO CORBA
taox11 Eine CORBA-Implementierung basierend auf C++11 MIT
Unicomm Asynchrones Netzwerk, High-Level-TCP-Kommunikations-Framework
uvw Ein Wrapper für libuv (plattformübergreifende asynchrone E/A) in C++17 MIT nur Header; cmake
WNetWrap Ein Wrapper für WinInet in C++ MIT
wvstreams Eine C++-Netzwerkbibliothek, die UniConf und eine praktische D-Bus-API enthält GPL
zeromq Eine schnelle Nachrichtenwarteschlange

[bearbeiten] Concurrency

Bibliothek Beschreibung Lizenz Konfiguration
AdaptiveCpp Bietet einen SYCL- und C++-parallelen STL-Offloading-Compiler und ein Laufzeitsystem für CPUs und GPUs von NVIDIA, AMD und Intel BSD-2-Clause cmake
Asyncpp Eine asynchrone C++-Bibliothek, die verschiedene parallele Operationen bietet MIT cmake
BlockingCollection Thread-sichere, Multi-Producer, Multi-Consumer Blockierwarteschlange, Stapel- und Prioritätswarteschlangen-Klasse für C++11 GPL-3.0 nur Header
Boost.Atomic Bietet atomare Datentypen und Operationen auf diesen Datentypen sowie Speicherreihenfolgebeschränkungen, die für die Koordinierung mehrerer Threads über atomare Variablen erforderlich sind. BSL-1.0
Boost.Compute Eine GPU/Parallel-Computing-Bibliothek für C++ basierend auf OpenCL. BSL-1.0 cmake
Boost.Context Eine C++11-Bibliothek, die eine Abstraktion für kooperatives Multitasking auf einem einzelnen Thread bietet. BSL-1.0
Boost.Interprocess Vereinfacht die Verwendung von Interprozesskommunikations- und Synchronisationsmechanismen und bietet eine breite Palette davon: Shared Memory, speicherabgebildete Dateien, Semaphoren, Mutexe, Bedingungsvariablen und aufrüstbare Mutextypen, benannte Versionen der Synchronisationsobjekte, Dateisperren, Nachrichtenwarteschlangen. BSL-1.0
Boost.Lockfree Bietet nicht-blockierende (auch Lock-Free genannte) konkurrierende Datenstrukturen: eine Warteschlange, einen Stapel und einen Ringpuffer (spsc_queue). BSL-1.0
Boost.MPI Eine C++-freundliche Schnittstelle zur Standard-Message Passing Interface BSL-1.0
Boost.Thread Ermöglicht die Verwendung mehrerer Ausführungsthreads mit gemeinsam genutzten Daten und Mitteln zur Synchronisation von Daten zwischen den Threads. BSL-1.0
concurrencpp Moderne Concurrency für C++. Tasks, Executor, Timer und C++20 Coroutines. MIT cmake
dispenso Hochleistungs-Concurrency für C++. parallel_for, Futures, Pipelines, Timer, zeitgesteuerte/periodische Tasks und konkurrierende Datenstrukturen. MIT cmake
Highway Bietet performanz-portable, längenunabhängige SIMD/Vektor-Intrinsics. Unterstützt: SSE3, SSE4, AVX*, NEON, SVE*, WASM SIMD, RISC-V, POWER. (Doku) Apache-2.0 cmake
HPX Ein allgemeines C++-Laufzeitsystem für parallele und verteilte Anwendungen jeder Größenordnung (Doku) BSL-1.0 cmake, vcpkg
Intel TBB Intel® TBB ist eine plattformübergreifende C++-Bibliothek für Shared-Memory-Parallelprogrammierung und heterogenes Computing. Die Bibliothek bietet: generische parallele Algorithmen, konkurrierende Container, einen skalierbaren Speicherallokator, einen Work-Stealing-Task-Scheduler und Low-Level-Synchronisationsprimitive. (Quellcode) (Doku) Apache-2.0 oder Kommerziell cmake, make
KOKKOS Ein Programmiermodell zum Schreiben von performanz-portablen HPC-Anwendungen, das CUDA, HIP, SYCL, HPX, OpenMP und C++-Threads als Backends verwendet (Doku) Benutzerdefiniert cmake, make
libopenmpi Das Open MPI Project ist eine Open-Source-Implementierung der Message Passing Interface 3-Clause BSD
libsimdpp Eine portable, Zero-Overhead C++ Low-Level SIMD-Bibliothek. Boost nur Header; cmake
MPL Eine C++17-freundliche Schnittstelle zur Standard-Message Passing Interface BSD 3-Clause „New“ oder „Revised“ nur Header; cmake
MutexGear Eine reine Mutex-Synchronisationsbibliothek (Wheel, RWLock, Work Queues) für C/C++11 Die MutexGear-Bibliothek configure, msvc, make
OpenMP Die OpenMP API-Spezifikation für parallele Programmierung
PoCL Eine portable, retargetierbare Open-Source-Implementierung (LLVM-basiert) des OpenCL-Standards. (Quellcode) (Doku) MIT cmake
RaftLib C++17 Stream-ähnliche konkurrierende Actors, die parallele Datenflussberechnungen ermöglichen Apache-2.0 cmake
SObjectizer Ein kleines plattformübergreifendes Framework für konkurrierende und ereignisgesteuerte Anwendungen in C++, das Actor- und Publish-Subscribe-Modelle verwendet. BSD-3-Clause cmake, vcpkg, conan
stdgpu Effiziente STL-ähnliche Datenstrukturen auf der GPU Apache 2.0 cmake
subprocess Plattformübergreifende C++17/20-Bibliothek zum Ausführen von Subprozessen MIT cmake, teaport
Taskflow Parallele Task-Programmierung in modernem C++ TASKFLOW MIT cmake
task-thread-pool Schneller und leichter Thread-Pool für C++11 und neuer. BSD-2-Clause oder MIT oder BSL-1.0 cmake, vcpkg, Single-Header
ThreadPool Ein einfacher, leichter Thread-Pool BSD-3-Clause Header-only; cmake, make
thread_pool Ein moderner, schneller, leichter Thread-Pool MIT cmake
Thrust STL-ähnliche parallele Algorithmen und Datenstrukturen über CUDA, TBB oder OpenMP Apache v2.0, Boost v1.0. cmake
TimerAlarm Timer und Alarme basierend auf Threads. BSD-3-Clause Header-only; cmake, make
VexCL Eine C++ Vektor-Expression-Template-Bibliothek für OpenCL, CUDA, OpenMP MIT cmake
ViennaCL Lineare Algebra und Algorithmen mit OpenMP-, CUDA- und OpenCL-Backends. (Quellcode) (Doku) Benutzerdefiniert cmake
Xenium Eine C++17-Bibliothek, die verschiedene konkurrierende Datenstrukturen und Wiederherstellungsschemata bietet. MIT nur Header; cmake

[bearbeiten] Konfiguration

Bibliothek Beschreibung Lizenz Konfiguration
Boost.Program_options Die Bibliothek ermöglicht die Gewinnung von Programmoptionen, d. h. (Name, Wert)-Paare vom Benutzer, über herkömmliche Methoden wie Kommandozeile, Konfigurationsdatei und Umgebungsvariablen. BSL-1.0
figcone Liest JSON-, YAML-, TOML-, XML- oder INI-Konfigurationen, indem eine Struktur deklariert wird MS-PL cmake
gconfmm Eine plattformübergreifende (offizielle) C++-Schnittstelle für die beliebte GUI-Bibliothek GTK, einschließlich typsicherer Rückrufe und eines umfassenden Satzes von Widgets, die durch Vererbung leicht erweitert werden können. gtkmm verwendet STL, einschließlich strings, Container und Iteratoren. UTF8 wird unterstützt. (Quellcode) (Doku) LGPLv2.1 autotools, meson, make
libconfig Eine einfache plattformübergreifende C/C++-Bibliothek zur Verarbeitung strukturierter Konfigurationsdateien ("*.cfg") (Quellcode) (Doku) LGPL 2.1 autotools, cmake, make
libconfini Ein plattformübergreifender INI-Parser in C geschrieben (Doku) GPL-3.0 autotools, make
uconfig Eine schlanke C++17-Konfigurationsbibliothek Apache 2.0 nur Header; cmake

Kommandozeile
Bibliothek Beschreibung Lizenz Konfiguration
Argh! Ein minimalistischer Argumentenhandler. BSD 3-Clause Header-only; cmake, vcpkg
argparse (hbristow) Eine schlanke C++-Klasse zum Parsen von Kommandozeilenargumenten mit einer Benutzeroberfläche ähnlich der gleichnamigen Python-Klasse. BSD
argparse (morrisfranken) Eine leichtgewichtige Bibliothek zum eleganten Parsen von Kommandozeilenargumenten. Apache 2 nur Header; cmake
argparse (p-ranav) Ein Kommandozeilenargumenten-Parser für C++17 MIT Header-only; cmake, vcpkg
args Eine einfache C++-Bibliothek zum Parsen von Argumenten. MIT Header-only; cmake, conan, meson, vcpkg
Boost.Program_options Die Bibliothek ermöglicht die Gewinnung von Programmoptionen, d. h. (Name, Wert)-Paare vom Benutzer, über herkömmliche Methoden wie Kommandozeile, Konfigurationsdatei und Umgebungsvariablen. BSL-1.0
CLI11 Ein C++11 Kommandozeilenparser, der einen reichhaltigen Funktionsumfang mit einer einfachen und intuitiven Benutzeroberfläche bietet. BSD-3-Clause Header-only; cmake, meson, vcpkg
clipp Leistungsstarkes & ausdrucksstarkes Argumentenparsing für modernes C++. MIT Header-only; cmake, vcpkg
cmd_line_parser Kommandozeilenparser für C++17. MIT nur Header; cmake
cmdlime Eine C++17-Bibliothek für Kommandozeilenparsing, die eine prägnante, deklarative Schnittstelle mit Unterstützung für Unterbefehle, Validatoren und die Möglichkeit bietet, entweder das GNU-, POSIX- oder X11-Format für Kommandozeilenoptionen zu wählen. MS-PL cmake
cxxopts Ein leichtgewichtiger Kommandozeilenargumenten-Parser für C++11/C++17, der die Standard-GNU-Syntax für Optionen unterstützt. MIT Header-only; bazel, cmake
fire-hpp Erstellt voll funktionsfähige CLIs anhand von Funktionssignaturen. BSL-1.0 nur Header; cmake
flags Einfacher, erweiterbarer C++17-Argumentenparser. Unlicense nur Header; cmake
gflags Eine Bibliothek, die die Verarbeitung von Kommandozeilen-Flags implementiert. Sie enthält integrierte Unterstützung für Standardtypen wie String und die Möglichkeit, Flags in der Quelldatei zu definieren, in der sie verwendet werden. BSD cmake
structopt Parst Kommandozeilenargumente durch Definieren einer Struktur. MIT nur Header; cmake
tclap Eine einfache C++-Template-Bibliothek zum Parsen von Kommandozeilenargumenten. Die Bibliothek bietet eine einfache, flexible objektorientierte Schnittstelle. MIT cmake

CSS
Bibliothek Beschreibung Lizenz Konfiguration
mycss CSS-Parser

HOCON
Bibliothek Beschreibung Lizenz Konfiguration
cpp-hocon Eine C++-Implementierung des HOCON-Formats, das von Puppet entwickelt wurde.

JSON
Bibliothek Beschreibung Lizenz Konfiguration
ArduinoJson C++98/11/14/17 JSON-Bibliothek für Arduino, IoT und Embedded C++ MIT cmake
Boost.JSON Das JSON-Parsing, die Serialisierung und das DOM in C++11/17 BSL-1.0
cajun-jsonapi Eine C++-API für JSON mit Schwerpunkt auf einer intuitiven, prägnanten Schnittstelle, die Standard-C++ so genau wie möglich nachahmt. make
DAW JSON Link Eine C++17-Bibliothek, die statische C++-Bindings mit Typüberprüfung bietet, die das direkte Parsen in Benutzerdatenstrukturen ohne Bibliothekszuweisung, Push/Pull-Modi, Allocator-Unterstützung und constexpr ermöglicht BSL 1.0 cmake
Glaze Eine der schnellsten JSON-Bibliotheken (C++23) mit direkter Speicher-Serialisierung. Unterstützt auch BEVE und CSV. MIT cmake, conan, build2, vcpkg
jansson Eine C-Bibliothek zum Kodieren, Dekodieren und Manipulieren von JSON-Daten mit UTF-8-Unterstützung MIT cmake, make
jeayeson Eine sehr vernünftige C++14 JSON-Bibliothek BSD-3 nur Header
jios JSON Input Output Streams MIT cmake
JOST
json Niels Lohmann JSON für C++11, mit intuitiver Syntax MIT Header-only; bazel, cmake, meson
Jsonifier Einige C++20-Klassen für extrem schnelles JSON-Parsing/Serialisierung MIT cmake
JSON Voorhees Killer JSON für C++11 (Doku) Apache-2.0 cmake
JSON++
json11 Eine winzige JSON-Bibliothek für C++11, die JSON-Parsing und -Serialisierung bietet. MIT cmake
JsonBox Eine C++-Bibliothek, die zum einfachen und schnellen Lesen und Schreiben von JSON verwendet wird. MIT cmake
jsoncons Eine Bibliothek für JSON und JSON-ähnliche Datenformate mit JSON Pointer, JSON Patch, JSONPath, CSV, MessagePack, CBOR, BSON, UBJSON. Benutzerdefiniert nur Header
jsoncpp Eine Bibliothek, die die Manipulation von JSON-Werten ermöglicht, einschließlich Serialisierung und Deserialisierung, wobei Kommentare erhalten bleiben. MIT cmake, conan, vcpkg
libjson
minijson DOM-loses und allokationsfreies JSON-Parsing und Serialisierung in C++ Benutzerdefiniert cmake
Neyson Leichtgewichtige C++11 JSON-Bibliothek BSD-3-Clause cmake
nosjob Eine C++98-Bibliothek zur Generierung und zum Konsumieren von JSON-Daten MIT make
qjson
rapidjson Ein schneller JSON-Parser/Generator für C++ mit SAX/DOM-API, unterstützt UTF-8/16/32, verwendet optional SIMD. (Doku) Benutzerdefiniert Header-only; cmake, vcpkg
simdjson Parsen von Gigabytes JSON pro Sekunde unter Ausnutzung moderner Mikroarchitekturen und Parallelisierung mit SIMD (Doku) (Kino) Apache-2.0 cmake, vcpkg
struct_mapping Bildet JSON auf eine C++-Struktur ab und umgekehrt MIT cmake
swxJson Die derzeit bequemste C++JSON-Bibliothek. Lesen und Schreiben komplexer Strukturen auf jeder Ebene mit nur einem Funktionsaufruf. Die Leistung beträgt etwa die Hälfte von RapidJSON. MIT make
ThorsSerializer JSON/BSON/YAML Input Output Streams MIT make
ujson µjson ist eine kleine, C++11, UTF-8, JSON-Bibliothek cmake
yyjson Eine Hochleistungs-JSON-Bibliothek geschrieben in ANSI C MIT cmake

TOML
Bibliothek Beschreibung Lizenz Konfiguration
toml++ TOML-Parser und -Serializer für C++17 und höher
toml11 TOML-Parsing-Bibliothek basierend auf C++11

XML
Bibliothek Beschreibung Lizenz Konfiguration
ai-xml Objekte per Serialisierung in und aus XML schreiben, indem einer Klasse eine einzelne, minimale Funktion hinzugefügt wird. Verwendet libxml++ im Hintergrund. AGPL-3.0 make
GPDS Ein genereller Daten-Serializer zum Serialisieren von Objekten in und aus XML. Verwendet TinyXML im Hintergrund.
gSOAP XML-Datenbindungen
libxml++ libxml++ ist ein C++-Wrapper für die C-Bibliothek libxml zum XML-Parsen. (Doku) LGPL-2
pugixml Ein leichtgewichtiger, einfacher und schneller XML-Parser für C++ mit XPath-Unterstützung MIT cmake, conan
tinyxml
tinyxml2 Ein weiterer und sich in Arbeit befindlicher Ableger von TinyXML.
Xerces

YAML
Bibliothek Beschreibung Lizenz Konfiguration
yaml-cpp Ein YAML-Parser und -Emitter in C++ MIT cmake

[bearbeiten] Container

Bibliothek Beschreibung Lizenz Konfiguration
Boost.Bimap Eine Bibliothek für bidirektionale Maps, die assoziative Container wie bimap<X,Y> anbietet, bei denen sowohl X als auch Y als Schlüssel verwendet werden können. (Quellcode) BSL-1.0
Boost.Container Eine Bibliothek, die mehrere bekannte Container implementiert, darunter STL-ähnliche Container sowie rekursive Container und neue nützliche Container: flat_map, flat_set, flat_multimap, flat_multiset, stable_vector, static_vector, small_vector, devector. (Quellcode) BSL-1.0 nur Header
Boost.Fusion Eine Bibliothek zur Arbeit mit heterogenen Sammlungen von Tupeln. Bietet eine Reihe von Containern (vector, list, set und map) sowie transformierte Darstellungen ihrer zugrunde liegenden Daten, auch Views genannt. (Quellcode) BSL-1.0
Boost.Heap Eine Implementierung von Prioritätswarteschlangen mit mehr Funktionalität und anderen Leistungseigenschaften als die STL. (Quellcode) BSL-1.0
Boost.Pointer Container Bietet Container für die Aufnahme von heap-allokierten Objekten auf ausnahmesichere Weise und mit minimalem Overhead. (Quellcode) BSL-1.0
Boost.Tuple Implementiert vor-C++11 n-tuple (eine Sammlung von Elementen fester Größe) (Quellcode) BSL-1.0
Boost.Variant Implementiert vor-C++17 variant (einen sicheren, generischen, stack-basierten diskriminierten union-Container) (Quellcode) BSL-1.0
C++ Allocators STL-konforme Allokatoren für statischen und Stack-basierten Speicher fester Größe + ein weiterer konformer Allokator, der benutzerdefinierte Begrenzungszuweisungen ermöglicht BSD-3-Clause cmake, make
cpp-btree B-Tree-Container nutzen den CPU-Cache besser aus: btree_map, btree_set, btree_multimap, btree_multiset. (Quellcode) Apache-2.0 nur Header; cmake
DataFrame C++ DataFrame für statistische, finanzielle und ML-Analysen – in modernem C++ unter Verwendung nativer Typen und kontinuierlicher Speicherhaltung BSD-3-Clause cmake, make, conan, vcpkg
eggs::variant Eggs.Variant ist eine generische, typsichere, diskriminierte Union für C++11/14/17. Sie zeichnet sich insbesondere durch ihre sehr gute constexpr-Unterstützung aus. BSL-1.0 cmake
Frozen C++14 constexpr Perfect-Hashing-basierte unveränderliche Sets, Maps und Algorithmen. Apache-2.0 nur Header; cmake
Immer Eine Bibliothek persistenter und unveränderlicher Datenstrukturen Boost cmake
plf::colony Ungeordneter "Bag-ähnlicher" Container, der in Szenarien mit vielen Änderungen std:: Container übertrifft und gültige Zeiger auf nicht gelöschte Elemente unabhängig von Einfügung und Löschung beibehält. C++98/11/14/etc-kompatibel. Siehe auch P0447 (std::hive). (Src) zlib conan build2
plf::list Eine std::list-Implementierung, die Range-Splicing für Cache-Freundlichkeit opfert und schnellere Einfügung, Löschung und Iteration ermöglicht. C++98/03/11/14/17/20/23/26/etc-kompatibel. (Src) (Doc) zlib
plf::reorderase Eine Erweiterung und Optimierung des "swap-and-pop"/"move-and-pop"-Idioms für Random-Access-Container zur Erhöhung der Löschleistung von Random-Access-Containern, wenn die Reihenfolge nach dem Löschen unwichtig ist. Deckt einzelne, Bereichs- und std::erase_if-ähnliche Löschungen ab. C++98/11/14/etc-kompatibel. (Src) zlib
plf::queue Ein Drop-in-Ersatz-Container für den std::queue-Container-Adapter mit besserer Leistung als std::deque und std::list im Queue-Kontext. C++98/11/14/etc-kompatibel. (Src) zlib
plf::stack Ein Drop-in-Ersatz-Container für den std::stack-Container-Adapter mit besserer Leistung als std::vector und std::deque im Stack-Kontext. C++98/11/14/etc-kompatibel. (Src) zlib
ring_span Eine Lite-Implementierung von Arthur O'Dwyers ring_span, auch bekannt als zirkulärer Puffer-View. C++98-kompatibel. BSL-1.0 nur Header; cmake
strict_variant Echtzeit-/Embedded-freundlicher (d.h. -fno-exceptions/-fno-rtti-kompatibler), niemals leerer variant für C++11. Schnell, verhindert viele unerwünschte implizite Konvertierungen. BSL-1.0 cmake
Ygg Eine intrusive C++11-Implementierung von Hochleistungscontainern und Datenstrukturen wie einem Rot-Schwarz-Baum, einem Intervallbaum und einer Intervall-Map. MIT cmake

[edit] Kryptographie

Bibliothek Beschreibung Lizenz Konfiguration
Botan Ein Kryptographie-Toolkit. (Src) BSD 2-Clause „Simplified“ make
crypto++ Eine kostenlose C++-Klassenbibliothek für kryptographische Schemata. (Src) Boost make
gnutls Eine sichere Kommunikationsbibliothek, die die Protokolle SSL, TLS und DTLS sowie die sie umgebenden Technologien implementiert. (Src) LGPL-2.1 make
openssl Ein robustes, kommerzielles, voll funktionsfähiges Toolkit für allgemeine Kryptographie und sichere Kommunikation. (Src) Apache-2.0 make
TomCrypt Ein ziemlich umfassendes, modulares und portables Kryptographie-Toolkit, das Entwicklern eine riesige Auswahl an bekannten veröffentlichten Blockchiffren, Einweg-Hashfunktionen, Verkettungsmodi, Pseudozufallszahlengeneratoren, Public-Key-Kryptographie und einer Vielzahl anderer Routinen bietet. (Src) Public Domain cmake, make

[edit] Datenbanken

Bibliothek Beschreibung Lizenz Konfiguration
Boost::MySQL MySQL-Client-Bibliothek BSL-1.0
cpp-redis C++11 Leichtgewichtiger Redis-Client: asynchron, threadsicher, keine Abhängigkeit, Pipelining, Multiplattform. (Doc) MIT cmake
DTL Lässt ODBC-Record-Sets wie einen STL-Container aussehen (Src) (Doc)
EasyQtSql Eine leichtgewichtige C++11 (Qt-basierte) Bibliothek für schnelle und einfache SQL-Abfragen MIT Header-only; qmake
Galera Das Galera Cluster ist die synchrone Multi-Master-Replikationsbibliothek (Galera) und eine Write Set Replication (WSREP) API für MySQL/MariaDB (Src) GPLv2 cmake, scons
LevelDB Eine von Google entwickelte C++-Bibliothek, die die persistente Speicherung von Key-Value-Daten im Milliardenmaßstab ermöglicht. (Doc) BSD-3 cmake
libpqxx Der C++-Connector für PostgreSQL (Src) BSD-3 cmake, make
lmdb++ C++11-Wrapper für die LMDB Embedded B+ Tree Datenbankbibliothek. Unlicense make
mongocxx Eine offizielle C++11-Treiberbibliothek für MongoDB (Doc). Sie bietet optimierte APIs für CRUD-Operationen, Indizierung und Aggregation. Mit Unterstützung für BSON und integrierten Connection-Pooling- und Authentifizierungsmechanismen bietet sie Hochleistungs- und skalierbare Lösungen für die Entwicklung von C++-Anwendungen, die MongoDB nutzen. Apache 2.0 cmake
mysql++ MySQL DB und Tools
nanodbc Ein kleiner, plattformübergreifender C++14-Wrapper für die native C ODBC-API MIT cmake
ODB Ein Open-Source, plattformübergreifendes und datenbankübergreifendes objekt-relationales Mapping (ORM)-System für C++. ODB unterstützt relationale Datenbanken wie MySQL, SQLite, PostgreSQL, Oracle und Microsoft SQL Server sowie C++98/03 und C++11 Sprachstandards. GPL2 und/oder NCUEL
OTL Eine C++-Template-basierte Datenbankbibliothek für Oracle DB, ODBC und DB2-CLI. (Src)
Pgfe Die PostgreSQL-Client (FrontEnd) API in modernem C++ Zlib cmake
QTL Eine benutzerfreundliche und leichtgewichtige C++-Datenbankbibliothek für MySQL, SQLite und ODBC. Apache-2.0 make
QUINCE QUeries IN C++ Expressions (ORM+EDSL) Boost
QxOrm Eine Object Relational Mapping (ORM) Datenbankbibliothek für C++/Qt, unterstützt die meisten gängigen Datenbanken, Serialisierung (JSON, Binär, XML); eigenständiger Multi-Threaded-HTTP-Webserver GPLv3 oder Proprietär
redis-cpp Eine leichtgewichtige C++17-Clientbibliothek zur Ausführung von Redis-Befehlen. MIT nur Header; cmake
redis-plus-plus Ein Redis-Client, geschrieben in C++11, unterstützt Redis Sentinel, Redis Cluster, Pipeline, Transaktion, Pub/Sub, Connection Pool und STL-ähnliche Schnittstelle Apache-2.0 cmake
SOCI Eine Plugin-basierte Datenbankbibliothek, die SQL-Abfragen in regulären C++-Code einbettet; unterstützte Backends sind: DB2, Firebird, MySQL, ODBC (generisches Backend), Oracle, PostgreSQL, SQLite3. (Src) (Doc) Boost cmake
SQLAPI++ Eine C++-Middleware-Datenbankbibliothek, die mehrere SQL-Datenbanksysteme unterstützt: Oracle, SQL Server, DB2, Sybase, MySQL, PostgreSQL, SQLite, Informix, InterBase / Firebird, SQLBase, SQL Anywhere, ODBC, MariaDB. (Src) (Doc) Benutzerdefiniert make
SQLiteCPP Ein schlanker und einfach zu bedienender C++ SQLite3-Wrapper. MIT cmake, meson, vcpkg
SQLite ORM Eine Embedded Domain-Specific Language (EDSL) für SQL, wie sie von SQLite verstanden wird, für modernes C++. AGPL-3.0, MIT Header-only; cmake, vcpkg
sqlpp11 Eine typsichere eingebettete domänenspezifische Sprache für SQL-Abfragen und -Ergebnisse in C++. BSD-2 cmake
taoPQ Eine leichtgewichtige C++17 PostgreSQL-Clientbibliothek Boost cmake

[edit] Bindings für eingebettete Sprachen

Bibliothek Beschreibung Lizenz Konfiguration
AngelScript Eine Skriptsprache ähnlich C++. ZLib
ChaiScript Eine einfach zu bedienende eingebettete Skriptsprache für C++. BSD-3-Clause
cling Ein interaktiver C++-Interpreter, der auf Clang und LLVM aufbaut, um RAD, Skripterstellung, einbettbare Skripting-Funktionen und Code-Generierung zur Laufzeit zu ermöglichen. (Src) Benutzerdefiniert / LGPL cmake
ExprTk Eine einfach zu bedienende, leicht zu integrierende und extrem effiziente Laufzeit-Engine für die Analyse und Auswertung mathematischer Ausdrücke. ExprTk unterstützt zahlreiche Formen von funktionalen, logischen und vektorbasierten Verarbeitungssemantiken und ist sehr leicht erweiterbar.
Jinx Eine Skriptsprache, die für Videospiele entwickelt wurde. MIT cmake
spidermonkey.dev Mozillas JavaScript- und WebAssembly-Engine.
muparser Eine erweiterbare Hochleistungs-Mathematik-Ausdrucks-Parser-Bibliothek, geschrieben in C++. BSD-2-Clause cmake
PythonQt Eine dynamische Python-Bindung für das Qt-Framework. Sie bietet eine einfache Möglichkeit, die Python-Skriptsprache in C++-Qt-Anwendungen einzubetten. LGPL 2.1
lua Eine leichtgewichtige, multiparadigmatische Skriptsprache, die hauptsächlich für den eingebetteten Einsatz konzipiert ist. C-Bibliothek. MIT make
sol2 Eine moderne C++-Bibliothek für die Bindung an Lua. MIT nur Header; cmake
v8pp Binds C++-Funktionen und -Klassen in die V8 JavaScript-Engine. BSL-1.0 nur Header; cmake

[edit] Eingebettet/Echtzeit

Bibliothek Beschreibung Lizenz Konfiguration
distortos Ein objektorientiertes C++11 RTOS für Mikrocontroller (ARM, STM32) (Src) (Doc) MPL-2.0 cmake
ETL Embedded Template Library - C++03, portable Template-Bibliothek, zugeschnitten auf ressourcenarme (eingebettete) Plattformen (Src) MIT
QP/C++ RTOS-Kernel: Real-Time Embedded Frameworks basierend auf aktiven Objekten & Zustandsautomaten GPLv3
µcuREST C++11 REST/JSON-Server-Framework für Mikrocontroller

[edit] Metadaten zur Datei

Bibliothek Beschreibung Lizenz Konfiguration
exempi
exiv2
libkexiv2
rarian

[edit] Finanzberechnungen

Bibliothek Beschreibung Lizenz Konfiguration
DataFrame Ein C++-DataFrame für statistische, finanzielle und ML-Analysen - in modernem C++ unter Verwendung nativer Typen und kontinuierlicher Speicherhaltung BSD-3-Clause cmake, make, conan
QuantLib Eine quantitative Finanzbibliothek - Eine kostenlose/Open-Source-Bibliothek für quantitative Finanzen Modifizierte BSD

[edit] Spiel-Engine-Architektur

Bibliothek Beschreibung Lizenz Konfiguration
Anax Ein Open-Source C++ Entity System MIT cmake
Anura Eine voll ausgestattete Spiel-Engine und die Technik hinter Frogatto & Friends. Benutzerdefiniert Open Source make, vcpkg
BOX2D Eine Physik-Engine MIT cmake
EntityPlus Ein C++17 Entity Component System BSD-1.0 cmake
EntityX Ein schnelles, typsicheres C++ Entity-Component-System MIT cmake
EnTT Eine winzige Bibliothek für Spieleentwicklung und mehr, geschrieben in modernem C++ MIT Header-only; cmake, bazel, conan, vcpkg, brew, cppget

[edit] Allgemeine Multimedia

Bibliothek Beschreibung Lizenz Konfiguration
Kigs-framework Ein modulares Mehrzweck-Framework für mehrere Plattformen MIT
openFrameworks MIT
SDL Simple DirectMedia Layer: plattformübergreifender (Windows, macOS, Linux, iOS, Android und andere) Low-Level-Zugriff auf Audio-, Tastatur-, Maus-, Joystick- und Grafikhardware über die Grafik-API der jeweiligen Plattform (OpenGL/Direct3D/Metal/Vulkan) (Doc) (Src) zlib cmake
SFML Simple and Fast Multimedia Library; plattformübergreifend (Windows, Linux, macOS und bald Android & iOS); bietet eine einfache Schnittstelle zur Vereinfachung der Entwicklung von Spielen und Multimedia-Anwendungen. Sie besteht aus fünf Modulen: System, Fenster, Grafik (über OpenGL), Audio und Netzwerk. zlib/png cmake
SIGIL Sound, Input, and Graphics Integration Library; eine einfache, plattformübergreifende, minimalistische Bibliothek für Text, Formen, Eingaben, Audio und 2D-Bilder. Unterstützte Plattformen: Windows, Linux und Raspberry Pi Lizenz cmake

[edit] Allgemein

Bibliothek Beschreibung Lizenz Konfiguration
Abseil Eine Open-Source-Sammlung von C++-Bibliothekskode von Google, die die C++-Standardbibliothek ergänzen soll. (Doc) (Src) Apache-2.0 cmake
Abstract Intrusive Containers Flexibler als Boost.Intrusive, aber nicht STL-kompatibel.
Au Eine C++14-kompatible Bibliothek für physikalische Einheiten ohne Abhängigkeiten, mit Schwerpunkt auf Sicherheit, Zugänglichkeit und Leistung. (Doc) Apache 2.0 nur Header
BDE Die Kernbibliotheken der Bloomberg Development Environment von Bloomberg L.P. Apache
Better Enums Reflexive Enums (Enum zu String, Iteration, etc.) mit constexpr-Unterstützung. BSD-2 Header-only, cmake, make
bitfield.h Einrichtung für Bitfelder, portabler/flexibler als die Basis-Spracheinrichtung.
Boost Eine große Sammlung generischer Bibliotheken BSL-1.0
CAF Das C++ Actor Framework (CAF) ist eine Open-Source-Implementierung des Actor-Modells für C++11 mit leichtgewichtigen & schnellen Actor-Implementierungen, Pattern Matching für Nachrichten, Netzwerk-transparentem Messaging und mehr. BSD
Cinder Eine von der Community entwickelte, kostenlose und Open-Source-Bibliothek für professionelle Kreativ-Programmierung in C++. (Doc) (Src) Modifiziertes BSD cmake
CommonPP Eine Mehrzweckbibliothek mit starkem Fokus auf die Gewinnung von Metriken aus einem Projekt. BSD
composite_op.h Grundlegende Introspektion von Klassenmembern, umständlich und oft nicht reentrant, aber manchmal nützlich.
cpp-mmf Eine C++98-Bibliothek, die speicherabgebildete Dateien für POSIX oder Windows kapselt
cxxomfort Backports von C++-Features (C++11 bis C++03 und C++1y-Vorschläge bis C++11/C++03).
Dlib Netzwerk, Threads, grafische Benutzeroberflächen, Datenstrukturen, lineare Algebra, maschinelles Lernen, XML- und Textanalyse, numerische Optimierung, Bayes'sche Netze und zahlreiche andere Aufgaben Boost
eventpp Eine C++-Ereignisbibliothek für Callbacks, Ereignisverteiler und Ereigniswarteschlangen. Mit eventpp können Sie einfach Signal- und Slot-Mechanismen, Publisher- und Subscriber-Muster oder Observer-Muster implementieren. Apache 2.0
fcppt Freundlich's C++ Toolkit (fcppt) ist eine Sammlung von Bibliotheken, die sich auf die Verbesserung allgemeinen C++-Codes konzentrieren, indem sie bessere Typen bereitstellen und funktionale Programmierung nutzen.
Folly Facebook Open-Source-Bibliothek. Eine plattformübergreifende Bibliothek von C++14-Komponenten, die auf Praktikabilität und Effizienz ausgelegt sind. (Doc) Apache-2.0 cmake, vcpkg
GSL Implementierung der C++ Core Guidelines Support Library, empfohlen von Bjarne Stroustrup, Herb Sutter und Co in den C++ Core Guidelines MIT cmake, vcpkg
gsl-lite Eine Version der ISO C++ Guideline Support Library (GSL) für C++98, C++11 und höher MIT nur Header
GUL14 General Utility Library für C++14 von DESY: Häufig verwendete Hilfsfunktionen und Typen, einschließlich String-Hilfsprogrammen, Statistik- und numerischen Funktionen, Containern, Debugging-Mitteln usw. (Src) LGPL-2.1 Meson, vcpkg
History Modernes C++17 Undo/Redo-Framework Unlicense
hspp Eine experimentelle Bibliothek, um Haskell-ähnliche Programmierung in C++ zu bringen. Apache-2.0 nur Header
IP-DOS (tm) IdeaFarm (tm) Piggyback Distributed Operating System: Eine Allzweck-Programmierumgebung für die C++-Sprache. Proprietär Open Source Open Watcom 2.0
JUCE Ein umfangreiches, ausgereiftes, plattformübergreifendes C++-Toolkit GPL
Kangaru Ein Dependency-Injection-Container für C++11 und C++14 MIT
Kerbal Backports moderner STL-Einrichtungen in frühere Standards. Mehr Features! Mehr constexpr! LGPL-3.0 nur Header; cmake
libsourcey Eine plattformübergreifende C++14-Bibliothek für Hochgeschwindigkeitsnetzwerke und Medienkodierung. HTTP, WebSockets, TURN, STUN, Symple und mehr. LGPL-2.1 cmake
LLNL/units Eine Laufzeit-C++-Bibliothek für die Arbeit mit Maßeinheiten und deren Umrechnungen sowie mit String-Darstellungen von Einheiten und Messungen BSD 3-Clause „New“ oder „Revised“ cmake
Loki Eine C++-Bibliothek für Designs, die flexible Implementierungen gängiger Entwurfsmuster und Idiome enthält. MIT make
match(it) Eine leichtgewichtige Pattern-Matching-Bibliothek für C++17 mit Makro-freien APIs. Apache-2.0 nur Header
nonstd-lite Eine Liste von *-lite-Repositories (z.B. span-lite, scope-lite, expected-lite), die C++98/11-Implementierungen einiger vorgeschlagener oder bereits standardisierter C++17/20/23-Bibliothekstypen wie std::span, std::expected usw. enthalten. BSL-1.0 nur Header
nytl Eine generische C++17 Utility-Template-Bibliothek. BSL-1.0 nur Header
OnPosix C++-Bibliothek, die mehrere Abstraktionen (z.B. Threading, Networking, Logging, IPC usw.) auf POSIX-Plattformen bereitstellt.
Reason XML, XPath, Regex, Threads, Sockets, HTTP, SQL, Datum/Uhrzeit, Streams, Kodierung und Dekodierung, Dateisystem, Komprimierung GPL
SaferCPlusPlus Sichere, kompatible Ersetzungen für unsichere C++-Primitive, einschließlich Zeiger, int und std::vector. Boost
Smart Enum to_string, from_string und mehr für Ihre Enums. BSL-1.0 cmake
units Eine Compile-Time-Bibliothek für Dimensionsanalyse und Einheitenumrechnung, basierend auf C++14 ohne Abhängigkeiten MIT nur Header
yaal Yet Another Abstraction Layer - Algorithmen, Sammlungen, beliebige Präzisionsberechnungen, generische DSL-Grammatik-gesteuerte Parser und mehr CC BY-ND-NC 4.0 cmake
Yato Eine moderne C++(14/17) plattformübergreifende STL-ähnliche und STL-kompatible Bibliothek mit Containern, Ranges, Iteratoren, Type Traits und anderen Werkzeugen; Actor-System; typsichere Konfigurationsschnittstelle. Apache-2.0 cmake
yomm2 Offene Multi-Methoden für C++17 Boost
zoolib ZooLib ist ein funktionsreiches C++-Toolkit. MIT

[edit] GPS

Bibliothek Beschreibung Lizenz Konfiguration
gpsd Ein Open-Source-, plattformübergreifendes (Linux/Unix/BSD-Varianten, einschließlich Android und OS X) GPS-fähiges Set von Werkzeugen, wie z.B. ein Übersetzer- und Replikator-Daemon für GPS-Geräte, AIS-Funkgeräte und andere Navigationssensoren. gpsd ist größtenteils in C und Python geschrieben, hat aber auch einen C++-Wrapper. gpsd ist überall in mobilen eingebetteten Systemen zu finden. Jede ortsbezogene Android-App ist indirekt ein gpsd-Client. (Doc) (Src) BSD 2-Klausel scons

[edit] Grafische Benutzeroberfläche

Bibliothek Beschreibung Lizenz Konfiguration
Brisk Plattformübergreifendes C++20 modulares GUI-Framework mit reaktiven Fähigkeiten und skalierbarer, GPU-beschleunigter Darstellung. (Src), (Doc) GPL2+/Proprietär cmake, vcpkg
Dear ImGui Eine leichtgewichtige GUI-Bibliothek für C++ mit minimalen Abhängigkeiten, portabel, renderunabhängig, optimiert für den Einsatz in 3D-Pipeline-fähigen Anwendungen. MIT vcpkg
FLTK Ein plattformübergreifendes C++ GUI-Toolkit (Linux, Windows, MacOS), das moderne GUI-Funktionalität bietet und 3D-Grafik über OpenGL/GLUT unterstützt. Entwickelt, um klein und modular zu sein. Enthält einen UI-Builder. LGPL Ver.2
nana Plattformübergreifende GUI-Programmierung im modernen C++-Stil. (Src), (Doc) BSL-1.0 cmake, vcpkg
nanogui Eine minimalistische plattformübergreifende Widget-Bibliothek für OpenGL 3.x oder höher (Doc)
OWLNext Modernes Update zu OWL zur Erstellung von GUI-Anwendungen in Standard-C++ unter Windows
Slint Ein deklaratives GUI-Toolkit zum Erstellen nativer Benutzeroberflächen für Desktop-, Embedded- und Mikrocontroller-Geräte. (Src), (Doc) GPL 3, Lizenzfrei oder Kommerziell cmake
tiny file dialogs Eine Sammlung von plattformübergreifenden Dateidialogen in C/C++ (keine Initialisierung, kein Hauptloop, 6 modale Funktionsaufrufe) nur Header
U++ Ein plattformübergreifendes (Windows, GNU/Linux, macOS) Rapid Application Development Framework mit integrierter IDE. C++17 kompatibel. (Doku) (Quellcode) BSD-3-Clause make
WxWidgets Ein kostenloses und Open-Source-Framework für plattformübergreifende (Windows, GNU/Linux, macOS) C++-Anwendungen zur Erstellung fortschrittlicher GUI-Anwendungen mit nativen Steuerelementen. (Doku) Modifizierte LGPL cmake, make
xtd Ein modernes C++17/20-Framework zur Erstellung von Konsolen-, GUI- und Unit-Test-Anwendungen unter Windows, macOS, Linux, iOS und Android. (Quellcode) (Doku) MIT cmake

CopperSpice
Bibliothek Beschreibung Lizenz Konfiguration
CopperSpice Eine Sammlung von C++-Bibliotheken zur Entwicklung plattformübergreifender Softwareanwendungen. Es verwendet modernes, idiomatische C++ und integriert sich nahtlos in die STL. CopperSpice wurde vom Qt-Framework abgeleitet. (Doku) (Quellcode) LGPL-2.1 cmake
CsSignal Eine eigenständige, Thread-bewusste Signal/Slot-Bibliothek für C++ LGPL-2.1 cmake
CsString Eine eigenständige, Unicode-bewusste String-Bibliothek für C++ LGPL-2.1 cmake
libGuarded Eine eigenständige Multithreading-Bibliothek für C++ zur Verwaltung des Zugriffs auf gemeinsam genutzte Daten LGPL-2.1 cmake

GTK+
Bibliothek Beschreibung Lizenz Konfiguration
evince
flowcanvas
glibmm
goocanvasmm
gtkmm Eine plattformübergreifende C++-Schnittstelle für die GTK+ GUI-Bibliothek. LGPL
libglademm
libgnomecanvasmm
webkitgtk

Qt
Bibliothek Beschreibung Lizenz Konfiguration
libdbusmenu-qt Eine kleine Bibliothek, die dazu dient, das Teilen und Anzeigen von Menüstrukturen über DBus einfach und benutzerfreundlich zu gestalten. Sie funktioniert sowohl für QT als auch für GTK+ und macht das Erstellen von Menüs einfach.
Qt (Doku) (Quellcode)
QuickQanava Eine C++14 Netzwerk-/Graph-Visualisierungsbibliothek / Qt-Knoten-Editor. BSD 2.0 cmake
qwt5 Qt Widgets für technische Anwendungen
qwtplot3d

U++
Bibliothek Beschreibung Lizenz Konfiguration
U++ Ein plattformübergreifendes Rapid Application Development Framework für C++, das auf die Produktivität von Programmierern ausgerichtet ist. Es enthält eine Reihe von Bibliotheken (GUI, SQL usw.) und eine integrierte Entwicklungsumgebung. (Quellcode/Binärdateien) BSD
upp-components Eine Sammlung von 3rd-Party-Paketen für U++, wie z.B. TerminalCtrl, MessageCtrl etc. BSD-3-Clause

[bearbeiten] Grafik

Bibliothek Beschreibung Lizenz Konfiguration
bgfx Eine leistungsstarke, plattformübergreifende (Windows, Mac, Linux, iOS, Android, Web) 2D/3D-Grafik-Rendering-Bibliothek, die Shader unterstützt und über Rendering-Backends verfügt: DX, OpenGL, Metal, WebGL, Vulkan etc. (Doku) BSD-2 make
cairomm Ein C++-Wrapper für die Cairo-Grafikbibliothek, die eine 2D-Bibliothek mit Unterstützung für mehrere Ausgabegeräte ist: X Window, Quartz, Win32, Bildpuffer, PostScript, PDF, SVG, OpenGL (experimentell). LGPL
dfpsr Ein 2D-, 3D- und isometrischer Software-Renderer mit Desktop-GUI-Toolkit, minimalen Abhängigkeiten, entwickelt für langfristige Wartung und kann ohne 3D-beschleunigte Treiber ausgeführt werden zlib
gegl Generic Graphics Library (GEGL) ist ein datenflussbasiertes Bildverarbeitungs-Framework, das Gleitkommaverarbeitung und nicht-destruktive Bildverarbeitungsfunktionen bietet. (Quellcode) LGPL
io2d Eine Referenzimplementierung von P0267, der vorgeschlagenen 2D-Grafik-API für ISO C++ BSL-1.0 cmake
nanovg Eine antialiased 2D-Vektorgrafik-Zeichenbibliothek in C aufbauend auf OpenGL für UI und Visualisierungen, mit Ports für DX11/Metal/bgfx. zlib
nux Ein OpenGL-Toolkit LGPL v3
pangomm Die offizielle C++-Schnittstelle für die Pango-Schriftlayoutbibliothek. (Quellcode) LGPL v2.1 make
Skia Eine Open-Source 2D-Grafikbibliothek in C++. Die Skia Graphics Engine wird in Google Chrome, Chrome OS, Mozilla Firefox, Android, LibreOffice, Flutter usw. verwendet. Skia hat mehrere Backends: Software-Rasterisierung, (PDF)-Ausgabe, OpenGL, SVG usw. New BSD
TXLib TX Library ist eine kleine 2D-Grafikbibliothek für Win32, geschrieben in C++.
ULIS Eine plattformübergreifende C++14-Bibliothek für generelle digitale Bildverarbeitung, 2D-Software-Rasterizer, unbegrenzte Bildformate (u8, u16, u32, float, double), benutzerdefinierte bit-basierte Speicherlayouts, alle Photoshop-Pixel-Blending-Modi + 11 zusätzliche Modi, Farbmodelle (RGB, HSL, HSV, CMYK, ...), Farbverwaltete Pipelines, Farbraumunterstützung (icm-Profile und geräteunabhängig), optimierte Algorithmen mit Multithreading, optimierte Algorithmen mit SIMD-Erweiterungen (SSE2), Bildpools und Caches für Optimierungen, Speicherspeicherung von animierten Bildsequenzen. Benutzerdefiniert (kostenlos für nicht-kommerzielle Zwecke) cmake

[bearbeiten] Grafik (3D)

Bibliothek Beschreibung Lizenz Konfiguration
assimp 3D-Modell-Laden BSD-3 cmake, vcpkg
bgfx Eine plattformübergreifende, grafik-API-agnostische Rendering-Bibliothek im "Bring Your Own Engine/Framework"-Stil. BSD-2 make, vcpkg
Diligent Engine Eine moderne, plattformübergreifende Low-Level-3D-Grafikbibliothek. Apache-2.0 cmake
Epoxy Ein moderner Nachfolger von GLEW. Abstrakten von Unterschieden zwischen verschiedenen Arten von GL-Kontexten, was die Verwendung manchmal einfacher macht als GLEW. Wird seit 2015 vom GTK+-Projekt verwendet. MIT Meson, vcpkg
G3D Die G3D Innovation Engine ist eine vollwertige, Open-Source, plattformübergreifende (Windows, Linux, Mac OS) 3D-Engine, geschrieben in C/C++. G3D wird in kommerziellen Spielen, Forschungsarbeiten, Simulatoren und Universitätskursen eingesetzt. Sie unterstützt Echtzeit- und Offline-Hardware-Rendering, Raytracing, Modell-Laden, lineare Algebra und GP-Berechnungen auf GPUs. Unterstützt 3DS, OBJ, MP4, PNG, JPG, MD3 und viele andere Formate, beinhaltet eine native OpenGL-fähige GUI. (Quellcode) (Doku) BSD-2
GLAD Eine anpassbare, leichtgewichtige Bibliothek zum Laden von OpenGL-Funktionen
GLEW Ein OpenGL-Funktionslader (Quellcode) EXTGL/BSD/MIT make, vcpkg
GLFW Ein OpenGL-Fenstermanager (Quellcode) (Doku) zlib/libpng cmake, vcpkg
GLM The OpenGL Mathematics (GLM) ist eine C++-Mathematikbibliothek für Grafikanwendungen, basierend auf der GLSL-Spezifikation. The Happy Bunny /
MIT
Header-only; cmake, vcpkg
Godot Eine voll ausgestattete, plattformübergreifende 2D- und 3D-Spiel-Engine in C++17 mit einem grafischen Editor, der auf ihr selbst und einer Python-ähnlichen Skriptsprache basiert. MIT scons
hlsl++ Eine C++-Mathematikbibliothek für Rendering mit HLSL-Syntax. Unterstützt SSE und NEON MIT nur Header
Horde3D Eine kleine Open-Source 3D-Rendering-Engine. Sie wurde mit dem Ziel entwickelt, eine Grafik-Engine zu schaffen, die die für Spiele der nächsten Generation erwarteten atemberaubenden visuellen Effekte bietet und dabei leichtgewichtig und so sauber wie möglich ist. EPL
Irrlicht Die Irrlicht Engine ist eine Open-Source Echtzeit-3D-Engine, geschrieben in C++. Sie ist plattformübergreifend und nutzt D3D, OpenGL und eigene Software-Renderer. zlib/libpng make, vcpkg
klein Eine C++11/14/17 SSE-optimierte Projektionsgeometrie-Algebra-Bibliothek für Grafik und Animation MIT cmake, vcpkg
Magnum Eine leichtgewichtige und modulare Grafik-Middleware für C++11/C++14 für Spiele und Datenvisualisierung (Quellcode) Benutzerdefiniert cmake
O3DE Die Open-source 3D Engine (ehemals Amazons Lumberyard) ist eine plattformübergreifende 3D-Engine in C++, mit der AAA-Spiele, filmreife 3D-Welten und hochpräzise Simulationen erstellt werden können. Beinhaltet Physiksimulation, Skript-Engine, Netzwerk und mehr. (Doku) Apache 2.0 cmake
Ogre3D OGRE ist eine objektorientierte Grafik-Rendering-Engine – eine vielseitige Visualisierungsbibliothek, geeignet für wissenschaftliche Visualisierung, Spiele, Simulation, Virtual Reality und andere Grafikprojekte. Sie ist plattformübergreifend und sehr robust, mit guter Dokumentation. MIT cmake, vcpkg
Open CASCADE SDK für 3D CAD/CAM/CAE-Anwendungen (Quellcode) LGPL-2.1 cmake
OpenGL 3D-Sprache, Grafik und SDK zur Entwicklung von 3D-Anwendungen. Khronos (MIT)
OpenSceneGraph OpenSceneGraph ist ein Open-Source, Hochleistungs-3D-Grafik-Toolkit, das von Anwendungsentwicklern in Bereichen wie visuelle Simulation, Spiele, Virtual Reality, wissenschaftliche Visualisierung und Modellierung verwendet wird. (Quellcode) (Doku) Benutzerdefiniert,
GNU LGPL
cmake, vcpkg
Visionaray Eine C++-Template-Bibliothek für Raytracing. MIT cmake
VTK Visualization Toolkit (VTK) ist eine Open-Source-Software zur Manipulation und Anzeige wissenschaftlicher Daten. Sie bietet modernste Werkzeuge für 3D-Rendering, eine Reihe von Widgets für 3D-Interaktion und umfangreiche 2D-Plotting-Fähigkeiten. BSD-3 cmake, vcpkg
Vulkan Eine Low-Level-API, die viele der Abstraktionen entfernter, die in Grafik-APIs früherer Generationen zu finden waren. Dies ist großartig für maximale Leistung, hat aber den Nebeneffekt, dass mehr Komplexität für den Entwickler freigelegt wird. Glücklicherweise gibt es mehrere ausgezeichnete Tutorials, die helfen, diese Hürde zu überwinden und schnell produktiv zu werden. Khronos (MIT) make, vcpkg

[bearbeiten] Bilder

Bibliothek Beschreibung Lizenz Konfiguration
Adobe/boost GIL Eine High-Level-Generische Bibliothek, die sich auf Algorithmen für 2D-Bilder konzentriert. Sehr begrenzte I/O-Optionen. BSL-1.0
agge Anti-Grain Evolution. Eine 2D-Grafik-Engine für Geschwindigkeit und Qualität in C++ MIT cmake
FreeImage Ein Open-Source-Bibliotheksprojekt für Entwickler, die beliebte Bildformate wie PNG, BMP, JPEG, TIFF und andere unterstützen möchten GPLv2, GPLv3, FIPL
FreeImageRe Ein Fork der Open-Source-Bibliothek FreeImage v3.18 zur Unterstützung von Bildcodec-Updates und zur Anpassung für eine komfortable Nutzung. Alle ursprünglichen Formate und Plugins werden beibehalten. GPLv2, GPLv3, FIPL cmake
GraphicsMagick Lesen, Schreiben und Bearbeiten von Bildern in über 88 wichtigen Formaten. Im Jahr 2002 aus ImageMagick ausgegliedert. Copyright Mercurial
SAIL Lesen und Schreiben von statischen, animierten, mehrseitigen Bildern zusammen mit ihren Metadaten und ICC-Profilen. Konvertierungsfähigkeiten. Ziele: Einfachheit und Geschwindigkeit. MIT cmake
stb Eine Sammlung von C/C++-Bibliotheken für die Spieleentwicklung, die Bildlader/-schreiber/-größenänderer, Schriftart-Text-Rasterizer, typsichere Container, Ogg Vorbis-Decoder, Echtzeit-DXT-Kompressor, Perlin-Noise-Generator, Lexer für kleine DSLs, schnelles sprintf und mehr enthält. MIT, Benutzerdefiniert nur Header

Formate
Bibliothek Beschreibung Lizenz Konfiguration
djvulibre
imagemagick
Kaitai Struct C++ Laufzeit
libraw
openexr
poppler
qimageblitz
SVG++

Plotting
Bibliothek Beschreibung Lizenz Konfiguration
Matplot++ Eine gnuplot-basierte C++ Grafikbibliothek für Datenvisualisierung. Matplot++ kann folgende Bibliotheken nutzen: OpenCV, OpenGL, LAPACK, BLAS, FFTW, JPEG, TIFF, ZLIB, PNG, GLAD, GLFW3. (Doku) MIT cmake
plotutils Das GNU-Paket plotutils enthält libplot, eine C/C++-Bibliothek zum Exportieren von 2D-Vektorgrafiken in viele Dateiformate, sowohl Vektor- als auch Bitmap. libplot kann 2D-Vektorgrafiken animieren und verwendet eine Postscript-ähnliche API für den Dateiexport und Grafikanimationen. GPL
sciplot Eine moderne wissenschaftliche Plot-Bibliothek in C++, die von gnuplot angetrieben wird und den Export nach PDF, SVG, PNG, EPS usw. ermöglicht. MIT Header-only; cmake, vcpkg

[bearbeiten] Bildverarbeitung

Bibliothek Beschreibung Lizenz Konfiguration
dlib
Halide Eine in C++ eingebettete DSL für die Hochleistungsverarbeitung von Bildern und Tensoren. MIT cmake, vcpkg
ITK - Insight Toolkit ITK ist eine Open-Source, plattformübergreifende Bibliothek, die Entwicklern eine umfangreiche Suite von Software-Tools für die Bildanalyse bietet. ITK wurde durch Extreme-Programming-Methoden entwickelt und baut auf einer bewährten, räumlich orientierten Architektur für die Verarbeitung, Segmentierung und Registrierung von wissenschaftlichen Bildern in zwei, drei oder mehr Dimensionen auf. Apache 2.0 cmake
opencv
OTB

[bearbeiten] Internationalisierung

Bibliothek Beschreibung Lizenz Konfiguration
gettext GNU Internationalisierungsbibliothek. GPL make
ICU International Components for Unicode ist eine ausgereifte, weit verbreitete Sammlung von C/C++-Bibliotheken, die Unicode- und Globalisierungsunterstützung für Softwareanwendungen bietet. (Quellcode) icu4c/LICENSE make
spirit-po Eine kleine Bibliothek, die po-Dateien parst und eine Schnittstelle ähnlich wie GNU libintl bereitstellt. Basiert auf boost::spirit. BSL-1.0 nur Header
uni-algo Implementierung von Unicode-Algorithmen für C/C++ MIT/Unlicense cmake, conan, vcpkg

[bearbeiten] Logging

Bibliothek Beschreibung Lizenz Konfiguration
Backward Ausgabe schöner Python-ähnlicher Stack-Traces mit Farben und Quellcode-Ausschnitten, insbesondere bei Abstürzen. MIT Nur Header; cmake, conan
Boost.Log Eine plattformübergreifende Logging-Bibliothek, die einfach zu bedienen, erweiterbar und leistungsfähig ist. BSL-1.0
clutchlog Ein Single-Header-Logging-System, das auf vielseitiges DEBUGGING statt auf die Speicherung von Service-Ereignissen abzielt. BSD cmake
glog Google Logging Library für C++98 basierend auf C++-Style-Streams Lizenz bazel, cmake, vcpkg
Log4cplus Plattformübergreifende, C++17 Logging API (modelliert nach der Java log4j API), die threadsichere, flexible und beliebig granulare Kontrolle über Log-Management und Konfiguration bietet. BSD (zweigleisig) oder Apache 2.0 Autotools, cmake, Visual Studio
Log4cpp Eine Bibliothek von C++-Klassen für flexibles Logging in Dateien, Syslog, IDSA und andere Ziele. LGPL
log4cxx Apache log4cxx ist ein Logging-Framework für C++, das nach Apache log4j gestaltet ist. (Quellcode) Apache cmake
lwlog Eine extrem schnelle synchrone und asynchrone C++17 Logging-Bibliothek MIT cmake
Pantheios Eine Diagnose-Logging-API-Bibliothek, die eine Kombination aus Typsicherheit, Effizienz, Generizität und Erweiterbarkeit bietet BSD-Stil
plog Ein portables und einfaches Log für C++ in weniger als 1000 Codezeilen MPL-2.0
Quill Eine plattformübergreifende C++14 Asynchrone Low Latency Logging Library MIT cmake
spdlog Eine super schnelle C++ Logging-Bibliothek MIT Nur Header; cmake, conan

[bearbeiten] Fehlerbehandlung

Bibliothek Beschreibung Lizenz Konfiguration
Boost.LEAF Eine leichtgewichtige Fehlerbehandlungsbibliothek für C++11: Single-Header-Format, keine Abhängigkeiten, keine dynamischen Speicherzuweisungen, kann mit oder ohne Ausnahmebehandlung verwendet werden, bereit für Multithreading. (Quellcode) BSL-1.0 Nur Header, cmake

[bearbeiten] Mathematik

Bibliothek Beschreibung Lizenz Konfiguration
alglib ALGLIB ist eine plattformübergreifende (Windows/POSIX/Linux) Bibliothek für numerische Analyse und Datenverarbeitung. ALGLIB-Funktionen umfassen: Datenanalyse, Optimierungs- und Nichtlineare Löser, Interpolation, Lineare Algebra und lineare Löser, FFT und viele andere. Kostenlos (GPL/Persönlich/Akademisch) und Kommerziell
ArrayFire Eine plattformübergreifende (Windows/OSX/Linux) Allzweck-HPC-Bibliothek (CPU/GPU/OpenCL/CUDA/GPGPU) für paralleles Rechnen. ArrayFire-Domänen sind: Vektor-Algorithmen, Bildverarbeitung, Computer Vision, Signalverarbeitung, Lineare Algebra, Statistik und mehr. (Quellcode) Benutzerdefiniert
Boost.Math Enthält mehrere Beiträge im Bereich der Mathematik: Gleitkomma-Dienstprogramme, Mathematische Konstanten, Statistische Verteilungen und Funktionen, Statistik, Vektorfunktionalitäten - Normen, Spezielle Funktionen, Wurzel FINDUNG & Minimierungsalgorithmen, Polynome und rationale Funktionen, Interpolation, Quadratur und Differentiation, Filter, Komplexe Zahlenfunktionen, Quaternionen, Oktaven, Ganzzahl-Dienstprogramme (größter gemeinsamer Teiler und kleinstes gemeinsames Vielfaches), Reihen, Brüche und Kettenbrüche. BSL-1.0
Boost.Random Bietet eine Vielzahl von Generatoren und Verteilungen zur Erzeugung von Zufallszahlen mit nützlichen Eigenschaften, wie z.B. Gleichverteilung. BSL-1.0
Boost.SafeNumerics C++14, garantierte korrekte Ganzzahlarithmetik, ein Drop-in-Ersatz für die integrierten Ganzzahltypen. BSL-1.0 nur Header
cpp-measures Eine C++11-Bibliothek zur Handhabung physikalischer Maßeinheiten MPL-2.0 nur Header
G+Smo Eine plattformübergreifende Bibliothek für isogeometrische Analysen (Doku) MPL-2.0 cmake
GNU MP Bignum C++-Schnittstelle Eine C++-Komfortklassen-Schnittstelle, die überladene Funktionen und Operatoren bietet. Die GMP ist eine kostenlose C-Bibliothek für Arithmetik mit beliebiger Genauigkeit, die mit vorzeichenbehafteten Ganzzahlen, rationalen und Gleitkommazahlen arbeitet. GNU LGPL v3 und GNU GPL v2
libmpdec++ Eine plattformübergreifende C-Bibliothek (mit C++-Wrappern) für korrekt gerundete Dezimal-Gleitkommaarithmetik mit beliebiger Genauigkeit. BSD-2-Clause make, nmake
NTL Eine Bibliothek für Zahlentheorie. NTL ist eine leistungsstarke, portable C++-Bibliothek, die Datenstrukturen und Algorithmen für die Manipulation von vorzeichenbehafteten Ganzzahlen beliebiger Länge sowie für Vektoren, Matrizen und Polynome über Ganzzahlen und über endlichen Körpern bereitstellt. LGPLv2.1+
PCGrand PCG ist eine Familie von einfachen, schnellen, speichereffizienten und statistisch guten Algorithmen zur Generierung von Zufallszahlen. Im Gegensatz zu vielen Allzweck-Zufallszahlengeneratoren sind sie schwer vorherzusagen. Apache
stats++ Fortgeschrittene, umfassende statistische Software: Datenerfassung und -vorverarbeitung, Statistik, maschinelles Lernen und Optimierung, mit offenem C++-Quellcode.
StatsLib Eine Template-Bibliothek für statistische Verteilungsfunktionen. Apache-2.0 nur Header

Automatentheorie
Bibliothek Beschreibung Lizenz Konfiguration
yasmine Ein C++11 UML-Zustandsautomaten-Framework (Doku) (Quellcode) Lizenz

Klassenbibliothek für Zahlen
Bibliothek Beschreibung Lizenz Konfiguration
BigNumber Eine C++-Klasse zur Erstellung und Berechnung von Ganzzahlen mit beliebiger Länge Apache 2.0 cmake
Boost.Multiprecision Die Multiprecision-Bibliothek bietet Ganzzahl-, rationale, Gleitkomma- und komplexe Typen in C++, die mehr Bereich und Präzision als die gewöhnlichen grundlegenden (eingebauten) C++-Typen aufweisen. BSL-1.0
cln CLN ist eine Bibliothek für effiziente Berechnungen mit allen Arten von Zahlen in beliebiger Genauigkeit. GPL
CNL Compositional Numeric Library - numerische Typen mit fester Genauigkeit BSL-1.0 cmake, conan
fpm Eine C++11 fixed-point math Bibliothek, die die Gleitkommfunktionalität der Standardbibliothek auf Ganzzahlen bietet. Nützlich, wenn Ihre Zielplattform keine FPU hat oder deterministische Berechnungen erforderlich sind. MIT nur Header; cmake
Universal Numbers Eine C++17/20 Template-Bibliothek, die Plug-in-Ersetzungen für die nativen Arithmetiktypen (Ganzzahl/Dezimal/Festkomma/Gleitkomma/Posits/Logarithmisch/Intervall) bereitstellt. MIT cmake, vcpkg, conan

Berechnungsgeometrie
Bibliothek Beschreibung Lizenz Konfiguration
Boost.Geometry Boost.Geometry (auch bekannt als Generic Geometry Library, GGL) definiert Konzepte, Primitive und Algorithmen zur Lösung von Geometrieproblemen. Boost.Geometry enthält einen dimensionsunabhängigen, koordinatensystemunabhängigen und skalierbaren Kernel, basierend auf Konzepten, Metafunktionen und Tag-Dispatching. Unterstützte Algorithmen sind: Berechnung von Fläche, Länge, Umfang, Schwerpunkt, konvexe Hülle, Schnitt (Clipping), innerhalb (Punkt im Polygon), Abstand, Hülle (Bounding Box), Vereinfachung, Transformation und vieles mehr. Die Bibliothek unterstützt Arithmetiknummern mit hoher Genauigkeit. BSL-1.0
CGAL Computational Geometry Algorithms Library GPL-3.0 oder kommerziell cmake
PCL Point Cloud Library
pmp-library Polygon Mesh Processing Library
Wykobi Computational Geometry Library

Graphentheorie
Bibliothek Beschreibung Lizenz Konfiguration
Boost.Graph BSL-1.0
CXXGraph Eine C++17-Bibliothek für Graphendarstellung, -manipulation, -partitionierung und -algorithmen AGPL-3.0 nur Header; cmake
GTpo Eine C++14-Bibliothek zur Modellierung gerichteter Graphen, Teil des QuickQanava-Projekts BSD qmake, cmake
LEMON Library for Efficient Modeling and Optimization in Networks implementiert gängige Datenstrukturen und Algorithmen mit Schwerpunkt auf kombinatorischer Optimierung, Graphen und Netzwerken. (Doku) Lizenz
NGraph Eine einfache (Netzwerk-)Graphbibliothek in C++
OGDF Open Graph algorithms and Data structures Framework – ist eine C++-Bibliothek für Graphenalgorithmen, insbesondere für die automatische Graphenzeichnung. GPL v2 oder v3

Lineare Algebra
Bibliothek Beschreibung Lizenz Konfiguration
Armadillo Eine C++-Template-Bibliothek für lineare Algebra und wissenschaftliches Rechnen mit Wrappern für OpenBLAS, Intel MKL, LAPACK, ATLAS, ARPACK, SuperLU und FFTW. Nützlich für ML, Mustererkennung, DSP, Bioinformatik, Statistik, Finanzen usw. Apache 2.0
Blasw Ein C++11 BLAS und Teile eines LAPACK-Wrappers BSD-3-Clause nur Header; cmake
Blaze
Blitz++ Eine C++-Template-Klassenbibliothek, die leistungsstarke dichte Arrays und Vektoren, Zufallszahlengeneratoren und kleine Vektoren bereitstellt. GPL-3.0, LGPL-3.0, Benutzerdefiniert cmake
Boost.uBLAS Eine C++-Template-Klassenbibliothek, die BLAS-Funktionalität der Level 1, 2, 3 für dichte, gepackte und dünn besetzte Matrizen bietet. Verwendet Expression Templates. BSL-1.0
C++ Matrix Hochleistungsfähige und präzise (z. B. Randfälle) Matrix-Mathematik-Bibliothek mit Expression-Template-Arithmetikoperatoren BSD-3-Clause cmake, make
DecompLib Eine C++11-Bibliothek zur Zerlegung eines Vektors in eine Menge von positiv definitiven gewichteten Basisvektoren. MIT nur Header
Dlib - lineare Algebra-Werkzeuge
Eigen Eine C++-Template-Bibliothek für lineare Algebra: Matrizen, Vektoren, numerische Löser und verwandte Algorithmen. MPL2 cmake, conan
ETL
IT++
Matrix Einfach zu bedienende wissenschaftliche Computerbibliothek in/für C++, verfügbar für Linux und Windows. MIT cmake
NumCpp Eine C++-Template-Bibliothek, die Pythons NumPy implementiert. MIT Nur Header; cmake, vcpkg, conan
PETSc Eine Sammlung von Datenstrukturen und Routinen für die parallele Lösung wissenschaftlicher Anwendungen, die durch partielle Differentialgleichungen modelliert werden. Es unterstützt MPI und GPUs über CUDA oder OpenCL sowie hybride MPI-GPU.
Spectra Sparse Eigenvalue Computation Toolkit als Redesigned ARPACK ist eine Open-Source-C++-Bibliothek für große Eigenwertprobleme, die auf der Eigen-Lineare-Algebra-Bibliothek (ebenfalls Open-Source und nur Header) aufbaut. (Quellcode) MPL-2.0 Header-only; cmake, vcpkg
Tense Eine schnelle C++17 Expression-Template-Matrix- und Tensorbibliothek. BSD-3-Clause nur Header; cmake
xtensor Eine C++-Bibliothek für numerische Analysen mit mehrdimensionalen Array-Ausdrücken. BSD

Maschinelles Lernen
Bibliothek Beschreibung Lizenz Konfiguration
Dlib Werkzeuge für maschinelles Lernen
FANN Eine Fast Artificial Neural Network Bibliothek
gaenari Ein inkrementeller Entscheidungsbaum basierend auf C++17 Apache-2.0 cmake
liblinear
libtorch Ein C++-Frontend für die beliebte PyTorch-Python-Bibliothek (Backend ist in C++ geschrieben) BSD-Stil cmake
MLPACK Ein Paket für maschinelles Lernen
Shogun Ein skalierbares Werkzeug für maschinelles Lernen
stats++
tensorflow Ein Open-Source-Framework für maschinelles Lernen für Alle; bietet eine stabile C++ API und ist hauptsächlich in C++ geschrieben Apache-2.0 bazel

Numerische Berechnungen
Bibliothek Beschreibung Lizenz Konfiguration
LibBF Eine numerische Berechnungsbibliothek mit beliebiger Genauigkeit, entwickelt von Bellard, mit einem Beispielprogramm, das π auf Milliarden von Bits berechnet. MIT

Optimierung
Bibliothek Beschreibung Lizenz Konfiguration
ceres-solver Eine Open-Source-C++-Bibliothek zur Modellierung und Lösung großer, komplizierter Optimierungsprobleme. Es ist eine funktionsreiche, ausgereifte und leistungsstarke Bibliothek, die seit 2010 bei Google in der Produktion eingesetzt wird. Apache cmake, conan
OptimLib Eine C++11-Bibliothek numerischer Optimierungsmethoden für nichtlineare Funktionen.

Symbolische Ausdrucksmanipulation
Bibliothek Beschreibung Lizenz Konfiguration
CasADi Ein symbolisches Framework für nichtlineare Optimierung und algorithmische Differenzierung. Unterstützt C++-Code-Generierung für symbolische Ausdrücke und dynamische Verbindung von kompiliertem generiertem Code. LGPLv3.0 cmake
ExprTk Die C++ Mathematical Expression Toolkit Library (ExprTk) ist ein einfach zu bedienender, leicht zu integrierender und extrem effizienter Laufzeit-Parser und eine Auswertungsmaschine für mathematische Ausdrücke. ExprTk unterstützt zahlreiche Formen von funktionalen, logischen und vektorverarbeitenden Semantiken und ist sehr leicht erweiterbar. MIT nur Header
GiNaC Eine Bibliothek zur Erstellung integrierter Systeme, die symbolische Manipulationen mit etablierteren Bereichen der Informatik (wie rechenintensive numerische Anwendungen, grafische Benutzeroberflächen usw.) unter einem Dach vereinen. GPLv3
mathiu.cpp Ein einfaches Computeralgebrasystem in C++17 Apache-2.0 cmake
SEMT Symbolische Differentiation zur Kompilierzeit Lizenz make
SymbolicC++ Ein Allzweck-Computeralgebrasystem GPLv2 autoconf
SymCC Ein Compiler-Wrapper, der symbolische Ausführung während der Kompilierung in das Programm einbettet, und eine zugehörige Laufzeit-Supportbibliothek. Im Wesentlichen fügt der Compiler Code ein, der symbolische Ausdrücke für jeden Wert im Programm berechnet. Die eigentliche Berechnung erfolgt über Aufrufe an die Supportbibliothek zur Laufzeit. GPLv3 cmake
SymEngine Eine eigenständige, schnelle C++-Bibliothek für symbolische Manipulation. MIT cmake
ViennaMath Eine symbolische Mathematikbibliothek, die eine bequeme Instanziierung, Manipulation und Auswertung mathematischer Ausdrücke zur Laufzeit und zur Kompilierzeit ermöglicht. MIT cmake

[bearbeiten] Metaprogrammierung

Bibliothek Beschreibung Lizenz Konfiguration
Boost.CallableTraits Eine C++11/17-Bibliothek für die Compile-Time-Inspektion und -Manipulation aller "aufrufbaren" Typen. Ein Nachfolger von Boost.FunctionTypes. BSL-1.0 nur Header
Boost.Hana Eine neue Metaprogrammierbibliothek für Typen und Werte BSL-1.0
Boost.Metaparse Eine Parser-Bibliothek zur Kompilierzeit, die Typen, Werte und Metafunktionen aus Compile-Time-Strings erstellt. BSL-1.0
Boost.Mp11 Eine C++11 Metaprogrammierbibliothek zur Compile-Time-Manipulation von Datenstrukturen, die Typen enthalten. BSL-1.0 nur Header
Boost.MPL Eine ursprüngliche Metaprogrammierbibliothek, die für C++03 konzipiert wurde, langsam ist. BSL-1.0
Boost.PFR Eine C++14-Bibliothek für grundlegende Reflektion (ohne Makros): Besuch von Mitgliedern eines benutzerdefinierten Typs nach Index, E/A-Streaming. BSL-1.0 nur Header
Boost.Proto Eine Bibliothek zum Erstellen von EDSLs, die auf Expression Templates basieren. BSL-1.0
Brigand Verwendet Eager-Metafunktionen, optimiert für beste Leistung.
CoMeta Eine leichte C++14 Metaprogrammierbibliothek. nur Header
Meta Verwendet Eager-Metafunktionen, Mittelweg zwischen Metal und Brigand in Bezug auf die Leistung.
Metal Verwendet Eager-Metafunktionen, 100% SFINAE-freundlich.
refl-cpp Eine moderne Compile-Time-Reflektionsbibliothek für C++ mit Unterstützung für Überladungen, Templates, Attribute und Proxies.
Refureku Eine C++17 Laufzeit-Reflektions- und Code-Generierungsbibliothek. MIT cmake
visit_struct Eine Miniatur-Reflektionsbibliothek, die Struktur-Besucher für C++11/14 bereitstellt. Eigenständig, 200-400 Zeilen Code, je nachdem wie man zählt.

[bearbeiten] PDF

Bibliothek Beschreibung Lizenz Konfiguration
HARU Eine kostenlose, plattformübergreifende, Open-Source-Bibliothek zur Generierung von PDF-Dateien. (Doku) (Quellcode) Zlib cmake
JagPDF Eine kostenlose Open-Source-Bibliothek zur Generierung von PDF (Doku) MIT
PoDoFo Eine kostenlose portable C++17-Bibliothek für die Arbeit mit PDF. LGPL-2.0 cmake, conan, vcpkg
PDF-Writer Eine Hochleistungs-C++-Bibliothek zum Erstellen, Ändern und Parsen von PDF-Dateien. Apache-2.0 cmake, conan, vcpkg

[bearbeiten] Physik und Simulationen

Bibliothek Beschreibung Lizenz Konfiguration
Bullet Eine physikalische Simulation für Spiele, visuelle Effekte, Robotik und Bestärkungslernen.
HELICS Ein Co-Simulations-Framework zur Synchronisation von Zeit und Datenaustausch zwischen verschiedenen Arten von Simulatoren. BSD 3-Clause „New“ oder „Revised“ cmake
ProjectCHRONO Eine Open-Source-Physik-Simulationsmaschine.
ReactPhysics3D Eine C++ Physik-Engine-Bibliothek für 3D-Simulationen und Spiele.

[bearbeiten] Robotik

Wahrnehmung
Bibliothek Beschreibung Lizenz Konfiguration
GTSAM Sensor Fusion, SLAM, SFM, VO, Computer Vision (Quellcode) BSD cmake
opencv Computer Vision und Wahrnehmung, Kalibrierung, Merkmalsabgleich (Quellcode) (Doku) BSD, Apache 2 cmake

[bearbeiten] Serialisierung

Bibliothek Beschreibung Lizenz Konfiguration
Boost.Serialization BSL-1.0
C++ XML objects
cereal Eine C++11-Serialisierung. BSD
cista Eine einfache, hochleistungsfähige, Copy-Zero-C++-Serialisierungs- und Reflektionsbibliothek. (Quellcode) MIT cmake
cppcodec Eine C++11-Bibliothek zur Kodierung/Dekodierung von Base64, Base32 und Hex mit konsistenter, flexibler API. MIT nur Header
GPDS Ein genereller Daten-Serializer zum Serialisieren von Objekten in und aus XML. Verwendet TinyXML im Hintergrund.
gSOAP Eine präzise XML-Serialisierung.
iguana Eine moderne, universelle und einfach zu bedienende Serialisierungs-Engine, entwickelt in C++17, basierend auf Compile-Time-Reflektion. Unterstützte Formate: JSON, XML, benutzerdefiniert. Apache-2.0 cmake
jios JSON-Serialisierung MIT cmake
protobuf Protocol Buffers (auch bekannt als protobuf) ist Googles sprachneutraler, plattformneutraler, erweiterbarer Mechanismus zur Serialisierung strukturierter Daten, einschließlich des .proto-Datei-Compilers. (Doku) Benutzerdefiniert bazel, cmake
rpnx-serial Eine Bibliothek, die Typen wie std::map, std::vector usw. (de)serialisieren kann.
Serio Eine schnelle, leichte C++-Serialisierungsbibliothek. BSD-3-Clause nur Header; cmake
ThorsSerializer Eine C++-Serialisierungsbibliothek für JSON. MIT make
yaml-cpp
YAS Yet Another Serialization ist eine C++11-Bibliothek ohne Abhängigkeiten von Drittanbieterbibliotheken. Archive können binär, Text oder JSON sein. Boost nur Header

Binäre Serialisierung
Bibliothek Beschreibung Lizenz Konfiguration
binn Eine binäre Serialisierungsbibliothek, die kompakt, schnell und einfach zu bedienen ist, und selbst eine Implementierung des gleichnamigen Formats darstellt.
blobify Eine C++17-Bibliothek, die das serialisierte Layout allein aus der Strukturdefinition ableitet. Boost nur Header; cmake
bson-cxx Eine C++11-Implementierung des BSON-Formats. scons
fast_ber Eine C++11 Hochleistungs-Serialisierung mit BER/DER-Kodierungsregeln. Das Kodierlayout wird durch ASN.1-Schemata definiert.
UBjsonCpp Eine Hochleistungs-UBJson Lese-/Schreibbibliothek basierend auf C++14.

[bearbeiten] Sortierung

Bibliothek Beschreibung Lizenz Konfiguration
Cpp-sort Eine Sammlung verschiedener Sortieralgorithmen in einem einfachen Paket. MIT
Indiesort Eine Funktions-Template, die es ermöglicht, std::sort (und andere Sortierfunktionen für direkten Zugriff) mit Nicht-Direktzugriffscontainern zu verwenden. Sie erhöht auch die Leistung beim Sortieren großer Objekte in Direktzugriffscontainern und Arrays. zlib
Timsort Eine stabile Sortierfunktions-Template, die Quicksort-basierte Algorithmen, einschließlich std::sort, für umgekehrte oder halb sortierte Daten übertrifft. MIT

[bearbeiten] System

Bibliothek Beschreibung Lizenz Konfiguration
Infoware Eine C++-Bibliothek zum Abrufen von System- und Hardwareinformationen, ohne auf die Kommandozeile zugreifen zu müssen. Creative Commons v1.0 cmake

[bearbeiten] Terminal

Bibliothek Beschreibung Lizenz Konfiguration
cli Eine plattformübergreifende Bibliothek für interaktive Befehlszeilenschnittstellen in modernem C++. BSL-1.0 Nur Header; cmake, make, nmake, vcpkg
cwidget Eine High-Level-Terminal-Oberflächenbibliothek für C++, modelliert nach GTK+ und Qt, aber unter Verwendung von curses als Anzeigeschicht. GPL v2.0 make
replxx Ein Ersatz für readline und libedit, der UTF-8, Syntaxhervorhebung & Hinweise unterstützt.

[bearbeiten] Tests

Bibliothek Beschreibung Lizenz Konfiguration
bandit Ein für Menschen lesbares Unit-Testing für C++11. (Quellcode) MIT cmake
Boost.Test Eine C++03/11/14/17 Unit-Testing-Bibliothek, verfügbar auf einer Vielzahl von Plattformen und Compilern. (Quellcode) BSL-1.0 cmake, b2
Catch2 Ein modernes, C++-natives Test-Framework für Unit-Tests, TDD und BDD – unter Verwendung von C++14, C++17 und höher. Boost cmake
cppunit Ein C++-Port des berühmten JUnit-Frameworks für Unit-Tests. LGPL-2.1 make
CUTE Ein C++ Unit Testing Easier (keine Abhängigkeit von statischer Initialisierung für die Registrierung), integriert in Cevelop für TDD. MIT nur Header
doctest Ein leichtes, funktionsreiches C++ Single-Header-Testing-Framework für Unit-Tests und TDD. MIT nur Header; cmake
ELFspy Testen in Isolation mit Fakes und Spies – nur Linux. GPL-2.0 make
faker-cxx Eine moderne C++20 Faker-Bibliothek zum Generieren von Testdaten. MIT cmake
Google Test Google Testing and Mocking Framework. (Quellcode) BSD 3-Clause „New“ oder „Revised“ bazel, cmake
lest Ein C++11-natives, winziges Framework für Unit-Tests, TDD und BDD (enthält auch eine C++98-Variante). Boost nur Header; cmake
liblittletest Ein portables Test-Framework. LGPL-2.1 nur Header
snitch Ein leichtgewichtiges C++20 Test-Framework. Boost cmake
tunit Eine moderne C++17 Unit-Testing-Bibliothek für Windows, macOS, Linux, iOS und Android. Offizielle Seite. MIT cmake

[bearbeiten] Text

Kodierung
Bibliothek Beschreibung Lizenz Konfiguration
strsuite Eine C++20-Bibliothek zur Verwaltung von Zeichenketten mit unterschiedlichen Kodierungen. LGPL3.0 cmake
uchardet Erkennt eine Zeichenkettenkodierung, im Grunde dasselbe wie die uchardet-Funktion in Python. MOZILLA PUBLIC LICENSE v1.1 cmake
win-iconv Eine Zeichenkodierungskonvertierungsbibliothek für Linux und Mac. Die Windows-Implementierung von iconv basiert auf der Win32 Character Set Conversion API. Public Domain cmake

Diff/Patch
Bibliothek Beschreibung Lizenz Konfiguration
diff_match_patch Erstellen und Anwenden von Patches für Zeichenketten (erfordert Qt). Apache 2.0 qmake

Format
Bibliothek Beschreibung Lizenz Konfiguration
coformat Eine Begleit-C++-Bibliothek für std::format zur Ermöglichung von Textfarbgebung und -gestaltung. Public Domain nur Header
fmt Eine Open-Source-Formatierungsbibliothek, die eine schnelle und sichere Alternative zu C stdio und C++ iostreams bietet. Prototyp für die std::format-Familie von C++20. Lizenz cmake, conan

Parsen
Bibliothek Beschreibung Lizenz Konfiguration
BNFlite Eine leichtgewichtige Grammar-Parser-Bibliothek MIT nur Header
Boost.Spirit Eine Sammlung von C++17-Bibliotheken zum Parsen und Generieren von Ausgaben, implementiert als Domain Specific Embedded Languages (DSEL) unter Verwendung von Expression Templates und Template Meta-Programming. Die Spirit-Bibliotheken ermöglichen es, eine Zielgrammatik ausschließlich in C++ zu schreiben. (Src) (Doc) BSL-1.0 cmake
CTRE Schnelle Compile-Time Regular Expressions mit Unterstützung für Matching/Suche/Erfassung zur Kompilierzeit oder Laufzeit. Apache-2.0 Nur Header, cmake, vcpkg
lexy Eine C++17 Parser-Kombinator-Bibliothek, die es Ihnen ermöglicht, einen Parser zu schreiben, indem Sie ihn in einer praktischen C++ DSL mit all der Flexibilität und Kontrolle eines handgeschriebenen Parsers angeben. Unterstützt UTF-8/16/32. (Doc) BSL-1.0 cmake
PEGTL Parsing Expression Grammar Template Library ist eine C++17-Header-only Parser-Kombinator-Bibliothek ohne Abhängigkeiten zur Erstellung von Parsern nach einer Parsing Expression Grammar (PEG). Boost nur Header

Suche
Bibliothek Beschreibung Lizenz Konfiguration
clucene CLucene ist eine plattformübergreifende, vollwertige Open-Source-Indexierungs- und Suchmaschine/-API. (Src) (Doc) LGPL v2.1 cmake
Step20 Ukkonnens Online-Algorithmus zur Konstruktion von Suffix Trees, Manbers Algorithmus zur Konstruktion von Suffix Arrays. MIT nur Header
xapian Eine Open-Source-Suchmaschine mit Indexierungsfunktionen (Src) (Doc) GPL v2+ make

Template-Engine
Bibliothek Beschreibung Lizenz Konfiguration
inja Eine Template-Engine für C++17. MIT Nur Header; cmake, conan, vcpkg, etc.
Jinja2C++ Eine C++14/17-Implementierung von Jinja2-Vorlagen MPL-2.0 cmake, conan

[bearbeiten] Versionsverwaltung

Bibliothek Beschreibung Lizenz Konfiguration
coo-semver Eine C++-Operationenbibliothek für semantische Versionsnummern.
LibGit2 Die Kernbibliothek des Versionskontrollsystems Git.

[bearbeiten] Video

Bibliothek Beschreibung Lizenz Konfiguration
crystalhd
gstreamermm
libmatroska
libVLC
mjpegtools
OpenH264 Eine plattformübergreifende, multi-architekturelle Open-Source-Bibliothek, die H.264-Kodierung und -Dekodierung unterstützt (Src) BSD-2-Klausel Meson

[bearbeiten] Web

Bibliothek Beschreibung Lizenz Konfiguration
Chromium Embedded
cpp-jwt
Drogon Ein C++14/17-basiertes HTTP-Webanwendungsframework, das unter Linux/macOS/Unix/Windows läuft.
ffead-cpp Ein Framework für Enterprise Application Development in C++, konform mit HTTP1/HTTP2/HTTP3, unterstützt mehrere Server-Backends Apache 2.0 cmake
libhttpserver Eine C++-Bibliothek zum Erstellen von hochleistungsfähigen RESTful-Webservern. Baut auf libmicrohttpd auf, um eine einfache API für Entwickler bereitzustellen, die HTTP-Dienste in C++ erstellen. LGPL-v2.1 autotools
libkcddb
liblastfm
libmusicbrainz5
libnavajo
Molybden Ein SDK zum Erstellen plattformübergreifender C++-Desktop-Apps mit HTML/CSS/JS-GUI. (Doc) (Src) Lizenz npm
oatpp Ein leistungsstarkes, portables, leichtgewichtiges und abhängigkeitsfreies Web-Framework für IoT und Hochleistungs-Webdienste.
QtWebApp HTTP(s)-Server in C++, inspiriert von Java Servlets
Tufão Ein asynchrones Web-Framework für C++11, das auf Qt aufbaut (Doc) LGPL-2.1, GPL-2.0 cmake
uri-template URI-Template-Erweiterung und Reverse-Matching für C++ Apache 2.0 cmake
userver Das asynchrone C++-Framework Apache 2.0 cmake
Wt Widgets und Bausteine für Web-Apps, integrierte Sicherheit, PDF-Rendering, 2D- und 3D-Malerei, ORM, Diagramme, Authentifizierungs-Frameworks. (Doc) (Src) GNU GPL oder kommerziell

[bearbeiten] Siehe auch

C-Dokumentation für Nicht-ANSI/ISO-Bibliotheken

[bearbeiten] Externe Links

1.  Liste von C++ Unit-Testing-Frameworks — bei Wikipedia
2.  Eine kuratierte Liste von (fantastischen) nur-Header C++-Bibliotheken — bei GitHub
3.  Eine kuratierte Liste von (fantastischen) C++- und C-Bibliotheken — bei GitHub
4.  Boost C++ Bibliotheken — bei Boost.org
5.  Eine riesige Liste von C++ Open-Source-Spielen und Frameworks — bei GitHub.io