1. Zweck des Dokuments
Dieser Beitrag ist eine nach Bereichen geordnete Liste von Open-Source-Bibliotheken, damit C++-Entwickler benötigte Funktionen schnell finden können.
Die Bibliotheken sollten als Quellcode herunterladbar sein; da Informationen veraltet oder Links fehlerhaft sein können, müssen Nutzer dies selbst prüfen.
2. Allgemeine Bibliotheken, Kommunikation und GUI
Boost, Folly, Dlib, JUCE usw. sind allgemeine Bibliotheken mit vielfältigen Funktionen.
Im Kommunikationsbereich gibt es Boost.Asio, POCO, ZeroMQ, Thrift, REST SDK usw., die für Netzwerk-, HTTP-, Messaging- und verteilte Service-Entwicklung genutzt werden.
Zum GUI-Bereich gehören Qt, GTKmm, wxWidgets, FLTK usw.
3. Grafik, Multimedia und Spiele
SDL, SFML, OpenFrameworks werden für Multimedia-Anwendungen verwendet.
OpenGL, Ogre3D, bgfx, GLFW, GLM, Assimp usw. unterstützen 2D-/3D-Grafik, Rendering und Modellverarbeitung.
OpenCV wird für Bildverarbeitung eingesetzt, die VLC- und GStreamer-Familie für Videowiedergabe und Medienverarbeitung.
4. Mathematik, AI und Hochleistungsrechnen
Eigen, Armadillo, Boost.uBLAS werden für lineare Algebra verwendet.
Dlib, MLPACK, Shogun, liblinear bieten Machine-Learning-Funktionen.
TBB, OpenMP sowie CUDA-/OpenCL-bezogene Bibliotheken unterstützen Parallelverarbeitung und Hochleistungsrechnen.
5. Datenverarbeitung und Speicherung
Die Boost.Container-Familie bietet verschiedene Datenstrukturen.
protobuf, cereal, yaml-cpp usw. werden für Objekts Serialisierung verwendet, während RapidJSON, jsoncpp, TinyXML usw. die JSON-/XML-Verarbeitung übernehmen.
ODB, SOCI, sqlpp11, mysql++ usw. bieten Datenbankanbindung und ORM-Funktionen.
6. Werkzeuge zur Entwicklungsunterstützung
Google Test, Catch, Boost.Test werden für Unit-Tests verwendet, und Celero unterstützt Performance-Benchmarking.
OpenSSL, Crypto++, Botan bieten Kryptografie-Funktionen.
spdlog, Log4cpp, plog sind repräsentative C++-Bibliotheken für die Protokollierung.
7. Weitere Bereiche
Enthalten sind auch Bibliotheken aus vielen weiteren Bereichen wie Internationalisierung, Finanzberechnung, Embedded, Echtzeitsysteme, PDF, Suche, Konfigurationsverwaltung und die Anbindung von Skriptsprachen.
Insgesamt ist dieses Dokument eine Referenzliste, um Bibliotheken nach benötigten Funktionen für C++-Projekte zu durchsuchen.
2 Kommentare
Die koreanische Version wurde zuletzt 2016 aktualisiert, daher ist es wohl besser, das Original zu lesen.
Uff, ich habe durch diesen Beitrag zum ersten Mal erfahren, dass es eine koreanische cppreference-Seite gibt, und war kurz glücklich ...
Dann werde ich wohl wie bisher die englische Seite nutzen müssen.