Das Ziel dieser Seite ist es, eine umfassende Liste von Open-Source-C++-Bibliotheken zu erstellen, sodass man bei Bedarf an einer Implementierung bestimmter Funktionalität keine Zeit mit der Suche im Web verschwenden muss (
DuckDuckGo
,
Google
,
Bing
, etc.)
Wenn Sie eine Bibliothek kennen, die für andere nützlich sein könnte, fügen Sie bitte hier einen Link hinzu. Es gibt keine Einschränkungen, was aufgenommen werden kann, außer dass der
Quellcode
der Bibliothek problemlos
verfügbar
zum Download sein muss.
Diese Seite wird "wie besehen" bereitgestellt - in der Hoffnung, nützlich zu sein, aber ohne jegliche Garantien. Veraltete, irreführende oder falsche Links können hier erscheinen. Wenn Sie einen solchen bemerkt haben, wäre es großartig, wenn Sie den Fehler korrigieren würden.
Ein quelloffenes (MIT), plattformübergreifendes Build-Toolchain, das die Benutzerfreundlichkeit von Rust Cargo für die Entwicklung und Verpackung von C/C++-Projekten nachahmen soll, während es mehr Tiefe und Flexibilität bietet, insbesondere im Build-System.
Ein CMake-Skript, das CMake Abhängigkeitsverwaltungsfunktionen hinzufügt. Es ist als dünne Wrapper um CMakes FetchContent-Modul aufgebaut, das Versionskontrolle, Caching, eine einfache API und mehr hinzufügt.
Ein Paketmanager für Supercomputer, Linux und macOS. Es erleichtert die Installation wissenschaftlicher Software. Es ist nicht an eine bestimmte Sprache gebunden.
SoundTouch ist eine Open-Source, plattformübergreifende Audioverarbeitungsbibliothek zur Änderung von Tempo, Tonhöhe und Wiedergabegeschwindigkeit von Audiostreams oder Audiodateien. (
Quellcode
)
Ein schnelles Spracherkennungswerkzeug, vollständig in C++ geschrieben und verwendet die ArrayFire-Tensorbibliothek und die Flashlight-Machine-Learning-Bibliothek für maximale Effizienz.
Chromaprint ist eine Audio-Fingerprint-Bibliothek zur Identifizierung nahezu identischer Audiodateien. Sie tauscht Präzision und Robustheit gegen Suchperformance. Chromaprint kann mehrere FFT-Bibliotheken verwenden - FFmpeg, FFTW3, KissFFT oder vDSP. (
Src
)
Die MusicBrainz Client Library (libmusicbrainz), auch bekannt als mb_client, ist eine Entwicklungsbibliothek für Programmierer, die MusicBrainz-Abfragefunktionen in ihren Anwendungen integrieren möchten. Die Bibliothek unterstützt Windows, Linux und Mac OS X (
Src
)
FLAC steht für
F
ree
L
ossless
A
udio
C
odec, was bedeutet, dass in FLAC komprimierte Audiodaten keinen Qualitätsverlust aufweisen. FLAC zeichnet sich als schnellster und am weitesten unterstützter verlustfreier Audiocodec aus, ist nicht proprietär und unterliegt keinen Patentbeschränkungen.
Eine C-Bibliothek mit C++-Wrapper zum Lesen und Schreiben von Dateien mit abgetastetem Sound (z.B. WAV, AIFF) über eine einheitliche Bibliotheksschnittstelle. (
Src
)
Eine quelloffene, plattformübergreifende Bibliothek zum Lesen, Schreiben und Bearbeiten von ID3v1- und ID3v2-Tags sowie zum Abrufen grundlegender MP3-Header-Informationen wie Bitrate. Wir empfehlen jedoch nun, auf
taglib
zu wechseln :)
Die TagLib Audio Metadata Library ist eine Bibliothek zum Lesen und Bearbeiten der Metadaten verschiedener 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
)
Die 'Google Performance Tools' beinhalten eine hochperformante, multithreaded malloc-Implementierung sowie Werkzeuge zum Benchmarking von Heap-Allokation und CPU-Auslastung.
Das Apache Thrift Software-Framework für skalierbare sprachübergreifende Dienstentwicklung kombiniert einen Software-Stack mit einer Code-Generierungs-Engine, um Dienste zu erstellen, 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 arbeiten. (
Quellcode
)
Ein RPC-Framework für den industriellen Einsatz, das bei Baidu flächendeckend verwendet wird, mit über 1.000.000 Instanzen und tausenden von Diensten. (
Quellcode
) (
Dokumentation
)
Verschiedene Hilfsprogramme wie WebServer, JSON, WebSocket-Server, REST-Framework (eine Bibliothek zur Erstellung einer REST-API in Ihrer C++-Anwendung)
Eine plattformübergreifende HTTP-Client-Bibliothek mit Fokus auf Benutzerfreundlichkeit und Geschwindigkeit, die HTTP-Antwort-Caching und mehr unterstützt.
F
ast
P
rogrammable
N
exus
N
etwork. Hochleistungsfähiges vollständig asynchrones RPC-Dienstframework. Unterstützt gleichzeitig HTTP, WebSocket, TCP und zuverlässiges UDP. Ermöglicht die Entwicklung von Servern mit extrem hoher Last, mit entsprechenden Client-SDKs.
Ein Framework, das plattformübergreifende JSON-RPC (Remote Procedure Call) Unterstützung für C++ bereitstellt, vollständig kompatibel mit JSON-RPC 2.0 & 1.0.
Ein C++ Framework mit einem schnellen multithreaded HTTP-Server, HTML5 Websockets, SSL, X509 und HTTP-Authentifizierung, Kompression, Cookies und erweitertem Sitzungsmanagement, IPv4 und IPv6 (CeCILL-C).
Multi-Plattform C++ Netzwerk-Sniffing- und Paketverarbeitungs-Framework. Bietet C++ Wrapper für viele beliebte Paketverarbeitungs-Engines wie libpcap, Npcap, WinPcap, DPDK, AF_XDP und PF_RING. (
Quellcode
)
Ein plattformübergreifendes funktionsreiches Framework, das asynchrone RESTful-Funktionalität (sichere Kommunikation über HTTP) für C++14-Anwendungen bereitstellt.
Bietet atomare Datentypen und Operationen auf diesen Datentypen sowie Speicherordnungsbeschränkungen, die für die Koordination mehrerer Threads durch atomare Variablen erforderlich sind.
Vereinfacht die Verwendung von Interprozesskommunikation und Synchronisationsmechanismen und bietet eine breite Palette davon: Shared Memory, speichergemappte Dateien, Semaphoren, Mutexe, Condition Variables und upgradable Mutex-Typen, benannte Versionen der Synchronisationsobjekte, Dateisperren, Message Queues.
Bietet nicht-blockierende (auch lock-free genannte) nebenläufige Datenstrukturen: eine Warteschlange, einen Stapelspeicher und einen Ringpuffer (spsc_queue).
Intel® TBB ist eine plattformübergreifende C++-Bibliothek für Shared-Memory-Parallelprogrammierung und heterogenes Rechnen. Die Bibliothek bietet: generische parallele Algorithmen, nebenläufige Container, einen skalierbaren Speicherzuweiser, Work-Stealing-Taskplaner und Low-Level-Synchronisationsprimitive. (
Src
) (
Doc
)
Ein Programmiermodell zum Schreiben von leistungsportablen HPC-Anwendungen, das CUDA, HIP, SYCL, HPX, OpenMP und C++-Threads als Backends verwendet (
Dokumentation
)
Ein kleines plattformübergreifendes Framework für nebenläufige und ereignisgesteuerte Anwendungen in C++ durch Verwendung von Actor- und Publish-Subscribe-Modellen.
Die Bibliothek ermöglicht es, Programmoptionen, also (Name, Wert)-Paare vom Benutzer über konventionelle Methoden wie Kommandozeile, Konfigurationsdatei und Umgebungsvariablen zu erhalten.
Eine plattformübergreifende (offizielle) C++-Schnittstelle für die beliebte GUI-Bibliothek GTK, inklusive typsicherer Callbacks und einem umfassenden Satz von Widgets, die leicht durch Vererbung erweiterbar sind.
gtkmm
verwendet STL, einschließlich
string
s, Containern und Iteratoren. UTF8 wird unterstützt. (
Src
) (
Doc
)
Die Bibliothek ermöglicht das Abrufen von Programmoptionen, also (Name, Wert)-Paaren vom Benutzer, über konventionelle Methoden wie Kommandozeile, Konfigurationsdatei und Umgebungsvariablen.
Eine C++17-Bibliothek für die Kommandozeilenanalyse, die eine prägnante, deklarative Schnittstelle mit Unterstützung für Unterbefehle, Validatoren und der Möglichkeit bietet, entweder das GNU-, POSIX- oder X11-Kommandozeilenoptionsformat zu wählen.
Eine Bibliothek, die die Verarbeitung von Kommandozeilen-Flags implementiert. Sie enthält eingebaute Unterstützung für Standardtypen wie String und die Möglichkeit, Flags in der Quelldatei zu definieren, in der sie verwendet werden.
Eine einfache C++-Template-Bibliothek zum Parsen von Kommandozeilenargumenten. Die Bibliothek bietet eine einfache, flexible objektorientierte Schnittstelle.
Eine C++17-Bibliothek, die statische C++-Bindungen mit Typüberprüfung bereitstellt und das direkte Parsen in Benutzerdatenstrukturen ohne Bibliotheksallokierung ermöglicht, Push/Pull-Modi, Allokatorunterstützung, constexpr
**Erklärung:**
- "qjson" wurde nicht übersetzt, da es sich um einen C++-spezifischen Begriff/Bibliotheksnamen handelt
- HTML-Tags, Attribute und Formatierung wurden original belassen
- Der Link und alle technischen Elemente bleiben unverändert
- Nur der lesbare Text wurde gemäß den Vorgaben behandelt
Die derzeit am bequemsten zu verwendende C++ JSON-Bibliothek. Lesen und Schreiben komplexer Strukturen auf beliebiger Ebene mit nur einem Funktionsaufruf. Die Leistung beträgt etwa die Hälfte von RapidJSON.
Eine bidirektionale Map-Bibliothek, die assoziative Container wie
bimap<X,Y>
bietet, in denen sowohl
X
als auch
Y
als Schlüssel verwendet werden können. (
Src
)
Eine Bibliothek zur Arbeit mit heterogenen Sammlungen von
Tupeln
. Bietet eine Reihe von Containern (
vector
,
list
,
set
und
map
), zusammen mit transformierten Darstellungen ihrer zugrundeliegenden Daten, auch bekannt als
Views
." (
Src
)
Standardbibliothekskonforme Allokatoren für feste Größen von statischem und stack-basiertem Speicher + ein weiterer konformer Allokator, der benutzerdefinierte Grenzallokation ermöglicht
Eggs.Variant ist eine C++11/14/17 generische, typsichere, diskriminierte Union. Sie ist besonders bemerkenswert für ihre sehr gute
constexpr
Unterstützung.
Ungeordneter "beutelartiger" Container, der in Szenarien mit häufigen Änderungen eine bessere Leistung als
std::
Container erzielt und gleichzeitig gültige Zeiger auf nicht gelöschte Elemente unabhängig von Einfügungen und Löschungen beibehält. Kompatibel mit C++98/11/14/etc. Siehe auch
P0447
(
std::hive
). (
Quellcode
)
Eine
std::list
-Implementierung, die Bereichs-Splicing für Cache-Freundlichkeit opfert und dadurch schnellere Einfügung, Löschung und Iteration ermöglicht. Kompatibel mit C++98/03/11/14/17/20/23/26/etc. (
Src
) (
Doc
)
Eine Erweiterung und Optimierung des "Swap-and-Pop"/"Move-and-Pop"-Idioms für Container mit wahlfreiem Zugriff, um die Löschleistung von Random-Access-Containern zu erhöhen, wenn die Reihenfolge nach dem Löschen unwichtig ist. Behandelt einzelne, Bereichs- und
std::erase_if
-artige Löschvorgänge. Kompatibel mit C++98/11/14/etc. (
Quellcode
)
Ein Drop-in-Ersatzcontainer für den
std::queue
Container-Adapter mit besserer Leistung als
std::deque
und
std::list
in einem Queue-Kontext. C++98/11/14/etc-kompatibel. (
Src
)
Ein Drop-in-Ersatzcontainer für den
std::stack
Container-Adapter mit besserer Performance als
std::vector
und
std::deque
in einem Stack-Kontext. C++98/11/14/etc-kompatibel. (
Src
)
Eine intrusive C++11-Implementierung von hochleistungsfähigen Containern und Datenstrukturen wie einem
Rot-Schwarz-Baum
, einem
Intervallbaum
und einer Intervall-Map.
Ein umfassendes, modulares und portables kryptografisches Toolkit, das Entwicklern eine Vielzahl bekannter Blockchiffren, Einweg-Hashfunktionen, Betriebsmodi, Pseudozufallszahlengeneratoren, Public-Key-Kryptografie und zahlreiche weitere Routinen bietet. (
Src
)
Eine offizielle C++11-Treiberbibliothek für MongoDB (
Dokumentation
). Sie bietet optimierte APIs für CRUD-Operationen, Indizierung und Aggregation. Mit BSON-Unterstützung und Merkmalen wie Verbindungspooling und Authentifizierungsmechanismen bietet sie hochperformante und skalierbare Lösungen für die Entwicklung von C++-Anwendungen, die MongoDB nutzen.
Ein Open-Source, plattformübergreifendes und datenbankunabhängiges objektrelationales Abbildungssystem (ORM) für C++. ODB unterstützt MySQL, SQLite, PostgreSQL, Oracle und Microsoft SQL Server relationale Datenbanken sowie C++98/03 und C++11 Sprachstandards.
Eine
O
bjekt-
R
elations-
M
apping (ORM)-Datenbankbibliothek für C++/Qt, unterstützt die gängigsten Datenbanken, Serialisierung (JSON, binär, XML); eigenständiger mehrthreadfähiger HTTP-Webserver
Ein in C++ 11 geschriebener Redis-Client, der Redis Sentinel, Redis Cluster, Pipeline, Transaktionen, Pub/Sub, Verbindungspool und eine STL-ähnliche Schnittstelle unterstützt
Ein interaktiver C++-Interpreter, basierend auf Clang und LLVM für RAD, Erstellung von Skripten, eingebettetes Skripting und Laufzeitcode-Generierung. (
Src
)
Ein einfach zu verwendender, leicht zu integrierender und äußerst effizienter mathematischer Ausdrucksparser und Auswertungsmotor zur Laufzeit. ExprTk unterstützt zahlreiche Formen funktionaler, logischer und vektorieller Verarbeitungssemantiken und ist sehr einfach erweiterbar.
S
imple
D
irectMedia
L
ayer: Ein Cross-Platform-Framework (Windows, macOS, Linux, iOS, Android und andere) mit niedrigstufigem Zugriff auf Audio, Tastatur, Maus, Joystick und Grafikhardware über die Grafik-API der Plattform (OpenGL/Direct3D/Metal/Vulkan) (
Doc
) (
Src
)
S
imple and
F
ast
M
ultimedia
L
ibrary; Multiplattform (Windows, Linux, macOS und bald Android & iOS); bietet eine einfache Schnittstelle zur Erleichterung der Entwicklung von Spielen und Multimedia-Anwendungen. Besteht aus fünf Modulen: System, Fenster, Grafik (über OpenGL), Audio und Netzwerk.
S
ound,
I
nput, and
G
raphics
I
ntegration
L
ibrary; Eine einfache, plattformübergreifende, minimalistische Bibliothek für Text, Formen, Eingabe, Audio und 2D-Bilder. Unterstützte Plattformen: Windows, Linux und Raspberry Pi
Das C++ Actor Framework (CAF) ist eine Open-Source-C++11-Actor-Model-Implementierung mit leichten & schnellen Actor-Implementierungen, Pattern-Matching für Nachrichten, netzwerktransparentem Messaging und mehr
Netzwerk, Threads, grafische Oberflächen, Datenstrukturen, lineare Algebra, maschinelles Lernen, XML- und Textparsing, numerische Optimierung, Bayessche Netze und zahlreiche andere Aufgaben
Eine C++-Event-Bibliothek für Callbacks, Event-Dispatcher und Event-Warteschlange. Mit eventpp können Sie einfach Signal-Slot-Mechanismen, Publisher-Subscriber-Muster oder Observer-Muster implementieren.
Freundlichs C++ Toolkit (fcppt) ist eine Sammlung von Bibliotheken, die sich auf die Verbesserung allgemeinen C++-Codes durch bessere Typen und funktionale Programmierung konzentrieren.
Eine plattformübergreifende C++20-Bibliothek für sequenzorientierte Programmierung, ähnlich wie C++20-Ranges, verwendet aber ein Iterationsmodell basierend auf Cursorn, eine Verallgemeinerung von Array-Indizes. (Dok)
Facebook-Open-Source-Bibliothek. Eine plattformübergreifende Bibliothek von C++14-Komponenten, die auf Praktikabilität und Effizienz ausgelegt ist. (Dok)
General Utility Library für C++14 von DESY: Häufig verwendete Hilfsfunktionen und Typen, einschließlich Zeichenketten-Hilfsprogrammen, Statistik- und numerischen Funktionen, Containern, Debugging-Mitteln usw. (Src)
Eine Laufzeit-C++-Bibliothek für die Arbeit mit Maßeinheiten und Umrechnungen zwischen ihnen sowie mit Zeichenkettenrepräsentationen von Einheiten und Messungen
Eine Liste von *-lite-Repositories (z. B. span-lite, scope-lite, expected-lite), die C++98/11-Implementierungen einiger der vorgeschlagenen oder bereits standardisierten C++17/20/23-Bibliothekstypen wie std::span, std::expected usw. enthalten.
Die C++-Standardbibliotheken von morgen heute! Eine Sammlung von C++-Bibliotheken, die für die Standardisierung vorgeschlagen wurden und mit den neuesten Versionen von C++-Vorschlägen übereinstimmen. (Dok)
Eine moderne C++-Laufzeit- und Entwickler-Toolkit mit CLI, Build-Workflow, Netzwerk, Paketregister-Integration und modularen Bibliotheken zum Erstellen von C++-Anwendungen
Eine moderne C++(14/17) plattformübergreifende STL-artige und STL-kompatible Bibliothek mit Implementierung von Containern, Ranges, Iteratoren, Type Traits und anderen Werkzeugen; Actors-System; typsichere Konfigurationsschnittstelle.
Eine quelloffene, plattformübergreifende (Linux/Unix/BSD-Varianten, einschließlich Android und OS X) GPS-fähige Sammlung von Werkzeugen, wie z.B. ein Übersetzer- und Replikator-Daemon für GPS-Geräte, AIS-Funkgeräte und andere Navigationssensoren.
gpsd
ist hauptsächlich in C und Python geschrieben, verfügt aber auch über einen C++-Wrapper.
gpsd
ist allgegenwärtig in mobilen eingebetteten Systemen. Jede positionsbezogene Android-App ist indirekt ein
gpsd
-Client. (
Dokumentation
) (
Quelle
)
Eine schlanke GUI-Bibliothek für C++ mit minimalen Abhängigkeiten, portabel, render-unabhängig, optimiert für den Einsatz in 3D-Pipeline-fähigen Anwendungen.
Ein plattformübergreifendes C++ GUI-Toolkit (Linux, Windows, MacOS), das moderne GUI-Funktionalität bietet und 3D-Grafiken über OpenGL/GLUT unterstützt. Entwickelt, um klein und modular zu sein. Enthält einen UI-Builder.
Ein freies und quelloffenes plattformübergreifendes (Windows, GNU/Linux, macOS) C++-Framework zum Schreiben erweiterter GUI-Anwendungen mit nativen Steuerelementen. (
Doc
)
Ein modernes C++17/20-Framework zum Erstellen von Konsolen-, GUI- und Unit-Test-Anwendungen auf Windows, macOS, Linux, iOS und Android. (
Src
) (
Doc
)
Eine Sammlung von C++-Bibliotheken zur Entwicklung plattformübergreifender Softwareanwendungen. Es verwendet modernes idiomatisches C++ und integriert sich nahtlos mit der STL. CopperSpice wurde vom Qt-Framework abgeleitet. (
Doc
) (
Src
)
Eine kleine Bibliothek, die entwickelt wurde, um das Teilen und Anzeigen von Menüstrukturen über DBus einfach und benutzerfreundlich zu gestalten. Sie funktioniert sowohl für QT als auch GTK+ und erleichtert den Aufbau von Menüs.
Ein C++ Cross-Platform Rapid Application Development Framework mit Fokus auf Programmiererproduktivität. Enthält eine Sammlung von Bibliotheken (GUI, SQL, etc.) und eine integrierte Entwicklungsumgebung. (
Src/Bin
)
Ein C++-Wrapper für die
cairo-Grafikbibliothek
, eine 2D-Bibliothek mit Unterstützung für mehrere Ausgabegeräte: X Window, Quartz, Win32, Bildpuffer, PostScript, PDF, SVG, OpenGL (experimentell).
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 laufen
Ge
nerische
G
rafik-
L
ibrary (GEGL) ist ein datenflussbasiertes Bildverarbeitungsframework mit Gleitkommaverarbeitung und zerstörungsfreier Bildbearbeitung. (
Quellcode
)
Eine quelloffene 2D-Grafikbibliothek geschrieben in C++.
Skia Graphics Engine
wird verwendet in Google Chrome, Chrome OS, Mozilla Firefox, Android, LibreOffice, Flutter, etc.
Skia
hat mehrere Backends: Software-Rasterisierung, (PDF)-Ausgabe, OpenGL, SVG, etc.
Ein moderner Nachfolger von GLEW. Abstrahiert Unterschiede zwischen verschiedenen Arten von GL-Kontexten, was es manchmal einfacher zu verwenden macht als GLEW. Wird vom GTK+-Projekt seit 2015 verwendet.
Die G3D Innovation Engine ist eine voll ausgestattete, quelloffene, plattformübergreifende (Windows, Linux, Mac OS) 3D-Spiele-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, Modellladung, lineare Algebra und GP-Berechnungen auf GPUs. Unterstützt 3DS, OBJ, MP4, PNG, JPG, MD3 und viele weitere Formate, beinhaltet eine native OpenGL-anpassbare GUI. (
Src
) (
Doc
)
Eine vollständige Multiplattform-2D- und 3D-Spiele-Engine in C++17 mit einem in sich selbst geschriebenen GUI-Editor und einer Python-inspirierten Skriptsprache.
Eine kleine Open-Source-3D-Rendering-Engine. Sie wurde entwickelt, um eine Grafik-Engine zu schaffen, die atemberaubende visuelle Effekte bietet, wie sie in Next-Generation-Spielen erwartet werden, dabei jedoch möglichst leichtgewichtig und sauber ist.
Die Irrlicht Engine ist eine Open-Source Echtzeit-3D-Engine, geschrieben in C++. Sie ist plattformübergreifend und verwendet D3D, OpenGL und eigene Software-Renderer.
Die
O
pen-Source-
3D
E
ngine (ehemals Amazons Lumberyard) ist eine C++ Multiplattform-3D-Engine zur Entwicklung von AAA-Spielen, kinoreifen 3D-Welten und hochpräzisen Simulationen. Bietet Physiksimulation, Skript-Engine, Netzwerkfunktionen und
mehr
. (
Dokumentation
)
OGRE ist eine objektorientierte Grafik-Rendering-Engine - eine vielseitige Visualisierungsbibliothek, geeignet für wissenschaftliche Visualisierung, Spiele, Simulation, virtuelle Realität und andere Grafikprojekte. Sie ist plattformübergreifend und sehr robust, mit einer guten Dokumentation.
OpenSceneGraph ist ein quelloffenes High-Performance-3D-Grafik-Toolkit, das von Anwendungsentwicklern in Bereichen wie visuelle Simulation, Spiele, virtuelle Realität, wissenschaftliche Visualisierung und Modellierung verwendet wird. (
Src
) (
Doc
)
Visualization Toolkit (VTK) ist eine Open-Source-Software zur Bearbeitung und Darstellung wissenschaftlicher Daten. Es bietet modernste Werkzeuge für 3D-Rendering, eine Suite von Widgets für 3D-Interaktion und umfangreiche 2D-Plotting-Fähigkeiten.
Eine Low-Level-API, die viele der Abstraktionen früherer Grafik-APIs entfernt. Dies ist ideal für maximale Leistung, hat jedoch den Nebeneffekt, dass mehr Komplexität für den Entwickler sichtbar wird. Glücklicherweise existieren mehrere ausgezeichnete Tutorials, die helfen, diese Hürde zu überwinden und schnell produktiv zu werden.
Ein Fork der Open-Source-Bibliothek FreeImage v3.18 zur Unterstützung von Bildcodec-Updates und Anpassung für komfortable Nutzung. Alle ursprünglichen Formate und Plugins werden beibehalten.
Lesen und Schreiben von statischen, animierten, mehrseitigen Bildern zusammen mit ihren Metadaten und ICC-Profilen. Konvertierungsfähigkeiten. Zielsetzung: Einfachheit und Geschwindigkeit.
Eine Sammlung von C/C++-Bibliotheken für die Spieleentwicklung mit Bildlader/-schreiber/-skalierer, Font-Text-Rasterizer, typsicheren Containern, Ogg-Vorbis-Decoder, Echtzeit-DXT-Kompressor, Perlin-Noise-Generator, Lexer für pet DSLs, schnellem sprintf und mehr.
Thor Vector Graphics ist eine leichtgewichtige portable Bibliothek zum Zeichnen vektorbasierter Szenen und Animationen einschließlich SVG und Lottie. Sie kann frei über verschiedene Softwareplattformen und Anwendungen hinweg genutzt werden, um grafische Inhalte zu visualisieren. (
Src
)
Das GNU-
plotutils
-Paket enthält
libplot
, eine C/C++-Bibliothek zum Exportieren von 2D-Vektorgrafiken in vielen Dateiformaten, sowohl Vektor- als auch Bitmap-Formate.
libplot
kann 2D-Vektorgrafiken animieren und verwendet eine Postscript-ähnliche API für Dateiexport und Grafikanimationen.
ITK ist eine quelloffene, plattformübergreifende Bibliothek, die Entwicklern eine umfangreiche Sammlung von Softwarewerkzeugen für die Bildanalyse bietet. Entwickelt durch extreme Programmiermethodologien, baut ITK auf einer bewährten, räumlich orientierten Architektur zur Verarbeitung, Segmentierung und Registrierung wissenschaftlicher Bilder in zwei, drei oder mehr Dimensionen auf.
I
nternational
C
omponents for
U
nicode ist eine ausgereifte, weit verbreitete Sammlung von C/C++-Bibliotheken, die Unicode- und Globalisierungsunterstützung für Softwareanwendungen bereitstellt. (
Src
)
Einfache, portable und eigenständige Stacktrace-Bibliothek für C++11 und neuer. Enthält signal-sichere Stack-Traces, Stack-Traces bei Exceptions, Quellcode-Ausschnitte usw.
Plattformübergreifende, C++17 Logging-API (nach Java log4j API modelliert), die threadsichere, flexible und beliebig granulare Kontrolle über Log-Verwaltung und Konfiguration bietet.
Eine leichtgewichtige Fehlerbehandlungsbibliothek für C++11: Single-Header-Format, keine Abhängigkeiten, keine dynamischen Speicherallokationen, kann mit oder ohne Exception-Handling verwendet werden, multithreading-fähig. (
Quellcode
)
ALGLIB ist eine plattformübergreifende (Windows/POSIX/Linux) Bibliothek für numerische Analyse und Datenverarbeitung. ALGLIB-Funktionen umfassen: Datenanalyse, Optimierung und nichtlineare Löser, Interpolation, Lineare Algebra und lineare Löser, FFT und viele weitere.
Eine C++-Komfortklassen-Schnittstelle, die überladene Funktionen und Operatoren bietet. Die
GMP
ist eine freie C-Bibliothek für Arithmetik mit beliebiger Genauigkeit, die mit vorzeichenbehafteten Ganzzahlen, rationalen und Fließkommazahlen arbeitet.
Eine Bibliothek für Zahlentheorie. NTL ist eine hochperformante, portable C++-Bibliothek, die Datenstrukturen und Algorithmen zur Manipulation von vorzeichenbehafteten Ganzzahlen beliebiger Länge sowie für Vektoren, Matrizen und Polynome über den ganzen Zahlen und über endlichen Körpern bereitstellt.
PCG ist eine Familie von einfachen, schnellen, platzsparenden, statistisch guten Algorithmen zur Zufallszahlengenerierung. Im Gegensatz zu vielen allgemeinen RNGs sind sie auch schwer vorhersagbar.
Erweiterte, umfassende Statistiksoftware: Datenerfassung und -vorverarbeitung, Statistik, maschinelles Lernen und Optimierung, mit offenem C++-Quellcode.
Die Multiprecision-Bibliothek bietet in C++ Integer-, Rational-, Fließkomma- und komplexe Typen, die mehr
Bereich und Genauigkeit
haben als C++s gewöhnliche fundamentale (eingebaute) Typen.
Eine C++11
f
ixed-
p
oint
m
ath-Bibliothek, die die Fließkomma-Funktionalität der Standardbibliothek auf Ganzzahlen bereitstellt. Nützlich, wenn Ihre Zielplattform keine FPU besitzt oder deterministische Berechnungen erforderlich sind.
Eine C++17/20 Template-Bibliothek, die Plug-in-Ersatz für die nativen arithmetischen Typen bietet (Integer/Dezimal/Festkomma/Fließkomma/Posits/Logarithmisch/Intervall)
Boost.Geometry (auch bekannt als
G
eneric
G
eometry
L
ibrary, GGL), definiert Konzepte, Primitive und Algorithmen zur Lösung geometrischer Probleme. Boost.Geometry enthält einen dimensionsunabhängigen, koordinatensystemunabhängigen und skalierbaren Kernel, basierend auf Konzepten, Meta-Funktionen und Tag-Dispatching. Unterstützte Algorithmen sind: Berechnung von Fläche, Länge, Umfang, Schwerpunkt, konvexer Hülle, Schnittmenge (Clipping), Within (Punkt-in-Polygon), Distanz, Hüllbereich (Bounding Box), Vereinfachung, Transformation und vieles mehr. Die Bibliothek unterstützt hochpräzise arithmetische Zahlen.
L
ibrary for
E
fficient
M
odeling and
O
ptimization in
N
etworks implementiert gängige Datenstrukturen und Algorithmen mit Fokus auf kombinatorische Optimierung, Graphen und Netzwerke. (
Doc
)
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 etc.
Eine C++ Template-Klassenbibliothek, die BLAS Level 1, 2, 3 Funktionalität für dichte, gepackte und sparse Matrizen bereitstellt. Verwendet Expression Templates.
Eine Sammlung von Datenstrukturen und Routinen für die parallele Lösung wissenschaftlicher Anwendungen, die durch partielle Differentialgleichungen modelliert werden. Unterstützt MPI und GPUs über CUDA oder OpenCL, sowie hybride MPI-GPU.
Sp
arse
E
igenvalue
C
omputation
T
oolkit as a
R
edesigned
A
RPACK ist eine Open-Source C++-Bibliothek für großskalige Eigenwertprobleme, aufgebaut auf der
Eigen
linearen Algebra-Bibliothek (ebenfalls Open-Source und header-only). (
Src
)
Eine quelloffene C++-Bibliothek zur Modellierung und Lösung großer, komplexer Optimierungsprobleme. Es handelt sich um eine funktionsreiche, ausgereifte und leistungsstarke Bibliothek, die bei Google seit 2010 im Produktionseinsatz ist.
Ein symbolisches Framework für nichtlineare Optimierung und algorithmische Differentiation. Unterstützt C++-Codegenerierung für symbolische Ausdrücke und dynamische Verbindung von kompiliertem generiertem Code.
Die C++ Mathematical Expression Toolkit Library (ExprTk) ist eine einfach zu verwendende, leicht zu integrierende und äußerst effiziente Laufzeit-Mathematikausdrucksparser- und Auswertungsengine. ExprTk unterstützt zahlreiche Formen funktionaler, logischer und vektorieller Verarbeitungssemantiken und ist sehr einfach erweiterbar.
Eine Bibliothek zur Erstellung integrierter Systeme, die symbolische Manipulationen zusammen mit etablierteren Bereichen der Informatik (wie rechenintensive numerische Anwendungen, grafische Oberflächen etc.) unter einem Dach vereinen.
Ein Compiler-Wrapper, der symbolische Ausführung während der Kompilierung in das Programm einbettet, sowie eine zugehörige Laufzeit-Unterstützungsbibliothek. Im Wesentlichen fügt der Compiler Code ein, der symbolische Ausdrücke für jeden Wert im Programm berechnet. Die eigentliche Berechnung erfolgt durch Aufrufe der Unterstützungsbibliothek zur Laufzeit.
Eine symbolische Mathematikbibliothek, die eine bequeme Instanziierung, Manipulation und Auswertung mathematischer Ausdrücke zur Laufzeit und Compile-Time ermöglicht.
Eine Miniatur-Reflection-Bibliothek, die Struktur-Besucher für C++11/14 bereitstellt. In sich geschlossen, 200-400 Zeilen Code, je nachdem wie man zählt.
Eine moderne, universelle und benutzerfreundliche Serialisierungs-Engine entwickelt in C++17, basierend auf Compile-Time Reflection. Unterstützte Formate: JSON, XML, benutzerdefiniert.
Eine Funktionsvorlage, die es ermöglicht,
std::sort
(und andere Sortierfunktionen mit wahlfreiem Zugriff) mit Containern ohne wahlfreien Zugriff zu verwenden. Sie verbessert außerdem die Leistung beim Sortieren großer Objekte in Containern und Arrays mit wahlfreiem Zugriff.
Eine stabile Sortierfunktionsvorlage, die quicksort-basierte Algorithmen, einschließlich
std::sort
, für umgekehrte oder halb sortierte Daten übertrifft.
Eine Bibliothek zur Zeichensatzkonvertierung für Linux und Mac. Die Windows-Implementierung von
iconv
basiert auf der Win32-Zeichensatzkonvertierungs-API.
Eine Open-Source-Formatierungsbibliothek, die eine schnelle und sichere Alternative zu C stdio und C++
iostream
s bietet. Prototyp für die C++20
std::format
-Familie.
Eine Sammlung von C++17-Bibliotheken für Parsing und Ausgabegenerierung, implementiert als
D
omain
S
pecific
E
mbedded
L
anguages (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
)
Eine C++17-Parser-Kombinator-Bibliothek, die es ermöglicht, einen Parser durch Angabe in einer praktischen C++-DSL mit der gesamten Flexibilität und Kontrolle eines handgeschriebenen Parsers zu schreiben. Unterstützt UTF-8/16/32. (
Doc
)
P
arsing
E
xpression
G
rammar
T
emplate
L
ibrary ist eine nullabhängige C++17-Header-only-Parser-Kombinator-Bibliothek zur Erstellung von Parsern gemäß einer
Parsing Expression Grammar
(PEG).
Eine C++-Bibliothek zum Erstellen hochperformanter RESTful-Webserver. Basiert auf
libmicrohttpd
, um Entwicklern eine einfache API zur Erstellung von HTTP-Diensten in C++ zu bieten.
Widgets und Bausteine für Webanwendungen, integrierte Sicherheit, PDF-Rendering, 2D- und 3D-Malerei, ORM, Diagramme, Authentifizierungsframeworks. (
Dok
) (
Quell
)