Eine Liste von Open-Source C++ Bibliotheken
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.
[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 |