Namespaces
Variants

A list of open-source C++ libraries

From cppreference.net

L'objectif de cette page est de constituer une liste exhaustive de bibliothèques C++ open-source, afin que lorsqu'on a besoin d'une implémentation d'une fonctionnalité particulière, on ne perde pas de temps à chercher sur le web ( DuckDuckGo , Google , Bing , etc.)

Si vous connaissez une bibliothèque qui pourrait être utile à d'autres, veuillez ajouter un lien vers celle-ci ici. Il n'y a aucune restriction sur ce qui peut être inclus, sauf que les sources de la bibliothèque doivent être facilement disponibles au téléchargement.

Cette page est fournie "telle quelle" - avec l'espoir d'être utile, mais sans aucune garantie. Des liens obsolètes, trompeurs ou erronés peuvent apparaître ici. Si vous en avez remarqué un, ce serait formidable que vous corrigiez l'erreur.

Bibliothèques : Table des matières

Bibliothèques :


Table des matières

Gestionnaires de paquets

Gestionnaire de paquets Description
build2 Une chaîne d'outils de construction open-source (MIT) et multiplateforme qui vise à approcher la commodité de Rust Cargo pour le développement et l'empaquetage de projets C/C++ tout en offrant plus de profondeur et de flexibilité, particulièrement dans le système de construction.
cget Récupération de paquets cmake. Peut être utilisé pour télécharger et installer des paquets cmake.
cmodule Gestion de dépendances cmake non intrusive.
conan Gestionnaire de paquets C/C++ décentralisé et open-source (MIT).
CPM.cmake Un script cmake qui ajoute des capacités de gestion de dépendances à cmake. Il est construit comme une fine enveloppe autour du module FetchContent de cmake qui ajoute le contrôle de version, la mise en cache, une API simple et plus encore.
hunter Un gestionnaire de paquets multiplateforme piloté par cmake pour les projets C/C++.
spack Un gestionnaire de paquets pour supercalculateurs, Linux et macOS. Il facilite l'installation de logiciels scientifiques. Il n'est pas lié à un langage particulier.
teaport Un gestionnaire de dépendances inspiré de cocoapods.
vcpkg Un gestionnaire de paquets C/C++ pour Windows, Linux et macOS.
xmake Un outil de construction et gestionnaire de paquets C/C++ multiplateforme basé sur Lua.

Bibliothèques

Audio

Bibliothèque Description Licence Configuration
Amplitude Audio SDK Un moteur audio multiplateforme conçu pour répondre aux besoins des jeux. ( Src ) Apache-2.0 cmake, vcpkg
Aquila Une bibliothèque DSP open-source et multiplateforme pour C++11. MIT cmake
Aubio Une bibliothèque C/Python pour l'analyse audio et musicale. ( Src ) GPL-3.0 make
audioFlux Une bibliothèque C pour l'analyse audio et musicale, extraction de caractéristiques. MIT
Essentia Une bibliothèque et des outils open-source pour l'analyse, la description et la synthèse audio et musicale (MIR) ( Src ) Affero GPLv3
FFTW Une bibliothèque pour calculer la DFT (SSE/SSE2/AVX/Altivec/ARM Neon). ( Src ) GPL-2.0 cmake
FMOD Un moteur audio facile à utiliser multiplateforme et un outil de création de contenu audio pour les jeux. Gratuit pour usage non commercial/Commercial cmake
KFR Un framework DSP/DFT rapide, moderne, C++17, open-source et multiplateforme, prend en charge le rééchantillonnage audio, les filtres FIR/IIR, Biquad (SSE, AVX, AVX-512, ARM NEON). ( Src ) GPL-2.0 cmake
libsoundio Une bibliothèque C pour l'entrée et la sortie audio en temps réel multiplateforme. ( Src ) MIT cmake
Maximilian Bibliothèque DSP Audio et Musicale C++. MIT cmake
Miniaudio Une bibliothèque C de lecture et capture audio. ( Src ) Unlicense fichier source unique
ni-media Bibliothèque C++ pour lire et écrire des fichiers audio. MIT cmake, vcpkg
OpenAL Une API audio multiplateforme. BSD/LGPL/Propriétaire cmake
PortAudio PortAudio est une bibliothèque d'E/S audio gratuite, multiplateforme et open-source. ( Src ) MIT cmake, vcpkg
rnnoise Réseau neuronal récurrent pour la réduction du bruit audio. BSD-3-Clause make
SELA S impl E L ossless A udio. MIT cmake
SoLoud Moteur audio facile et portable pour les jeux. zlib
Soundtouch SoundTouch est une bibliothèque de traitement audio open-source multiplateforme pour modifier le tempo, la hauteur et les taux de lecture des flux audio ou des fichiers audio. ( Src ) LGPL-2.1 make
Tonic Synthèse audio facile et efficace en C++. Unlicense
Verovio Une bibliothèque de gravure de notation musicale rapide et légère. ( Src ) LGPL cmake, qmake
Wav2Letter++ Une boîte à outils de reconnaissance vocale rapide écrite entièrement en C++ et utilisant la bibliothèque de tenseurs ArrayFire et la bibliothèque d'apprentissage automatique flashlight pour une efficacité maximale. BSD License cmake

CD
Bibliothèque Description Licence Configuration
libkcompactdisc Une bibliothèque pour l'interfaçage avec les CD GPL v2.0 cmake

Empreinte numérique
Bibliothèque Description Licence Configuration
chromaprint Chromaprint est une bibliothèque d'empreintes audio conçue pour identifier des contenus audio quasi identiques. Elle échange précision et robustesse contre des performances de recherche. Chromaprint peut utiliser plusieurs bibliothèques FFT - FFmpeg, FFTW3, KissFFT ou vDSP. ( Src ) MIT, LGPL 2.1 cmake
libmusicbrainz La bibliothèque cliente MusicBrainz (libmusicbrainz), également connue sous le nom mb_client, est une bibliothèque de développement destinée aux développeurs souhaitant ajouter des capacités de recherche MusicBrainz à leurs applications. La bibliothèque prend en charge Windows, Linux et Mac OS X ( Src ) LGPL-2.1 cmake
libofa Une empreinte audio open-source par MusicIP APL make

Formats
Bibliothèque Description Licence Configuration
AudioFile Une bibliothèque C++ simple pour lire et écrire des fichiers audio. MIT cmake
audio_file Une bibliothèque qui gère la lecture et l'écriture de fichiers audio dans de nombreux formats courants. ( Src ) LGPL-2.1 make
dr_libs Bibliothèques de décodage audio (FLAC, MP3, WAV) en fichier unique pour C et C++. Unlicense
flac FLAC signifie F ree L ossless A udio C odec, ce qui signifie que l'audio compressé en FLAC n'a aucune perte de qualité. FLAC se distingue comme le codec audio sans perte le plus rapide et le plus largement pris en charge, non propriétaire et non soumis à des brevets. Open Source , BSD, GPL
LAME LAME est un encodeur MPEG Audio Layer III (MP3) de haute qualité. LGPL
libsndfile Une bibliothèque C avec un wrapper C++ pour lire et écrire des fichiers contenant du son échantillonné (par exemple WAV, AIFF) via une interface de bibliothèque standard unique. ( Src ) LGPL-2.1 cmake, make, vcpkg
minimp3 Décodeur MP3 minimaliste CC0-1.0 header-only
Opus Un codec audio totalement ouvert, libre de redevances et hautement polyvalent. BSD cmake
Vorbis Ogg Vorbis est un format audio compressé généraliste entièrement ouvert, non propriétaire, libre de brevets et de redevances. BSD cmake

Marquage
Bibliothèque Description Licence Configuration
id3lib Une bibliothèque open-source multiplateforme pour lire, écrire et manipuler les balises ID3v1 et ID3v2, et récupérer certaines informations d'en-tête mp3 de base comme le débit binaire. Cependant, nous recommandons maintenant de migrer vers taglib :) LGPL v2
taglib La bibliothèque TagLib Audio Metadata est une bibliothèque pour lire et éditer les métadonnées de plusieurs formats audio populaires : commentaires ID3v1, ID3v2 pour les fichiers MP3, commentaires Ogg Vorbis et balises ID3 ainsi que commentaires Vorbis dans les fichiers FLAC, MPC, Speex, WavPack, TrueAudio, WAV, AIFF, MP4 et ASF. ( Src ) LGPL et MPL v1.1

Évaluation comparative

Bibliothèque Description Licence Configuration
benchmark Une bibliothèque pour évaluer les performances de fragments de code, similaire aux tests unitaires Apache 2.0 cmake
Celero Une bibliothèque/cadre de création de benchmarks riche en fonctionnalités. Prend en charge Windows, Linux et OSX en utilisant C++11. Apache cmake
Criterion Une bibliothèque de micro-benchmarking pour le C++ moderne MIT header-only; cmake
gperftools Les 'Google Performance Tools' incluent une implémentation malloc haute performance multi-thread ainsi que des outils pour évaluer l'allocation de tas et l'utilisation du CPU. BSD 3-Clause "New" or "Revised" configure
nanobench Une fonctionnalité de micro-benchmarking simple, rapide et précise en en-tête unique pour C++11/14/17/20. ( Src ) MIT header-only; cmake
picobench Une bibliothèque de micro-benchmarking minuscule (micro) MIT header-only; cmake
plf::nanotimer Une classe de chronomètre simple cross-platform avec la plus faible surcharge pour le benchmarking. zlib header-only

Communication

Bibliothèque Description Licence Configuration
ACE Réseautage asynchrone, démultiplexage d'événements, messagerie ( Src ) ( Doc ) Personnalisée make
Apache Thrift Le framework logiciel Apache Thrift, pour le développement de services interlangages évolutifs, combine une pile logicielle avec un moteur de génération de code pour construire des services qui fonctionnent efficacement et de manière transparente entre C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, OCaml et Delphi et d'autres langages. ( Src ) Apache-2.0 cmake, vcpkg
Boost.Asio Réseautage asynchrone et synchrone, minuteries, E/S série BSL-1.0
Boost.Beast Une bibliothèque HTTP et WebSocket construite sur Boost.Asio BSL-1.0
Breep Une bibliothèque pair-à-pair de haut niveau basée sur les événements, permettant aux utilisateurs d'envoyer et de recevoir directement des objets. Licence Publique de l'Union Européenne 1.1 cmake
brpc Un framework RPC de qualité industrielle utilisé dans toute Baidu, avec plus de 1 000 000 d'instances et des milliers de types de services. ( Src ) ( Doc ) Apache 2.0 cmake
C++ REST SDK Un client HTTP asynchrone et un écouteur, Stream asynchrone, URI, JSON MIT cmake
cpp-httplib Une bibliothèque HTTP/HTTPS multiplateforme C++11 à en-tête unique MIT header-only ; cmake
cpp-netlib Une bibliothèque réseau C++ BSL-1.0 cmake
cppsimpleuri Un analyseur d'URI et de requêtes moderne en C++ MIT cmake
cpr Une bibliothèque moderne de requêtes HTTP en C++ MIT cmake
Crow Un micro-framework web en C++ (inspiré par Python Flask) BSD-3-Clause header-only; cmake
curlpp Enveloppe C++ pour libcURL (bibliothèque CURL). ( Src ) cmake, vcpkg
DumaisLib Divers utilitaires tels que serveur Web, JSON, serveur WebSocket, framework REST (une bibliothèque pour créer une API REST dans votre application C++) MIT make
EasyHttp Une bibliothèque cliente HTTP multiplateforme axée sur la facilité d'utilisation et la vitesse, prenant en charge la mise en cache des réponses HTTP et plus encore. MIT cmake
eCAL Une bibliothèque de communication inter-processus haute performance Apache 2.0 cmake
fineftp-server Une bibliothèque de serveur FTP pour Windows et Unix MIT cmake
FPNN F ast P rogrammable N exus N etwork. Cadre de service RPC entièrement asynchrone haute performance. Prend simultanément en charge HTTP, WebSocket, TCP et UDP fiable. Supporte le développement de serveurs à charge ultra-élevée, avec les SDK clients correspondants. 未知 make
gRPC Un framework RPC moderne, open source et haute performance pouvant fonctionner dans n'importe quel environnement. ( Src ) ( Doc ) Apache-2.0 bazel, cmake, vcpkg
gsoap Une boîte à outils de développement C/C++ pour les liaisons de données XML, les services Web WSDL/SOAP/XML rapides, WS-Security, les services RESTful JSON/XML-RPC GPLv2
hmbdc Un middleware/framework de publication-souscription de messages C++17 léger et haute performance header-only
HTTPP Un serveur HTTP simple, prêt pour la production, basé sur C++14 et construit sur Boost, ainsi qu'un client construit sur libcurl. BSD 2-Clauses "Simplifiée" cmake, make
IXWebSocket Une bibliothèque WebSocket + HTTP open-source sans dépendance, supportant SSL et l'extension WebSocket de compression par message. BSD 3-Clause "New" or "Revised" cmake, make
KCP Un protocole ARQ rapide et fiable qui aide les applications à réduire la latence réseau. MIT cmake
libashttp Une bibliothèque cliente HTTP asynchrone Licence publique générale limitée GNU v3.0
libjson-rpc-cpp

Un framework qui fournit une prise en charge JSON-RPC (appel de procédure distante) multiplateforme pour C++, entièrement compatible JSON-RPC 2.0 & 1.0.

MIT cmake, conan
libnavajo Un framework C++ incluant un serveur http multithreadé rapide, HTML5 Websockets, SSL, authentification X509 et HTTP, compression, cookies et gestion avancée des sessions, IPv4 et IPv6 (CeCILL-C). ACCORD DE LICENCE DE LOGICIEL LIBRE CeCILL-C cmake
libtins Une bibliothèque de création et de capture de paquets réseau ( Src ) ( Doc ) BSD-2 cmake, vcpkg
LiteNetLibPP Une bibliothèque UDP légère et fiable pour les jeux MIT cmake
mailio Bibliothèque MIME et email BSD 2-Clause "Simplified" cmake
nanomsg Une file d'attente de messages rapide, successeur de zeromq
netif Une bibliothèque C++14 pour obtenir les adresses réseau sur Windows, Linux, macOS et FreeBSD. BSD 3-Clauses "Nouvelle" ou "Révisée" header-only ; cmake
nghttp2 Bibliothèque C HTTP/2 et outils (serveur, client, proxy et outils de benchmarking) MIT cmake, configure
ngrest Un framework de services web RESTful JSON rapide et facile à utiliser Apache 2.0 cmake
nng Une file de messages rapide, successeur de nanomsg
Oat++ Un Framework Web : Implémentation REST-API et Requêtes ( Src ) ( Doc ) Apache 2.0 cmake
omniORB L'implémentation CORBA ORB en C++ la plus rapide, complète et portable
OpenDDS Implémentation DDS (Data Distribution Service)
Paho MQTT Un client C++ moderne pour MQTT d'Eclipse cmake
paozhu Un framework web C++20 prenant en charge HTTP/2, ORM et WebSocket MIT cmake
PcapPlusPlus Cadriciel multi-plateforme C++ pour la capture réseau, l'analyse et la création de paquets. Fournit des encapsulations C++ pour de nombreux moteurs de traitement de paquets populaires tels que libpcap, Npcap, WinPcap, DPDK, AF_XDP et PF_RING. ( Src ) Unlicense conan, homebrew, cmake, vcpkg
POCO Réseautage : chiffrement, HTTP ; Fichiers Zip ( Doc )
rest_rpc Un framework RPC C++11, haute performance, multiplateforme et facile à utiliser. MIT cmake
restbed Un framework multiplateforme riche en fonctionnalités qui apporte une fonctionnalité RESTful asynchrone (communication sécurisée via HTTP) aux applications C++14. Licence cmake
restc-cpp Accéder aux API JSON depuis C++. Client HTTP, sérialisation native C++ classe vers/depuis JSON, E/S asynchrones via les coroutines boost::asio. C++14. MIT cmake
restful_mapper ORM pour consommer des API RESTful JSON en C++ cmake, make
seastar Un framework d'application côté serveur haute performance, basé sur C++14/C++17. Apache 2.0 cmake, etc.
Silicon Le Framework Web Silicon C++14 : APIs Web Rapides et Robustes MIT cmake
sockpp Une bibliothèque de sockets C++ simple et moderne BSD 3-Clause "New" or "Revised" cmake
stream-client Un client léger basé sur Boost pour les sockets côté client / connecteur / pool de sockets / résolveur Apache 2.0 header-only; cmake
tacopie Une bibliothèque TCP C++11 MIT cmake
TAO CORBA
taox11 Une implémentation CORBA basée sur C++11 MIT
Unicomm Réseautage asynchrone, framework de communication TCP de haut niveau
uvw Un libuv (I/O asynchrone multiplateforme) wrapper en C++17 MIT header-only; cmake
WNetWrap Un wrapper WinInet en C++ MIT
wvstreams Une bibliothèque de mise en réseau C++ incluant UniConf et une API D-Bus pratique GPL
zeromq Une file d'attente de messages rapide

Concurrence

Bibliothèque Description Licence Configuration
AdaptiveCpp Fournit un compilateur et un système d'exécution de déport de charge SYCL et C++ parallel STL pour les CPU et GPU de NVIDIA, AMD, Intel BSD-2-Clause cmake
Asyncpp Une bibliothèque C++ asynchrone qui fournit diverses opérations concurrentes MIT cmake
BlockingCollection Classe C++11 de file d'attente bloquante, pile et file de priorité thread-safe, multi-producteur et multi-consommateur GPL-3.0 header-only
Boost.Atomic Fournit des types de données atomiques et des opérations sur ces types de données, ainsi que des contraintes d'ordonnancement de la mémoire requises pour coordonner plusieurs threads via des variables atomiques. BSL-1.0
Boost.Compute Une bibliothèque de calcul GPU/parallèle pour C++ basée sur OpenCL. BSL-1.0 cmake
Boost.Context Une bibliothèque C++11 qui fournit une abstraction de multitâche coopératif sur un seul thread. BSL-1.0
Boost.Interprocess Simplifie l'utilisation des mécanismes de communication et de synchronisation interprocessus et offre une large gamme de ceux-ci : mémoire partagée, fichiers mappés en mémoire, sémaphores, mutex, variables condition et types de mutex améliorables, versions nommées des objets de synchronisation, verrouillage de fichiers, files de messages. BSL-1.0
Boost.Lockfree Fournit des structures de données concurrentes non bloquantes (également appelées lock-free) : une file d'attente, une pile et un tampon circulaire (spsc_queue). BSL-1.0
Boost.MPI Une interface conviviale en C++ pour le standard Message Passing Interface BSL-1.0
Boost.Thread Permet l'utilisation de multiples threads d'exécution avec des données partagées et des moyens de synchroniser les données entre les threads. BSL-1.0
concurrencpp Concurrence moderne pour C++. Tâches, exécuteurs, minuteries et coroutines C++20. MIT cmake
dispenso Concurrence haute performance pour C++. parallel_for, Futures, pipelines, minuteries, tâches temporisées/périodiques et structures de données concurrentes. MIT cmake
Highway Fournit des intrinsèques SIMD/vectorielles portables en performance et agnostiques à la longueur. Prend en charge : SSE3, SSE4, AVX*, NEON, SVE*, WASM SIMD, RISC-V, POWER. ( Doc ) Apache-2.0 cmake
HPX Un système d'exécution C++ à usage général pour applications parallèles et distribuées de toute échelle ( Doc ) BSL-1.0 cmake, vcpkg
Intel TBB Intel® TBB est une bibliothèque C++ multiplateforme pour la programmation parallèle en mémoire partagée et le calcul hétérogène. La bibliothèque fournit : des algorithmes parallèles génériques, des conteneurs concurrents, un allocateur de mémoire évolutif, un ordonnanceur de tâches à vol de travail et des primitives de synchronisation de bas niveau. ( Src ) ( Doc ) Apache-2.0 ou Commercial cmake, make
KOKKOS Un modèle de programmation pour écrire des applications HPC portables en performance, utilisant CUDA, HIP, SYCL, HPX, OpenMP et les threads C++ comme backends ( Doc ) Personnalisé cmake, make
libopenmpi Le projet Open MPI est une implémentation open source de l'interface de passage de messages 3-clause BSD
libsimdpp Une bibliothèque C++ SIMD bas niveau portable sans surcoût. Boost header-only; cmake
MPL Une interface compatible C++-17 pour le standard Message Passing Interface BSD 3-Clauses "Nouvelle" ou "Révisée" header-only ; cmake
MutexGear Une bibliothèque de synchronisation C/C++ basée uniquement sur les mutex : roue, verrou de lecture-écriture, verrou de maintenance, files d'attente de travail La Bibliothèque MutexGear configure, msvc, make
OpenMP La spécification de l'API OpenMP pour la programmation parallèle
PoCL Une implémentation portable, reconfigurable et open-source (basée sur LLVM) de la norme OpenCL. ( Src ) ( Doc ) MIT cmake
RaftLib Acteurs concurrents de type flux en C++17 permettant des calculs parallèles de flux de données Apache-2.0 cmake
SObjectizer Un petit framework multiplateforme pour applications concurrentes et événementielles en C++ utilisant les modèles acteur et publication-abonnement. BSD-3-Clause cmake, vcpkg, conan
stdgpu Structures de données efficaces de type STL sur le GPU Apache 2.0 cmake
subprocess Bibliothèque multiplateforme C++17/20 pour exécuter des sous-processus MIT cmake, teaport
Taskflow Programmation Parallèle de Tâches en C++ Moderne TASKFLOW MIT cmake
task-thread-pool Pool de threads rapide et léger pour C++11 et versions ultérieures. BSD-2-Clause ou MIT ou BSL-1.0 cmake, vcpkg, en-tête unique
ThreadPool Un pool de threads simple et léger BSD-3-Clause header-only; cmake, make
thread_pool Un pool de threads moderne, rapide et léger MIT cmake
Thrust Algorithmes parallèles et structures de données de type STL basés sur CUDA, TBB ou OpenMP Apache v2.0, Boost v1.0. cmake
TimerAlarm Minuteries et alarmes basées sur les threads. BSD-3-Clause header-only; cmake, make
VexCL Une bibliothèque d'expressions vectorielles en C++ pour OpenCL, CUDA, OpenMP MIT cmake
ViennaCL Algèbre linéaire et algorithmes avec backends OpenMP, CUDA et OpenCL. ( Src ) ( Doc ) Personnalisé cmake
Xenium Une bibliothèque C++17 qui fournit diverses structures de données concurrentes et schémas de récupération. MIT header-only; cmake

Configuration

Bibliothèque Description Licence Configuration
Boost.Program_options La bibliothèque permet d'obtenir les options du programme, c'est-à-dire des paires (nom, valeur) de l'utilisateur, via des méthodes conventionnelles telles que la ligne de commande, le fichier de configuration et les variables d'environnement. BSL-1.0
figcone Lire les configurations JSON, YAML, TOML, XML ou INI en déclarant une structure MS-PL cmake
gconfmm Une interface C++ multiplateforme (officielle) pour la bibliothèque GUI populaire GTK, incluant des rappels de type sécurisé et un ensemble complet de widgets facilement extensibles via l'héritage. gtkmm utilise STL, incluant string s, conteneurs et itérateurs. UTF8 est pris en charge. ( Src ) ( Doc ) LGPLv2.1 autotools, meson, make
libconfig Une bibliothèque C/C++ simple et multiplateforme pour traiter les fichiers de configuration structurés ( "*.cfg" ) ( Src ) ( Doc ) LGPL 2.1 autotools, cmake, make
libconfini Un analyseur INI multiplateforme écrit en C ( Doc ) GPL-3.0 autotools, make
uconfig Une bibliothèque de configuration C++17 légère Apache 2.0 header-only; cmake

Ligne de commande
Bibliothèque Description Licence Configuration
Argh! Un gestionnaire d'arguments minimaliste. BSD 3-Clause header-only; cmake, vcpkg
argparse (hbristow) Une classe C++ légère pour l'analyse des arguments de ligne de commande, avec une interface similaire à la classe Python du même nom. BSD
argparse (morrisfranken) Une bibliothèque légère pour analyser les arguments de ligne de commande de manière élégante. Apache 2 header-only; cmake
argparse (p-ranav) Un analyseur d'arguments de ligne de commande pour C++17 MIT header-only; cmake, vcpkg
args Une bibliothèque simple d'analyse d'arguments en C++. MIT header-only; cmake, conan, meson, vcpkg
Boost.Program_options Cette bibliothèque permet d'obtenir les options du programme, c'est-à-dire des paires (nom, valeur) de l'utilisateur, via des méthodes conventionnelles telles que la ligne de commande, le fichier de configuration et les variables d'environnement. BSL-1.0
CLI11 Un analyseur de ligne de commande C++11 qui offre un ensemble de fonctionnalités riche avec une interface simple et intuitive. BSD-3-Clause header-only; cmake, meson, vcpkg
clipp Analyse d'arguments puissante et expressive pour le C++ moderne. MIT header-only; cmake, vcpkg
cmd_line_parser Analyseur de ligne de commande pour C++17. MIT header-only; cmake
cmdlime Une bibliothèque C++17 pour l'analyse de ligne de commande qui fournit une interface concise et déclarative avec prise en charge des sous-commandes, des validateurs et la possibilité de choisir le format d'options de ligne de commande GNU, POSIX ou X11. MS-PL cmake
cxxopts Un analyseur d'arguments de ligne de commande léger pour C++11/C++17, prenant en charge la syntaxe standard de style GNU pour les options. MIT header-only; bazel, cmake
fire-hpp Créer des interfaces en ligne de commande entièrement fonctionnelles en utilisant des signatures de fonctions. BSL-1.0 header-only; cmake
flags Analyseur d'arguments C++17 simple et extensible. Unlicense header-only; cmake
gflags Une bibliothèque qui implémente le traitement des drapeaux de ligne de commande. Elle inclut une prise en charge intégrée des types standards tels que string et la capacité de définir des drapeaux dans le fichier source où ils sont utilisés. BSD cmake
structopt Analyser les arguments de ligne de commande en définissant une structure. MIT header-only; cmake
tclap Une bibliothèque de modèles C++ simple pour analyser les arguments de ligne de commande. La bibliothèque fournit une interface orientée objet simple et flexible. MIT cmake

CSS
Bibliothèque Description Licence Configuration
mycss Analyseur CSS

HOCON
Bibliothèque Description Licence Configuration
cpp-hocon Une implémentation C++ du format HOCON développée par Pupplet.

JSON
**Note:** Le texte à traduire dans ce fragment HTML est uniquement "JOST". Cependant, comme il s'agit d'un nom propre (probablement un acronyme ou un nom de projet) et qu'il n'y a pas d'autres éléments textuels à traduire, la traduction n'est pas nécessaire. Le code HTML reste inchangé. **Note:** Le texte "JSON++" n'a pas été traduit car il s'agit d'un terme spécifique au C++ (nom de bibliothèque). Aucune autre traduction n'était nécessaire dans ce fragment HTML car il ne contenait que des balises HTML, des attributs et un terme technique C++.
Bibliothèque Description Licence Configuration
ArduinoJson Bibliothèque JSON C++98/11/14/17 pour Arduino, IoT et C++ embarqué MIT cmake
Boost.JSON L'analyse, la sérialisation et le DOM JSON en C++11/17 BSL-1.0
cajun-jsonapi Une API C++ pour JSON mettant l'accent sur une interface intuitive et concise qui imite le C++ standard autant que possible. make
DAW JSON Link Une bibliothèque C++17 fournissant des liaisons statiques C++ avec vérification de types permettant l'analyse syntaxique directe vers les structures de données utilisateur sans allocation de bibliothèque, modes push/pull, support d'allocateur, constexpr BSL 1.0 cmake
Glaze L'une des bibliothèques JSON les plus rapides (C++23) avec sérialisation directe en mémoire. Prend également en charge BEVE et CSV. MIT cmake, conan, build2, vcpkg
jansson Une bibliothèque C pour encoder, décoder et manipuler des données JSON avec support UTF-8 MIT cmake, make
jeayeson Une bibliothèque JSON C++14 très rationnelle BSD-3 header-only
jios Flux d'Entrée-Sortie JSON MIT cmake
JOST
json JSON de Niels Lohmann pour C++11, avec une syntaxe intuitive MIT header-only ; bazel, cmake, meson
Jsonifier Quelques classes C++20 pour l'analyse et la sérialisation JSON extrêmement rapides MIT cmake
JSON Voorhees JSON tueur pour C++11 ( Doc ) Apache-2.0 cmake
JSON++
json11 Une petite bibliothèque JSON pour C++11, fournissant l'analyse et la sérialisation JSON. MIT cmake
JsonBox Une bibliothèque C++ utilisée pour lire et écrire JSON avec facilité et rapidité. MIT cmake
jsoncons Une bibliothèque pour les formats de données JSON et similaires à JSON, avec JSON Pointer, JSON Patch, JSONPath, CSV, MessagePack, CBOR, BSON, UBJSON. Personnalisée header-only
jsoncpp Une bibliothèque permettant de manipuler des valeurs JSON, incluant la sérialisation et la désérialisation, tout en préservant les commentaires. MIT cmake, conan, vcpkg
libjson
minijson Une analyse et sérialisation JSON en C++ sans DOM et sans allocation mémoire Personnalisée cmake
Neyson Léger Une bibliothèque JSON C++11 BSD-3-Clause cmake
nosjob Une bibliothèque C++98 pour générer et consommer des données JSON MIT make
qjson
rapidjson Un analyseur/générateur JSON rapide pour C++ avec API de style SAX/DOM, prend en charge UTF-8/16/32, utilise optionnellement SIMD. ( Doc ) Personnalisée header-only ; cmake, vcpkg
simdjson Analyser des gigaoctets de JSON par seconde en tirant parti des micro-architectures modernes et de la parallélisation avec SIMD ( Doc ) ( Vidéo ) Apache-2.0 cmake, vcpkg
struct_mapping Mappe JSON vers et depuis une structure C++ MIT cmake
swxJson La bibliothèque C++ JSON la plus pratique actuellement en usage. Lisez et écrivez des structures complexes à n'importe quel niveau avec un seul appel de fonction. Les performances sont approximativement la moitié de celles de RapidJSON. MIT make
ThorsSerializer Flux d'Entrée-Sortie JSON/BSON/YAML MIT make
ujson µjson est une petite bibliothèque JSON C++11 UTF-8 cmake
yyjson Une bibliothèque JSON haute performance écrite en C ANSI MIT cmake

TOML
Bibliothèque Description Licence Configuration
toml++ Analyseur et sérialiseur TOML pour C++17 et versions ultérieures
toml11 Bibliothèque d'analyse TOML basée sur C++11

XML
Bibliothèque Description Licence Configuration
ai-xml Sérialiser des objets vers et depuis XML en ajoutant une seule fonction minimale à une classe. Utilise libxml++ en arrière-plan. AGPL-3.0 make
GPDS Un sérialiseur de données à usage général pour sérialiser des objets vers et depuis XML. Utilise TinyXML en arrière-plan.
gSOAP Liaisons de données XML
libxml++ libxml++ est un wrapper C++ pour la bibliothèque C d'analyseur XML libxml. ( Doc ) LGPL-2
pugixml Un analyseur XML léger, simple et rapide pour C++ avec support XPath MIT cmake, conan
tinyxml
tinyxml2 Une autre version et travail en cours de TinyXML.
Xerces

YAML
Bibliothèque Description Licence Configuration
yaml-cpp Un analyseur et émetteur YAML en C++ MIT cmake

Conteneurs

Bibliothèque Description Licence Configuration
Boost.Bimap Une bibliothèque de cartes bidirectionnelles qui propose des conteneurs associatifs tels que bimap<X,Y> dans lesquels à la fois X et Y peuvent être utilisés comme clé. ( Src ) BSL-1.0
Boost.Container Une bibliothèque qui implémente plusieurs conteneurs bien connus, incluant des conteneurs similaires à la bibliothèque standard, ainsi que des conteneurs récursifs, et de nouveaux conteneurs utiles : flat_map , flat_set , flat_multimap , flat_multiset , stable_vector , static_vector , small_vector , devector . ( Src ) BSL-1.0 header-only
Boost.Fusion Une bibliothèque pour travailler avec des collections hétérogènes de tuples . Fournit un ensemble de conteneurs ( vector , list , set et map ), ainsi qu'une présentation transformée de leurs données sous-jacentes, également appelée views ." ( Src ) BSL-1.0
Boost.Heap Une implémentation de files de priorité avec plus de fonctionnalités et des caractéristiques de performance différentes que la bibliothèque standard. ( Src ) BSL-1.0
Boost.Pointer Container Fournit des conteneurs pour stocker des objets alloués sur le tas de manière sûre face aux exceptions et avec une surcharge minimale. ( Src ) BSL-1.0
Boost.Tuple Implémente le n- tuple pré-C++11 (une collection de taille fixe d'éléments) ( Src ) BSL-1.0
Boost.Variant Implémente le variant pré-C++17 (un conteneur union discriminé, sûr, générique et basé sur la pile) ( Src ) BSL-1.0
C++ Allocators Allocateurs conformes à la bibliothèque standard pour mémoire statique de taille fixe et basée sur la pile + un autre allocateur conforme permettant l'allocation personnalisée de limites BSD-3-Clause cmake, make
cpp-btree Les conteneurs B-tree utilisent mieux le cache du processeur : btree_map , btree_set , btree_multimap , btree_multiset . ( Src ) Apache-2.0 header-only ; cmake
DataFrame DataFrame C++ pour l'analyse statistique, financière et ML -- en C++ moderne utilisant des types natifs et un stockage mémoire continu BSD-3-Clause cmake, make, conan, vcpkg
eggs::variant Eggs.Variant est une union discriminée générique, type-safe pour C++11/14/17. Il est particulièrement remarquable pour son excellente prise en charge constexpr . BSL-1.0 cmake
Frozen C++14 constexpr ensembles immuables, cartes et algorithmes basés sur le hachage parfait. Apache-2.0 header-only; cmake
Immer Une bibliothèque de structures de données persistantes et immuables Boost cmake
plf::colony Conteneur non ordonné de type "sac" qui surpasse les conteneurs std:: dans les scénarios à forte modification tout en maintenant des pointeurs valides vers les éléments non effacés malgré les insertions et suppressions. Compatible C++98/11/14/etc. Voir aussi P0447 ( std::hive ). ( Source ) zlib conan build2
plf::list Une implémentation de std::list qui sacrifie le splicing de plages pour une meilleure utilisation du cache, offrant des insertions, suppressions et itérations plus rapides. Compatible C++98/03/11/14/17/20/23/26/etc. ( Src ) ( Doc ) zlib
plf::reorderase Une extension et optimisation de l'idiome "swap-and-pop"/"move-and-pop" pour les conteneurs à accès aléatoire afin d'améliorer les performances d'effacement des conteneurs à accès aléatoire, lorsque l'ordre post-effacement n'est pas important. Couvre les effacements simples, par plage et de style std::erase_if . Compatible C++98/11/14/etc. ( Source ) zlib
plf::queue Un conteneur de remplacement direct pour std::queue avec de meilleures performances que std::deque et std::list dans un contexte de file d'attente. Compatible C++98/11/14/etc. ( Src ) zlib
plf::stack Un conteneur de remplacement direct pour std::stack avec de meilleures performances que std::vector et std::deque dans un contexte de pile. Compatible C++98/11/14/etc. ( Src ) zlib
ring_span Une implémentation légère du ring_span d'Arthur O'Dwyer, également appelée vue de tampon circulaire. Compatible C++98. BSL-1.0 header-only ; cmake
strict_variant Un variant adapté au temps réel/embarqué (c'est-à-dire compatible avec -fno-exceptions / -fno-rtti ), jamais vide ciblant C++11. Rapide, empêche de nombreuses conversions implicites indésirables. BSL-1.0 cmake
tiny::optional Un remplacement pour std::optional qui permet l'utilisation de valeurs sentinelles pour éliminer la surcharge mémoire. BSL-1.0 cmake
Ygg Une implémentation intrusive C++11 de conteneurs et structures de données haute performance tels qu'un arbre rouge-noir , un arbre d'intervalles et une carte d'intervalles. MIT header-only; cmake

Cryptographie

Bibliothèque Description Licence Configuration
Botan Une boîte à outils cryptographique. ( Src ) BSD 2-Clause "Simplified" make
crypto++ Une bibliothèque de classes C++ gratuite de schémas cryptographiques. ( Src ) Boost make
gnutls Une bibliothèque de communications sécurisées implémentant les protocoles SSL, TLS et DTLS et les technologies associées. ( Src ) LGPL-2.1 make
openssl Une boîte à outils cryptographique polyvalente robuste, de qualité commerciale et complète. ( Src ) Apache-2.0 make
TomCrypt Une boîte à outils cryptographique modulaire et portable assez complète offrant aux développeurs un vaste éventail de chiffrements par blocs, fonctions de hachage à sens unique, modes de chaînage, générateurs de nombres pseudo-aléatoires, cryptographie à clé publique et une pléthore d'autres routines. ( Src ) public domain cmake, make

Bases de données

Traduction en français : **Note** : Le texte ne contient aucun contenu à traduire en dehors des balises HTML et des termes C++ qui doivent être préservés. La structure HTML et tous les termes techniques (QUINCE, ORM, EDSL, Boost) restent inchangés conformément aux instructions.
Bibliothèque Description Licence Configuration
Boost::MySQL Bibliothèque cliente MySQL BSL-1.0
cpp-redis Client Redis léger C++11 : asynchrone, thread-safe, sans dépendance, pipelining, multi-plateforme. ( Doc ) MIT cmake
DTL Rend les ensembles d'enregistrements ODBC similaires à un conteneur STL ( Src ) ( Doc )
EasyQtSql Une bibliothèque légère C++11 (basée sur Qt) pour l'interrogation SQL rapide et facile MIT header-only; qmake
Galera Le Galera Cluster est la bibliothèque de réplication multi-maître synchrone (Galera) et une API Write Set Replication (WSREP) pour MySQL/MariaDB ( Src ) GPLv2 cmake, scons
LevelDB Une bibliothèque C++ développée par Google qui gère le stockage persistant de données clé-valeur à l'échelle du milliard. ( Doc ) BSD-3 cmake
libpqxx Le connecteur C++ pour PostgreSQL ( Src ) BSD-3 cmake, make
lmdb++ Enveloppe C++11 pour la bibliothèque de base de données embarquée LMDB à arbre B+. Unlicense make
mongocxx Une bibliothèque de pilote officielle C++11 pour MongoDB ( Doc ). Elle propose des API optimisées pour les opérations CRUD, l'indexation et l'agrégation. Prenant en charge BSON et incluant le regroupement de connexions et les mécanismes d'authentification, elle offre des solutions hautes performances et évolutives pour développer des applications C++ exploitant MongoDB. Apache 2.0 cmake
mysql++ Base de données MySQL et outils
nanodbc Un wrapper C++14 petit, multiplateforme pour l'API ODBC C native MIT cmake
ODB Un système ORM (Object-Relational Mapping) open-source, multiplateforme et multi-base de données pour C++. ODB prend en charge les bases de données relationnelles MySQL, SQLite, PostgreSQL, Oracle et Microsoft SQL Server ainsi que les standards de langage C++98/03 et C++11. GPL2 et/ou NCUEL
OTL Une bibliothèque de base de données basée sur des templates C++ pour Oracle DB, ODBC et DB2-CLI. ( Src )
Pgfe L'API client PostgreSQL (FrontEnd) en C++ moderne Zlib cmake
QTL Une bibliothèque de base de données C++ conviviale et légère pour MySQL, SQLite et ODBC. Apache-2.0 make
QUINCE QU eries IN C ++ E xpressions (ORM+EDSL) Boost
QUINCE QU eries IN C ++ E xpressions (ORM+EDSL) Boost
QxOrm Une bibliothèque de base de données O bjet R elationnel M apping (ORM) pour C++/Qt, prend en charge la plupart des bases de données courantes, la sérialisation (JSON, binaire, XML) ; serveur web HTTP autonome multi-thread GPLv3 ou Propriétaire
redis-cpp Une bibliothèque cliente légère en C++17 pour exécuter des commandes Redis. MIT header-only; cmake
redis-plus-plus Un client Redis écrit en C++ 11, prenant en charge Redis Sentinel, Redis Cluster, le pipeline, les transactions, pubsub, le pool de connexions et une interface de type STL Apache-2.0 cmake
SOCI Une bibliothèque de bases de données basée sur des plugins qui intègre des requêtes SQL dans du code C++ standard ; les backends pris en charge incluent : DB2, Firebird, MySQL, ODBC (backend générique), Oracle, PostgreSQL, SQLite3. ( Src ) ( Doc ) Boost cmake
SQLAPI++ Une bibliothèque middleware C++ pour bases de données qui prend en charge plusieurs systèmes de bases de données SQL : Oracle, SQL Server, DB2, Sybase, MySQL, PostgreSQL, SQLite, Informix, InterBase / Firebird, SQLBase, SQL Anywhere, ODBC, MariaDB. ( Src ) ( Doc ) Personnalisée make
SQLiteCPP Un wrapper C++ SQLite3 léger et facile à utiliser. MIT cmake, meson, vcpkg
SQLite ORM Un L angage D édié S pécifique E mbarqué (EDSL) pour SQL, tel que compris par SQLite, pour C++ moderne. AGPL-3.0, MIT header-only ; cmake, vcpkg
sqlpp11 Un langage spécifique au domaine intégré de type sûr pour les requêtes et résultats SQL en C++. BSD-2 cmake
taoPQ Une bibliothèque cliente PostgreSQL C++17 légère Boost cmake

Liaisons de langages embarqués

Bibliothèque Description Licence Configuration
AngelScript Un langage de script similaire au C++. ZLib
ChaiScript Un langage de script embarqué facile à utiliser pour le C++. BSD-3-Clause
cling Un interpréteur C++ interactif, construit sur Clang et LLVM pour tirer parti du RAD, créer des scripts, du scripting embarqué et de la génération de code à l'exécution. ( Src ) Personnalisée / LGPL cmake
ExprTk Un analyseur syntaxique et moteur d'évaluation d'expressions mathématiques en temps d'exécution extrêmement efficace, simple à utiliser et facile à intégrer. ExprTk prend en charge de nombreuses formes de sémantiques fonctionnelles, logiques et de traitement vectoriel et est très facilement extensible.
Jinx Un langage de script conçu pour les jeux vidéo. MIT cmake
spidermonkey.dev Le moteur JavaScript et WebAssembly de Mozilla.
muparser Une bibliothèque d'analyse syntaxique d'expressions mathématiques haute performance et extensible écrite en C++. BSD-2-Clause cmake
PythonQt Une liaison Python dynamique pour le framework Qt. Il offre un moyen simple d'intégrer le langage de script Python dans les applications C++ Qt. LGPL 2.1
lua Un langage de script multi-paradigme léger conçu principalement pour une utilisation embarquée. Bibliothèque C. MIT make
sol2 Une bibliothèque moderne de liaison C++ vers Lua. MIT header-only; cmake
v8pp Lie des fonctions et classes C++ dans le moteur JavaScript V8. BSL-1.0 header-only; cmake

Embarqué/Temps réel

Bibliothèque Description Licence Configuration
distortos Un RTOS orienté objet C++11 pour microcontrôleurs (ARM, STM32) ( Src ) ( Doc ) MPL-2.0 cmake
ETL E mbedded T emplate L ibrary - Bibliothèque de modèles C++03 portable optimisée pour les plateformes à ressources limitées (embarquées) ( Src ) MIT
QP/C++ Noyau RTOS : Cadres de travail embarqués temps réel basés sur les objets actifs et les machines à états GPLv3
µcuREST Cadre de serveur REST/JSON C++11 pour microcontrôleurs

Métadonnées de fichier

Bibliothèque Description Licence Configuration
exempi
exiv2
libkexiv2
rarian

Calculs Financiers

Bibliothèque Description Licence Configuration
DataFrame Un DataFrame C++ pour l'analyse statistique, financière et ML -- en C++ moderne utilisant des types natifs et un stockage mémoire continu BSD-3-Clause cmake, make, conan
QuantLib Une bibliothèque de finance quantitative - Une bibliothèque libre/open-source pour la finance quantitative BSD modifiée

Architecture des Moteurs de Jeu

Bibliothèque Description Licence Configuration
Anax Un système d'entités C++ open-source MIT cmake
Anura Un moteur de jeu complet et la technologie derrière Frogatto & Friends . Personnalisée Open Source make, vcpkg
BOX2D Un moteur physique MIT cmake
EntityPlus Un système d'entités et de composants C++17 BSD-1.0 cmake
EntityX Un système d'entités-composants C++ rapide et type-safe MIT cmake
EnTT Une petite bibliothèque pour le développement de jeux et plus, écrite en C++ moderne MIT header-only; cmake, bazel, conan, vcpkg, brew, cppget

Multimédia Général

Bibliothèque Description Licence Configuration
Kigs-framework Un framework modulaire multi-usage multiplateforme MIT
openFrameworks MIT
SDL S imple D irectMedia L ayer : un accès bas niveau multiplateforme (Windows, macOS, Linux, iOS, Android et autres) au matériel audio, clavier, souris, manette et graphique via l'API graphique de la plateforme (OpenGL/Direct3D/Metal/Vulkan) ( Doc ) ( Src ) zlib cmake
SFML S imple et F ast M ultimedia L ibrary ; multiplateforme (Windows, Linux, macOS et bientôt Android & iOS) ; fournit une interface simple pour faciliter le développement de jeux et d'applications multimédias. Elle est composée de cinq modules : système, fenêtre, graphiques (sur OpenGL), audio et réseau. zlib/png cmake
SIGIL S ound, I nput, and G raphics I ntegration L ibrary ; une bibliothèque simple, multiplateforme et minimaliste pour le texte, les formes, l'entrée, l'audio et les images 2D. Plateformes supportées : Windows, Linux et Raspberry Pi Licence cmake

Générique

Bibliothèque Description Licence Configuration
Abseil Une collection open-source de code de bibliothèque C++ de Google conçue pour compléter la bibliothèque standard C++. ( Doc ) ( Src ) Apache-2.0 cmake
Conteneurs Intrusifs Abstraits Plus flexible que Boost.Intrusive , mais non compatible STL.
Au Une bibliothèque d'unités physiques compatible C++14 sans dépendances, mettant l'accent sur la sécurité, l'accessibilité et les performances. ( Doc ) Apache 2.0 header-only
BDE Les bibliothèques principales de l'environnement de développement Bloomberg de Bloomberg L.P. Apache
Better Enums Énumérations réflexives (enum vers chaîne, itération, etc.) avec support constexpr. BSD-2 header-only, cmake, make
bitfield.h Structure de champs de bits, plus portable/flexible que la fonctionnalité de base du langage.
Boost Une grande collection de bibliothèques génériques BSL-1.0
CAF Le C++ Actor Framework (CAF) est une implémentation open-source du modèle d'acteurs en C++11 proposant des implémentations d'acteurs légères et rapides, le filtrage par motif pour les messages, la messagerie transparente au réseau, et plus encore BSD
Cinder Une bibliothèque communautaire, gratuite et open-source pour la programmation créative de qualité professionnelle en C++. ( Doc ) ( Src ) Modified BSD cmake
CommonPP Une bibliothèque polyvalente mettant particulièrement l'accent sur l'extraction de métriques d'un projet. BSD
composite_op.h Introspection basique des membres de données de classe, fastidieuse et souvent non réentrante, mais parfois utile.
cpp-mmf Une bibliothèque C++98 qui encapsule les fichiers mappés en mémoire pour POSIX ou Windows
cxxomfort Rétroportages de fonctionnalités C++ (de C++11 vers C++03 et propositions C++1y vers C++11/C++03).
Dlib Réseaux, threads, interfaces graphiques, structures de données, algèbre linéaire, apprentissage automatique, analyse XML et texte, optimisation numérique, réseaux bayésiens, et de nombreuses autres tâches Boost
eventpp Une bibliothèque d'événements C++ pour les rappels, le répartiteur d'événements et la file d'attente d'événements. Avec eventpp, vous pouvez facilement implémenter le mécanisme de signal et slot, le modèle éditeur et abonné, ou le modèle observateur. Apache 2.0
fcppt Freundlich's C++ Toolkit (fcppt) est une collection de bibliothèques axée sur l'amélioration du code C++ général en fournissant de meilleurs types et en utilisant la programmation fonctionnelle.
Folly Bibliothèque open-source de Facebook. Une bibliothèque multiplateforme de composants C++14 conçue en pensant à la praticité et à l'efficacité. ( Doc ) Apache-2.0 cmake, vcpkg
GSL Implémentation de la bibliothèque de support des G uides de base S pour le L angage C++, recommandée par Bjarne Stroustrup, Herb Sutter et collaborateurs dans les C++ Core Guidelines MIT cmake, vcpkg
gsl-lite Une version de la bibliothèque de support des directives ISO C++ (GSL) pour C++98, C++11 et ultérieur MIT header-only
GUL14 Bibliothèque utilitaire générale pour C++14 de DESY : Fonctions et types utilitaires fréquemment utilisés, incluant les utilitaires de chaînes, les fonctions statistiques et numériques, les conteneurs, les moyens de débogage, etc. ( Src ) LGPL-2.1 meson, vcpkg
History Framework Annuler/Rétablir C++17 Moderne Unlicense
hspp Une bibliothèque expérimentale pour apporter la programmation de style Haskell au C++. Apache-2.0 header-only
IP-DOS (tm) IdeaFarm (tm) Piggyback Distributed Operating System : Un environnement de programmation généraliste pour le langage C++. Open Source Propriétaire Open Watcom 2.0
JUCE Une boîte à outils C++ multiplateforme complète et éprouvée GPL
Kangaru Un conteneur d'injection de dépendances pour C++11 et C++14 MIT
Kerbal Rétroportages des fonctionnalités modernes de la STL vers les standards précédents. Plus de fonctionnalités ! Plus de constexpr ! LGPL-3.0 header-only ; cmake
libsourcey Une bibliothèque C++14 multiplateforme pour le réseau haute vitesse et l'encodage multimédia. HTTP, WebSockets, TURN, STUN, Symple et plus. LGPL-2.1 cmake
LLNL/units Une bibliothèque C++ d'exécution pour manipuler les unités de mesure et les conversions entre elles, ainsi que les représentations textuelles des unités et des mesures BSD 3-Clause "New" or "Revised" cmake
Loki Une bibliothèque C++ de conceptions, contenant des implémentations flexibles de modèles de conception et d'idiomes courants. MIT make
match(it) Une bibliothèque légère de pattern matching pour C++17 avec des API sans macros. Apache-2.0 header-only
nonstd-lite Une liste de dépôts *-lite (par exemple, span-lite , scope-lite , expected-lite ) contenant des implémentations C++98/11 de certains types de bibliothèque C++17/20/23 proposés ou déjà standardisés, tels que std::span , std::expected etc). BSL-1.0 header-only
nytl Une bibliothèque de modèles utilitaires générique en C++17. BSL-1.0 header-only
OnPosix Bibliothèque C++ fournissant plusieurs abstractions (par exemple, threading, networking, logging, IPC, etc.) sur les plateformes POSIX.
Reason XML, xpath, regex, threads, sockets, HTTP, SQL, date-time, streams, encoding and decoding, filesystem, compression GPL
SaferCPlusPlus Des substituts compatibles sûrs pour les primitives non sécurisées du C++, incluant les pointeurs, int et std::vector . Boost
Smart Enum to_string , from_string et plus pour vos énumérations. BSL-1.0 cmake
units Une bibliothèque d'analyse dimensionnelle et de conversion d'unités à la compilation, construite sur C++14 sans dépendances MIT header-only
yaal Y et A nother A bstraction L ayer - algorithmes, collections, calcul en précision arbitraire, analyseurs syntaxiques pilotés par grammaire DSL générique et plus encore CC BY-ND-NC 4.0 cmake
Yato Une bibliothèque moderne C++(14/17) multiplateforme de style STL et compatible STL implémentant des conteneurs, des gammes, des itérateurs, des traits de type et d'autres outils ; système d'acteurs ; interface de configuration type-safe. Apache-2.0 cmake
yomm2 Des multi-méthodes ouvertes pour C++17 Boost
zoolib ZooLib est une boîte à outils C++ riche en fonctionnalités. MIT

GPS

Bibliothèque Description Licence Configuration
gpsd Un ensemble d'outils open-source et multiplateforme (Linux/Unix/BSD, incluant Android et OS X) compatibles GPS, tel qu'un démon traducteur et réplicateur pour dispositifs GPS, radios AIS et autres capteurs de navigation. gpsd est principalement écrit en C et Python, mais possède également un wrapper C++. gpsd est omniprésent dans les systèmes embarqués mobiles. Chaque application Android géolocalisée est indirectement un client gpsd . ( Doc ) ( Src ) BSD 2-clause scons

Interface utilisateur graphique

Bibliothèque Description Licence Configuration
Brisk Framework GUI modulaire C++20 multiplateforme, avec capacités réactives et rendu évolutif accéléré par GPU. ( Src ), ( Doc ) GPL2+/Propriétaire cmake, vcpkg
Dear ImGui Une bibliothèque GUI légère pour C++ avec des dépendances minimales, portable, indépendante du rendu, optimisée pour une utilisation dans des applications compatibles pipeline 3D. MIT vcpkg
FLTK Une boîte à outils GUI C++ multiplateforme (Linux, Windows, MacOS) offrant des fonctionnalités GUI modernes et prenant en charge les graphiques 3D via OpenGL/GLUT. Conçue pour être petite et modulaire. Inclut un constructeur d'interface. LGPL ver.2
nana Programmation GUI multiplateforme dans un style C++ moderne. ( Src ), ( Doc ) BSL-1.0 cmake, vcpkg
nanogui Une bibliothèque de widgets minimaliste multiplateforme pour OpenGL 3.x ou supérieur ( Doc )
OWLNext Mise à jour moderne d' OWL pour écrire des applications GUI en C++ standard sous Windows
Slint Une boîte à outils GUI déclarative pour créer des interfaces utilisateur natives pour bureau, embarqué et microcontrôleurs. ( Src ), ( Doc ) GPL 3, Sans redevance , ou Commercial cmake
tiny file dialogs Un ensemble de boîtes de dialogue de fichiers multiplateforme C/C++ (pas d'initialisation, pas de boucle principale, 6 appels de fonctions modales) header-only
U++ Un framework de développement rapide d'applications multiplateforme (Windows, GNU/Linux, macOS) avec EDI intégré. Compatible C++17. ( Doc ) ( Src ) BSD-3-Clause make
WxWidgets Un framework C++ multiplateforme (Windows, GNU/Linux, macOS) libre et open-source pour écrire des applications GUI avancées utilisant des contrôles natifs. ( Doc ) LGPL modifiée cmake, make
xtd Un framework C++17/20 moderne pour créer des applications console, GUI et de tests unitaires sur Windows, macOS, Linux, iOS et Android. ( Src ) ( Doc ) MIT cmake

CopperSpice
Bibliothèque Description Licence Configuration
CopperSpice Ensemble de bibliothèques C++ utilisées pour développer des applications logicielles multiplateformes. Il utilise un C++ moderne et idiomatique et s'intègre parfaitement avec la STL. CopperSpice est dérivé du framework Qt. ( Doc ) ( Src ) LGPL-2.1 cmake
CsSignal Bibliothèque autonome C++ de signaux/slots prenant en compte les threads LGPL-2.1 cmake
CsString Bibliothèque autonome C++ de chaînes de caractères prenant en charge Unicode LGPL-2.1 cmake
libGuarded Bibliothèque autonome C++ de multithreading pour gérer l'accès aux données partagées LGPL-2.1 cmake

GTK+
Bibliothèque Description Licence Configuration
evince
flowcanvas
glibmm
goocanvasmm
gtkmm Une interface C++ multiplateforme pour la bibliothèque d'interface graphique GTK+ . LGPL
libglademm
libgnomecanvasmm
webkitgtk

Qt
Bibliothèque Description Licence Configuration
libdbusmenu-qt Une petite bibliothèque conçue pour rendre le partage et l'affichage de structures de menus via DBus simple et facile à utiliser. Elle fonctionne à la fois pour QT et GTK+ et facilite la construction de menus.
Qt ( Doc ) ( Src )
QuickQanava Une bibliothèque de visualisation de réseaux/graphes C++14 / éditeur de nœuds Qt. BSD 2.0 cmake
qwt5 Widgets Qt pour Applications Techniques
qwtplot3d

U++
La traduction du texte "U++" en français reste "U++" car il s'agit d'un nom propre/produit spécifique qui ne se traduit pas. La structure HTML est conservée intacte conformément aux instructions.
Bibliothèque Description Licence Configuration
U++ Un framework de développement d'applications rapide multiplateforme en C++ axé sur la productivité des programmeurs. Il inclut un ensemble de bibliothèques (GUI, SQL, etc.) et un environnement de développement intégré. ( Src/Bin ) BSD
upp-components Une collection de paquets tiers pour U++ comme TerminalCtrl , MessageCtrl etc. BSD-3-Clause

Graphiques

Bibliothèque Description Licence Configuration
bgfx Une bibliothèque puissante et multiplateforme (Windows, Mac, Linux, iOS, Android, Web) de rendu graphique 2D/3D prenant en charge les shaders, avec des moteurs de rendu : DX, OpenGL, Metal, WebGL, Vulkan, etc. ( Doc ) BSD-2 make
cairomm Un wrapper C++ pour la bibliothèque graphique cairo , une bibliothèque 2D prenant en charge plusieurs périphériques de sortie : X Window, Quartz, Win32, tampons d'image, PostScript, PDF, SVG, OpenGL (expérimental). LGPL
dfpsr Un moteur de rendu logiciel 2D, 3D et isométrique avec une boîte à outils d'interface graphique de bureau, des dépendances minimalistes, conçu pour une maintenance à long terme et pouvant fonctionner sans pilotes accélérés 3D zlib
gegl Ge nérique G raphics L ibrary (GEGL) est un framework de traitement d'image basé sur le flux de données, offrant un traitement en virgule flottante et des capacités de traitement d'image non destructif. ( Src ) LGPL
io2d Une implémentation de référence de P0267 , l'API graphique 2D proposée pour ISO C++ BSL-1.0 cmake
nanovg Une bibliothèque de dessin vectoriel 2D antialiassé en C sur OpenGL pour les interfaces utilisateur et visualisations, avec des ports vers DX11/Metal/bgfx. zlib
nux Une boîte à outils OpenGL LGPL v3
pangomm L'interface C++ officielle pour la bibliothèque de disposition de polices Pango . ( Src ) LGPL v2.1 make
Skia Une bibliothèque graphique 2D open-source écrite en C++. Skia Graphics Engine est utilisée dans Google Chrome, Chrome OS, Mozilla Firefox, Android, LibreOffice, Flutter, etc. Skia possède plusieurs moteurs : rastérisation logicielle, sortie (PDF), OpenGL, SVG, etc. New BSD
TXLib TX Library est une petite bibliothèque graphique 2D pour Win32 écrite en C++.
ULIS Une bibliothèque C++14 multiplateforme pour le traitement générique d'images numériques, rastériseur logiciel 2D, formats d'image illimités ( u8 , u16 , u32 , float , double ), Disposition mémoire personnalisée par ordre des bits, Tous les modes de fusion de pixels Photoshop + 11 modes supplémentaires, Modèles de couleur (RGB, HSL, HSV, CMYK, ...), Pipelines gérées en couleur, Prise en charge des espaces colorimétriques (profils icm et indépendants du périphérique), Algorithmes optimisés avec multithreading, Algorithmes optimisés avec extensions SIMD (SSE2), Pools d'images et caches pour optimisations, Stockage en mémoire de séquences d'images animées. Personnalisée (gratuite uniquement pour un usage non commercial) cmake

Graphiques (3D)

Bibliothèque Description Licence Configuration
assimp Chargement de modèles 3D BSD-3 cmake, vcpkg
bgfx Une bibliothèque de rendu multiplateforme, indépendante de l'API graphique, de style "Bring Your Own Engine/Framework". BSD-2 make, vcpkg
Diligent Engine Une bibliothèque graphique 3D moderne, multiplateforme et bas niveau. Apache-2.0 cmake
Epoxy Un successeur moderne de GLEW. Abstrait les différences entre certains types de contextes GL, ce qui le rend parfois plus simple à utiliser que GLEW. Utilisé par le projet GTK+ depuis 2015. MIT meson, vcpkg
G3D Le G3D Innovation Engine est un moteur de jeu 3D open-source, multiplateforme (Windows, Linux, Mac OS) et complet, écrit en C/C++. G3D est utilisé dans des jeux commerciaux, des articles de recherche, des simulateurs et des cours universitaires. Il prend en charge le rendu matériel en temps réel et hors ligne, le lancer de rayons, le chargement de modèles, l'algèbre linéaire et le calcul GP sur les GPU. Prend en charge les formats 3DS, OBJ, MP4, PNG, JPG, MD3 et bien d'autres, inclut une interface graphique native OpenGL personnalisable. ( Src ) ( Doc ) BSD-2
GLAD Une bibliothèque personnalisable et légère pour charger les fonctions OpenGL
GLEW Un chargeur de fonctions OpenGL ( Src ) EXTGL/BSD/MIT make, vcpkg
GLFW Un gestionnaire de fenêtres OpenGL ( Src ) ( Doc ) zlib/libpng cmake, vcpkg
GLM L'Open GL M athematics (GLM) est une bibliothèque mathématique C++ pour les logiciels graphiques basée sur la spécification GLSL . The Happy Bunny /
MIT
header-only; cmake, vcpkg
Godot Un moteur de jeu multiplateforme complet 2D et 3D en C++17 avec un éditeur GUI écrit sur lui-même et un langage de script inspiré de Python. MIT scons
hlsl++ Une bibliothèque mathématique C++ pour le rendu utilisant la syntaxe HLSL. Prend en charge SSE et NEON MIT header-only
Horde3D Un petit moteur de rendu 3D open-source. Il est développé dans le but de créer un moteur graphique offrant les effets visuels époustouflants attendus dans les jeux de nouvelle génération, tout en étant léger et aussi épuré que possible. EPL
Irrlicht Le moteur Irrlicht est un moteur 3D temps réel open-source écrit en C++. Il est multiplateforme, utilisant D3D, OpenGL et ses propres moteurs de rendu logiciel. zlib/libpng make, vcpkg
klein Une bibliothèque C++11/14/17 optimisée SSE pour l'algèbre géométrique projective destinée aux graphismes et à l'animation MIT cmake, vcpkg
Magnum Un middleware graphique C++11/C++14 léger et modulaire pour les jeux et la visualisation de données ( Src ) Personnalisée cmake
O3DE Le O pen-source 3D E ngine (anciennement Amazon's Lumberyard) est un moteur 3D multi-plateforme C++ pour créer des jeux AAA, des mondes 3D de qualité cinéma et des simulations haute fidélité. Inclut la simulation physique, le moteur de script, la mise en réseau et plus . ( Doc ) Apache 2.0 cmake
Ogre3D OGRE est un moteur de rendu graphique orienté objet - une bibliothèque de visualisation polyvalente, adaptée à la visualisation scientifique, aux jeux, à la simulation, à la réalité virtuelle et à d'autres projets graphiques. Il est multiplateforme et très robuste, avec une bonne documentation. MIT cmake, vcpkg
Open CASCADE SDK pour applications 3D CAD/CAM/CAE ( Src ) LGPL-2.1 cmake
OpenGL Langage 3D, graphismes et SDK pour développer des applications 3D. Khronos (MIT)
OpenSceneGraph OpenSceneGraph est une boîte à outils graphique 3D open-source haute performance, utilisée par les développeurs d'applications dans des domaines tels que la simulation visuelle, les jeux, la réalité virtuelle, la visualisation scientifique et la modélisation. ( Src ) ( Doc ) Personnalisée,
GNU LGPL
cmake, vcpkg
Visionaray Une bibliothèque de templates C++ pour le lancer de rayons. MIT cmake
VTK Visualization Toolkit (VTK) est un logiciel open-source pour manipuler et afficher des données scientifiques. Il est livré avec des outils de pointe pour le rendu 3D, une suite de widgets pour l'interaction 3D, et des capacités étendues de traçage 2D. BSD-3 cmake, vcpkg
Vulkan Une API bas niveau qui supprime de nombreuses abstractions présentes dans les API graphiques de la génération précédente. C'est excellent pour offrir des performances maximales, mais a pour effet secondaire d'exposer plus de complexité au développeur. Heureusement, plusieurs excellents tutoriels existent pour aider à franchir cet obstacle et devenir productif rapidement. Khronos (MIT) make, vcpkg

Images

Bibliothèque Description Licence Configuration
Adobe/boost GIL Une bibliothèque générique de haut niveau, axée sur les algorithmes qui opèrent sur des images 2D. Options d'E/S très limitées. BSL-1.0
agge Anti-Grain Evolution. Un moteur graphique 2D pour la vitesse et la qualité en C++ MIT cmake
FreeImage Un projet de bibliothèque open-source pour les développeurs souhaitant prendre en charge les formats d'image graphique populaires comme PNG, BMP, JPEG, TIFF et autres GPLv2, GPLv3, FIPL
FreeImageRe Un fork de la bibliothèque open-source FreeImage v3.18 pour supporter les mises à jour des codecs d'image et ajuster pour une utilisation confortable. Tous les formats et plugins originaux sont maintenus. GPLv2, GPLv3, FIPL cmake
GraphicsMagick Lecture, écriture et manipulation d'images dans plus de 88 formats majeurs. Forké d'ImageMagick en 2002 Copyright Mercurial
SAIL Lecture et écriture d'images statiques, animées, multi-pages avec leurs métadonnées et profils ICC. Capacités de conversion. Cible la simplicité et la vitesse. MIT cmake
stb Un ensemble de bibliothèques orientées développement de jeux en C/C++ comprenant chargeur/écriveur/redimensionneur d'images, rastériseur de texte de police, conteneurs type-safe, décodeur ogg vorbis, compresseur DXT en temps réel, générateur de bruit de Perlin, lexer pour DSLs personnels, sprintf rapide, et plus. MIT, Personnalisée header-only
ThorVG Thor Vector Graphics est une bibliothèque portable légère utilisée pour dessiner des scènes et animations vectorielles incluant SVG et Lottie. Elle peut être librement utilisée sur diverses plateformes logicielles et applications pour visualiser des contenus graphiques. ( Source ) MIT conan, meson, msys2, vcpkg

Formats
Bibliothèque Description Licence Configuration
djvulibre
imagemagick
Kaitai Struct C++ runtime
libraw
openexr
poppler
qimageblitz
SVG++

Tracé
Bibliothèque Description Licence Configuration
Matplot++ Une bibliothèque graphique C++ basée sur gnuplot pour la visualisation de données. Matplot++ peut tirer parti des bibliothèques suivantes : OpenCV, OpenGL, LAPACK, BLAS, FFTW, JPEG, TIFF, ZLIB, PNG, GLAD, GLFW3. ( Doc ) MIT cmake
plotutils Le paquet GNU plotutils contient libplot , une bibliothèque C/C++ pour exporter des graphiques vectoriels 2D dans de nombreux formats de fichiers, vectoriels et bitmap. libplot peut animer des graphiques vectoriels 2D et utilise une API de type Postscript pour l'exportation de fichiers et les animations graphiques. GPL
sciplot Une bibliothèque moderne de tracés scientifiques en C++ utilisant gnuplot , avec export vers PDF, SVG, PNG, EPS, etc. MIT header-only; cmake, vcpkg

Traitement d'Image

Bibliothèque Description Licence Configuration
dlib
Halide Un DSL intégré en C++ pour le traitement haute performance d'images et de tenseurs. MIT cmake, vcpkg
ITK - Insight Toolkit ITK est une bibliothèque open-source multiplateforme fournissant aux développeurs une suite complète d'outils logiciels pour l'analyse d'images. Développée selon des méthodologies de programmation extrême, ITK s'appuie sur une architecture éprouvée et spatialement orientée pour le traitement, la segmentation et l'enregistrement d'images scientifiques en deux, trois dimensions ou plus. Apache 2.0 cmake
opencv
OTB

Internationalisation

Bibliothèque Description Licence Configuration
gettext Bibliothèque d'internationalisation GNU. GPL make
ICU I nternational C omponents for U nicode est un ensemble mature et largement utilisé de bibliothèques C/C++ fournissant la prise en charge d'Unicode et de la mondialisation pour les applications logicielles. ( Src ) icu4c/LICENSE make
spirit-po Une petite bibliothèque qui analyse les fichiers po et fournit une interface similaire à GNU libintl. Basée sur boost::spirit. BSL-1.0 header-only
uni-algo Implémentation d'algorithmes Unicode pour C/C++ MIT/Unlicense cmake, conan, vcpkg

Journalisation

Bibliothèque Description Licence Configuration
Backward Impression de traces de pile élégantes de style Python avec couleurs et extraits de code source, particulièrement lors des plantages. MIT header-only; cmake, conan
Boost.Log Une bibliothèque de journalisation multiplateforme simple d'utilisation, extensible et performante. BSL-1.0
clutchlog Système de journalisation en en-tête unique ciblant le DÉBOGAGE polyvalent plutôt que le stockage d'événements de service. BSD cmake
cpptrace Bibliothèque de traces de pile simple, portable et autonome pour C++11 et versions ultérieures. Inclut des traces de pile sûres pour les signaux, des traces de pile sur exceptions, des extraits de code source, etc. MIT cmake, conan, vcpkg
glog Bibliothèque de journalisation Google pour C++98 basée sur les flux de style C++ Licence bazel, cmake, vcpkg
libassert Bibliothèque d'assertions complète pour C++ fournissant des diagnostics de haute qualité pour les échecs d'assertion. MIT cmake, conan, vcpkg
Log4cplus API de journalisation multiplateforme C++17 (modélisée d'après l'API Java log4j) offrant un contrôle thread-safe, flexible et arbitrairement granulaire sur la gestion et la configuration des journaux. BSD (deux clauses) ou Apache 2.0 Autotools, cmake, Visual Studio
Log4cpp Une bibliothèque de classes C++ pour une journalisation flexible vers des fichiers, syslog, IDSA et autres destinations. LGPL
log4cxx Apache log4cxx est un framework de journalisation pour C++ calqué sur Apache log4j. ( Src ) Apache cmake
lwlog Une bibliothèque de journalisation C++17 synchrone et asynchrone extrêmement rapide MIT cmake
Pantheios Une bibliothèque API de journalisation diagnostique, offrant une combinaison de sûreté de type, efficacité, généricité et extensibilité style BSD
plog Un journal portable et simple pour C++ en moins de 1000 lignes de code MPL-2.0
Quill Une bibliothèque de journalisation asynchrone à faible latence C++14 multiplateforme MIT cmake
spdlog Une bibliothèque de journalisation C++ super rapide MIT header-only; cmake, conan

Gestion des erreurs

Bibliothèque Description Licence Configuration
Boost.LEAF Une bibliothèque de gestion d'erreurs légère pour C++11 : format single-header, aucune dépendance, pas d'allocations mémoire dynamiques, peut être utilisée avec ou sans gestion d'exceptions, prête pour le multithreading. ( Src ) BSL-1.0 header-only, cmake

Mathématiques

Bibliothèque Description Licence Configuration
alglib ALGLIB est une bibliothèque multiplateforme (Windows/POSIX/Linux) d'analyse numérique et de traitement de données. Les fonctionnalités d'ALGLIB incluent : Analyse de données, Optimisation et solveurs non linéaires, Interpolation, Algèbre linéaire et solveurs linéaires, FFT et bien d'autres. Gratuit (GPL/Personnel/Académique) et Commercial
ArrayFire Une bibliothèque HPC (CPU/GPU/OpenCL/CUDA/GPGPU) multiplateforme (Windows/OSX/Linux) à usage général pour le calcul parallèle. Les domaines d'ArrayFire sont : Algorithmes vectoriels, Traitement d'image, Vision par ordinateur, Traitement du signal, Algèbre linéaire, Statistiques, et plus. ( Src ) Personnalisée
Boost.Math Inclut plusieurs contributions dans le domaine des mathématiques : Utilitaires de nombres à virgule flottante, Constantes mathématiques, Distributions et fonctions statistiques, Statistiques, Fonctionnelles vectorielles - Normes, Fonctions spéciales, Algorithmes de recherche de racines et de minimisation, Polynômes et fonctions rationnelles, Interpolation, Quadrature et différenciation, Filtres, Fonctions de nombres complexes, Quaternions, Octonions, Utilitaires entiers (Plus grand commun diviseur et Plus petit commun multiple), Séries, Rationnels et fractions continues. BSL-1.0
Boost.Random Fournit une variété de générateurs et de distributions pour produire des nombres aléatoires ayant des propriétés utiles, telles que la distribution uniforme. BSL-1.0
Boost.SafeNumerics C++14, Arithmétique entière garantie correcte, un remplacement direct des types entiers intégrés. BSL-1.0 header-only
cpp-measures Une bibliothèque C++11 pour gérer les mesures physiques MPL-2.0 header-only
G+Smo Une bibliothèque multiplateforme pour l'analyse isogéométrique ( Doc ) MPL-2.0 cmake
GNU MP bignum C++ interface Une interface de classe C++ pratique qui offre des fonctions et opérateurs surchargés. Le GMP est une bibliothèque C libre pour l'arithmétique en précision arbitraire, opérant sur des entiers signés, des nombres rationnels et à virgule flottante. GNU LGPL v3 et GNU GPL v2
libmpdec++ Une bibliothèque C multiplateforme (avec wrappers C++) pour l'arithmétique décimale en virgule flottante en précision arbitraire correctement arrondie. BSD-2-Clause make, nmake
NTL Une bibliothèque pour faire de la théorie des nombres. NTL est une bibliothèque C++ portable et haute performance fournissant des structures de données et des algorithmes pour manipuler des entiers signés de longueur arbitraire, et pour les vecteurs, matrices et polynômes sur les entiers et sur les corps finis. LGPLv2.1+
PCGrand PCG est une famille d'algorithmes simples, rapides, efficaces en espace et statistiquement bons pour la génération de nombres aléatoires. Contrairement à de nombreux GNA à usage général, ils sont également difficiles à prédire. Apache
stats++ Logiciel statistique avancé et complet : collecte et prétraitement des données, statistiques, apprentissage automatique et optimisation, avec code source C++ ouvert.
StatsLib Une bibliothèque de modèles de fonctions de distribution statistique. Apache-2.0 header-only

Théorie des automates
Bibliothèque Description Licence Configuration
yasmine Un framework C++11 de machine à états UML ( Doc ) ( Src ) Licence

Bibliothèque de Classes pour les Nombres
Bibliothèque Description Licence Configuration
BigNumber Une classe C++ pour créer et calculer des entiers de longueur arbitraire Apache 2.0 cmake
Boost.Multiprecision La bibliothèque Multiprecision fournit des types entiers, rationnels, à virgule flottante et complexes en C++ qui possèdent une plage et une précision supérieures aux types fondamentaux (intégrés) ordinaires du C++. BSL-1.0
cln CLN est une bibliothèque pour des calculs efficaces avec tous types de nombres en précision arbitraire. GPL
CNL C ompositional N umeric L ibrary - types numériques à précision fixe BSL-1.0 cmake, conan
fpm Une bibliothèque C++11 de m athématiques en p ointe f ixe qui fournit les fonctionnalités à virgule flottante de la bibliothèque standard sur des entiers. Utile si votre plateforme cible ne dispose pas d'unité de calcul en virgule flottante, ou si des calculs déterministes sont requis. MIT header-only; cmake
Universal Numbers Une bibliothèque template C++17/20 fournissant des remplacements plug-in pour les types arithmétiques natifs (entier/décimal/point fixe/virgule flottante/posits/logarithmique/intervalle) MIT cmake, vcpkg, conan

Géométrie algorithmique
Bibliothèque Description Licence Configuration
Boost.Geometry Boost.Geometry (également appelée G eneric G eometry L ibrary, GGL), définit des concepts, des primitives et des algorithmes pour résoudre des problèmes de géométrie. Boost.Geometry contient un noyau agnostique en dimension, agnostique au système de coordonnées et évolutif, basé sur des concepts, des méta-fonctions et du tag dispatching. Les algorithmes pris en charge sont : calcul d'aire, de longueur, de périmètre, de centroïde, d'enveloppe convexe, d'intersection (clipping), de test d'inclusion (point dans polygone), de distance, d'enveloppe (boîte englobante), de simplification, de transformation, et bien plus encore. La bibliothèque prend en charge les nombres arithmétiques de haute précision BSL-1.0
CGAL Bibliothèque d'algorithmes de géométrie computationnelle GPL-3.0 ou commerciale cmake
PCL Bibliothèque de nuages de points
pmp-library Bibliothèque de traitement de maillages polygonaux
Wykobi Bibliothèque de géométrie computationnelle

Théorie des graphes
Bibliothèque Description Licence Configuration
Boost.Graph BSL-1.0
CXXGraph Une bibliothèque C++17 pour la représentation, manipulation, partitionnement et algorithmes de graphes AGPL-3.0 header-only; cmake
GTpo Une bibliothèque de modélisation de graphes orientés en C++14, partie du projet QuickQanava BSD qmake, cmake
LEMON L ibrary for E fficient M odeling and O ptimization in N etworks implémente des structures de données et algorithmes courants axés sur l'optimisation combinatoire, les graphes et réseaux. ( Doc ) License
NGraph Une bibliothèque simple de graphes (réseaux) en C++
OGDF O pen G raph algorithms and D ata structures F ramework - est une bibliothèque C++ pour les algorithmes de graphes, en particulier pour le dessin automatique de graphes. GPL v2 ou v3

Algèbre linéaire
Bibliothèque Description Licence Configuration
Armadillo Une bibliothèque de modèles C++ pour l'algèbre linéaire et le calcul scientifique proposant des wrappers pour OpenBLAS, Intel MKL, LAPACK, ATLAS, ARPACK, SuperLU et FFTW. Utile pour le ML, la reconnaissance de formes, le DSP, la bioinformatique, les statistiques, la finance, etc. Apache 2.0
Blasw Un wrapper C++11 pour BLAS et des parties de LAPACK BSD-3-Clause header-only ; cmake
Blaze
Blitz++ Une bibliothèque de classes modèles C++ fournissant des tableaux et vecteurs denses hautes performances, des générateurs de nombres aléatoires et des petits vecteurs. GPL-3.0, LGPL-3.0, Personnalisée cmake
Boost.uBLAS Une bibliothèque de classes modèles C++ fournissant les fonctionnalités BLAS niveaux 1, 2, 3 pour les matrices denses, compactées et creuses. Utilise des templates d'expressions. BSL-1.0
C++ Matrix Bibliothèque de calcul matriciel haute performance et précise (ex: cas limites) avec opérateurs arithmétiques à templates d'expressions BSD-3-Clause cmake, make
DecompLib Une bibliothèque C++11 pour décomposer un vecteur en un ensemble de vecteurs de base définis positifs pondérés. MIT header-only
Dlib - outils d'algèbre linéaire
Eigen Une bibliothèque de modèles C++ pour l'algèbre linéaire : matrices, vecteurs, solveurs numériques et algorithmes associés. MPL2 cmake, conan
ETL
IT++
Matrix Bibliothèque de calcul scientifique facile à utiliser en/pour C++ disponible pour Linux et Windows. MIT cmake
NumCpp Une bibliothèque de modèles C++ implémentant NumPy de Python MIT header-only ; cmake, vcpkg, conan
PETSc Une suite de structures de données et routines pour la résolution parallèle d'applications scientifiques modélisées par des équations aux dérivées partielles. Prend en charge MPI, et les GPU via CUDA ou OpenCL, ainsi que les hybrides MPI-GPU.
Spectra Sp ectrale E igenvalue C omputation T oolkit as a R edesigned A RPACK est une bibliothèque C++ open-source pour les problèmes de valeurs propres à grande échelle, construite sur la bibliothèque d'algèbre linéaire Eigen (également open-source et header-only). ( Src ) MPL-2.0 header-only ; cmake, vcpkg
Tense Une bibliothèque rapide C++17 de matrices et tenseurs à templates d'expressions BSD-3-Clause header-only ; cmake
xtensor Une bibliothèque C++ destinée à l'analyse numérique avec des expressions de tableaux multidimensionnels. BSD

Apprentissage Automatique
Bibliothèque Description Licence Configuration
Dlib Outils d'apprentissage automatique
FANN Bibliothèque de R éseaux de N eurones A rtificiels R apides
gaenari Arbre de décision incrémental basé sur C++17 Apache-2.0 cmake
liblinear
libtorch Interface C++ pour la bibliothèque Python PyTorch populaire (le backend est écrit en C++) Style BSD cmake
MLPACK Package d'apprentissage automatique
Shogun Boîte à outils d'apprentissage automatique à grande échelle
stats++
tensorflow Framework d'apprentissage automatique open source pour tous ; fournit une API C++ stable et écrit principalement en C++ Apache-2.0 bazel

Calculs Numériques
Bibliothèque Description Licence Configuration
LibBF Une bibliothèque de calcul numérique en précision arbitraire développée par Bellard avec un exemple de programme qui calcule π jusqu'à des milliards de bits MIT

Optimisation
Bibliothèque Description Licence Configuration
ceres-solver Une bibliothèque C++ open source pour modéliser et résoudre des problèmes d'optimisation complexes et de grande taille. C'est une bibliothèque riche en fonctionnalités, mature et performante qui est utilisée en production chez Google depuis 2010. Apache cmake, conan
OptimLib Une bibliothèque C++11 de méthodes d'optimisation numérique pour fonctions non linéaires.

Manipulations d'expressions symboliques
Bibliothèque Description Licence Configuration
CasADi Un framework symbolique pour l'optimisation non linéaire et la différenciation algorithmique. Prend en charge la génération de code C++ pour les expressions symboliques et la connexion dynamique du code généré compilé. LGPLv3.0 cmake
ExprTk La bibliothèque ExprTk est un analyseur et moteur d'évaluation d'expressions mathématiques à l'exécution, simple à utiliser, facile à intégrer et extrêmement efficace. ExprTk prend en charge de nombreuses formes de sémantiques de traitement fonctionnel, logique et vectoriel et est très facilement extensible. MIT header-only
GiNaC Une bibliothèque pour créer des systèmes intégrés qui intègrent des manipulations symboliques avec des domaines plus établis de l'informatique (comme les applications numériques intensives en calcul, les interfaces graphiques, etc.) sous un même toit. GPLv3
mathiu.cpp Un système simple d'algèbre informatique en C++17 Apache-2.0 cmake
SEMT Une différenciation symbolique à la compilation Licence make
SymbolicC++ Un système d'algèbre informatique à usage général GPLv2 autoconf
SymCC Un wrapper de compilateur qui intègre l'exécution symbolique dans le programme pendant la compilation, et une bibliothèque de support d'exécution associée. Essentiellement, le compilateur insère du code qui calcule des expressions symboliques pour chaque valeur dans le programme. Le calcul réel se fait par des appels à la bibliothèque de support à l'exécution. GPLv3 cmake
SymEngine Une bibliothèque autonome et rapide de manipulation symbolique en C++. MIT cmake
ViennaMath Une bibliothèque mathématique symbolique qui permet une instanciation, manipulation et évaluation pratiques d'expressions mathématiques à l'exécution et à la compilation. MIT cmake

Métaprogrammation

Bibliothèque Description Licence Configuration
Boost.CallableTraits Une bibliothèque C++11/17 pour l'inspection et la manipulation à la compilation de tous les types 'callable'. Successeur de Boost.FunctionTypes. BSL-1.0 header-only
Boost.Hana Une nouvelle bibliothèque de métaprogrammation pour les types et les valeurs BSL-1.0
Boost.Metaparse Une bibliothèque d'analyse syntaxique à la compilation, produisant des types, des valeurs et des métafonctions à partir de chaînes de compilation BSL-1.0
Boost.Mp11 Une bibliothèque de métaprogrammation C++11 pour la manipulation à la compilation de structures de données contenant des types. BSL-1.0 header-only
Boost.MPL Une bibliothèque originale de métaprogrammation, ciblant C++03, lente BSL-1.0
Boost.PFR Une bibliothèque C++14 pour la réflexion basique (sans macros) : visite des membres d'un type défini par l'utilisateur par index, flux d'E/S. BSL-1.0 header-only
Boost.Proto Une bibliothèque pour construire des EDSLs basés sur des modèles d'expression BSL-1.0
Brigand Utilise des métafonctions eager, optimisées pour les meilleures performances
CoMeta Une bibliothèque de métaprogrammation C++14 légère header-only
Meta Utilise des métafonctions eager, compromis entre metal et brigand en termes de performances
Metal Utilise des métafonctions eager, 100% compatible SFINAE
refl-cpp Une bibliothèque de réflexion moderne à la compilation pour C++ avec support des surcharges, templates, attributs et proxies
Refureku Une bibliothèque de réflexion à l'exécution et de génération de code C++17 MIT cmake
visit_struct Une bibliothèque de réflexion miniature, fournissant des visiteurs de structure pour C++11/14. Autonome, 200-400 lignes de code selon le décompte.

PDF

Bibliothèque Description Licence Configuration
HARU Une bibliothèque libre, multiplateforme et open-source pour générer des fichiers PDF. ( Doc ) ( Src ) Zlib cmake
JagPDF Une bibliothèque libre et open-source pour générer des PDF ( Doc ) MIT
PoDoFo Une bibliothèque portable C++17 libre pour travailler avec le PDF LGPL-2.0 cmake, conan, vcpkg
PDF-Writer Une bibliothèque C++ haute performance pour créer, modifier et analyser des fichiers PDF Apache-2.0 cmake, conan, vcpkg

Physique et Simulations

Bibliothèque Description Licence Configuration
Bullet Une simulation physique pour les jeux, les effets visuels, la robotique et l'apprentissage par renforcement
HELICS Un framework de co-simulation pour synchroniser le temps et échanger des données entre différents types de simulateurs BSD 3-Clause "New" or "Revised" cmake
ProjectCHRONO Un moteur de simulation multi-physique open-source
ReactPhysics3D Une bibliothèque de moteur physique C++ pour les simulations 3D et les jeux

Robotique

Perception
Bibliothèque Description Licence Configuration
GTSAM Fusion de capteurs, SLAM, SFM, VO, Vision par ordinateur ( Src ) BSD cmake
opencv Vision par ordinateur et perception, Étalonnage, Appariement de caractéristiques ( Src ) ( Doc ) BSD, Apache 2 cmake

Sérialisation

Bibliothèque Description Licence Configuration
Boost.Serialization BSL-1.0
C++ XML objects
cereal Une sérialisation C++11 BSD
cista Une bibliothèque de sérialisation et réflexion C++ simple, haute performance et sans copie. ( Src ) MIT cmake
cppcodec Une bibliothèque C++11 pour encoder/décoder base64, base32 et hex avec une API cohérente et flexible MIT header-only
GPDS Un sérialiseur de données général pour sérialiser des objets vers et depuis XML. Utilise TinyXML en arrière-plan.
gSOAP Une sérialisation XML précise
iguana Un moteur de sérialisation moderne, universel et facile à utiliser développé en C++17, basé sur la réflexion à la compilation. Formats supportés : JSON, XML, personnalisés. Apache-2.0 cmake
jios Sérialisation JSON MIT cmake
protobuf Protocol Buffers (alias protobuf) est le mécanisme neutre en langage, neutre en plateforme et extensible de Google pour sérialiser des données structurées, incluant un compilateur de fichiers .proto. ( Doc ) Personnalisée bazel, cmake
rpnx-serial Une bibliothèque capable de (dé)sérialiser des types comme std::map , std::vector , etc.
Serio Une bibliothèque de sérialisation C++ rapide et légère BSD-3-Clause header-only; cmake
ThorsSerializer Une bibliothèque de sérialisation C++ pour JSON MIT make
yaml-cpp
YAS Y et A ncore S érialisation est une bibliothèque C++11 sans dépendances de bibliothèques tierces. Les archives peuvent être binaires, texte, JSON Boost header-only

Sérialisation binaire
Bibliothèque Description Licence Configuration
binn Une bibliothèque de sérialisation binaire conçue pour être compacte, rapide et facile à utiliser, elle-même une implémentation du format du même nom.
blobify Une bibliothèque C++17 qui déduit la disposition sérialisée uniquement à partir de la définition de la structure. Boost header-only; cmake
bson-cxx Une implémentation C++11 du format BSON . scons
fast_ber Une sérialisation haute performance C++11 utilisant les règles d'encodage BER/DER. La disposition d'encodage est définie par les schémas ASN.1.
UBjsonCpp Une bibliothèque de lecture-écriture UBJson haute performance basée sur C++14

Tri

Bibliothèque Description Licence Configuration
Cpp-sort Une collection de divers algorithmes de tri dans un package simple. MIT
Indiesort Un modèle de fonction qui permet à std::sort (et autres fonctions de tri à accès aléatoire) d'être utilisées avec des conteneurs à accès non-aléatoire. Il améliore également les performances du tri des grands objets dans les conteneurs à accès aléatoire et les tableaux. zlib
Timsort Un modèle de fonction de tri stable qui surpasse les algorithmes basés sur quicksort incluant std::sort , pour des données inversées ou semi-triées. MIT

Système

Bibliothèque Description Licence Configuration
Infoware Une bibliothèque C++ pour récupérer les informations système et matérielles sans passer par la ligne de commande. Creative Commons v1.0 cmake

Terminal

Bibliothèque Description Licence Configuration
cli Une bibliothèque multiplateforme pour les interfaces de ligne de commande interactives en C++ moderne. BSL-1.0 header-only; cmake, make, nmake, vcpkg
cwidget Une bibliothèque d'interface terminal de haut niveau pour C++, inspirée de GTK+ et Qt, mais utilisant curses comme couche d'affichage GPL v2.0 make
replxx Un remplacement pour readline et libedit qui prend en charge UTF-8, la coloration syntaxique et les suggestions.

Test

Bibliothèque Description Licence Configuration
bandit Tests unitaires conviviaux pour C++11. ( Src ) MIT cmake
Boost.Test Bibliothèque de tests unitaires pour C++03/11/14/17, disponible sur une large gamme de plates-formes et compilateurs. ( Src ) BSL-1.0 cmake, b2
Catch2 Framework de tests moderne et natif en C++ pour les tests unitaires, TDD et BDD - utilisant C++14, C++17 et versions ultérieures Boost cmake
cppunit Un portage C++ du célèbre framework JUnit pour les tests unitaires LGPL-2.1 make
CUTE C ++ U nit T esting E asier (aucune dépendance à l'initialisation statique pour l'enregistrement), intégré dans Cevelop pour TDD MIT header-only
doctest Le framework de tests C++ mono-en-tête le plus léger et riche en fonctionnalités pour les tests unitaires et TDD MIT header-only; cmake
ELFspy Tests en isolation avec fakes et spies - Linux uniquement GPL-2.0 make
faker-cxx Une bibliothèque Faker moderne C++20 pour générer des données de test. MIT cmake
Google Test Framework de tests et de simulation de Google. ( Src ) BSD 3-Clause "New" or "Revised" bazel, cmake
lest Un framework minimaliste natif C++11 pour les tests unitaires, TDD et BDD (inclut une variante C++98). Boost header-only; cmake
liblittletest Un framework de tests portable LGPL-2.1 header-only
snitch Un framework de tests C++20 léger. Boost cmake
tunit Une bibliothèque de tests unitaires moderne C++17 sur Windows, macOS, Linux, iOS et Android. Site officiel MIT cmake

Texte

Codage
Bibliothèque Description Licence Configuration
strsuite Une bibliothèque C++20 pour gérer les chaînes avec différents encodages LGPL3.0 cmake
uchardet Devine l'encodage d'une chaîne, fondamentalement identique à la fonction uchardet en Python. MOZILLA PUBLIC LICENSE v1.1 cmake
win-iconv Une bibliothèque de conversion d'encodage de jeux de caractères pour Linux et Mac. L'implémentation Windows de iconv est basée sur l'API de conversion de jeux de caractères Win32. domaine public cmake

Diff/Patch
Bibliothèque Description Licence Configuration
diff_match_patch Créer et appliquer des correctifs pour les chaînes (requiert Qt) Apache 2.0 qmake

Format
Bibliothèque Description Licence Configuration
coformat Une bibliothèque C++ complémentaire pour std::format permettant la coloration et le style du texte. domaine public header-only
fmt Une bibliothèque de formatage open-source fournissant une alternative rapide et sûre aux stdio C et aux iostream C++. Prototype pour la famille std::format C++20. Licence cmake, conan

Analyser
Bibliothèque Description Licence Configuration
BNFlite Une bibliothèque d'analyse grammaticale légère MIT header-only
Boost.Spirit Un ensemble de bibliothèques C++17 pour l'analyse syntaxique et la génération de sortie implémentées comme D omain S pecific E mbedded L anguages (DSEL) utilisant les Expression templates et la Template Meta-Programming. Les bibliothèques Spirit permettent d'écrire une grammaire cible exclusivement en C++. ( Src ) ( Doc ) BSL-1.0 cmake
CTRE Expressions régulières rapides à C ompile- T ime avec prise en charge de la correspondance/recherche/capture pendant le temps de compilation ou l'exécution. Apache-2.0 header-only, cmake, vcpkg
lexy Une bibliothèque de combinateurs d'analyse syntaxique C++17 qui vous permet d'écrire un analyseur en le spécifiant dans un DSL C++ pratique avec toute la flexibilité et le contrôle d'un analyseur écrit à la main. Prend en charge UTF-8/16/32. ( Doc ) BSL-1.0 cmake
PEGTL P arsing E xpression G rammar T emplate L ibrary est une bibliothèque de combinateurs d'analyse syntaxique C++17 header-only sans dépendance pour créer des analyseurs selon une Parsing Expression Grammar (PEG). Boost header-only

Recherche
Bibliothèque Description Licence Configuration
clucene CLucene est un moteur/API d'indexation et de recherche multiplateforme, complet et open-source. ( Src ) ( Doc ) LGPL v2.1 cmake
Step20 Algorithme en ligne d'Ukkonen pour construire Suffix tree , algorithme de Manber pour construire Suffix array . MIT header-only
xapian Un moteur de recherche open-source avec des fonctionnalités d'indexation ( Src ) ( Doc ) GPL v2+ make

Moteur de Template
Bibliothèque Description Licence Configuration
inja Un moteur de templates pour C++17. MIT header-only; cmake, conan, vcpkg, etc.
Jinja2C++ Une implémentation C++14/17 des templates Jinja2 MPL-2.0 cmake, conan

Contrôle de Version

Bibliothèque Description Licence Configuration
coo-semver Une bibliothèque C++ pour les opérations sur les numéros de version sémantique.
LibGit2 Une bibliothèque centrale du système de contrôle de version Git.

Vidéo

Bibliothèque Description Licence Configuration
crystalhd
gstreamermm
libmatroska
libVLC
mjpegtools
OpenH264 Une bibliothèque open source multiplateforme et multi-architecture qui prend en charge l'encodage et le décodage H.264 ( Src ) BSD-2 Clause meson

Web

Bibliothèque Description Licence Configuration
Chromium Embedded
cpp-jwt
Drogon Un framework d'application web HTTP basé sur C++14/17 fonctionnant sur Linux/macOS/Unix/Windows.
ffead-cpp Un f ramework f our E nterprise A pplication D evelopment en C ++, conforme HTTP1/HTTP2/HTTP3, prend en charge plusieurs backends de serveur Apache 2.0 cmake
libhttpserver Une bibliothèque C++ pour construire des serveurs web RESTful hautes performances. Construite sur libmicrohttpd pour fournir une API simple permettant aux développeurs de créer des services HTTP en C++. LGPL-v2.1 autotools
libkcddb
liblastfm
libmusicbrainz5
libnavajo
Molybden Un SDK pour construire des applications de bureau C++ multiplateformes avec une interface graphique HTML/CSS/JS. ( Doc ) ( Src ) Licence npm
oatpp Un framework web puissant, portable, léger et sans dépendances pour l'IoT et les services web hautes performances.
QtWebApp Serveur HTTP(s) en C++ inspiré par les Java Servlets
Tufão Un framework web asynchrone pour C++11 construit sur Qt ( Doc ) LGPL-2.1, GPL-2.0 cmake
uri-template Expansion de modèles URI et correspondance inverse pour C++ Apache 2.0 cmake
userver Le Framework Asynchrone C++ Apache 2.0 cmake
Wt Widgets et blocs de construction pour applications web, sécurité intégrée, rendu PDF, peinture 2D et 3D, ORM, création de graphiques, frameworks d'authentification. ( Doc ) ( Src ) GNU GPL ou Commercial

Voir aussi

Documentation C pour Bibliothèques non-ANSI/ISO

Liens externes

1. Liste des frameworks de tests unitaires C++ — sur Wikipédia
2. Liste organisée de bibliothèques C++ header-only (awesome) — sur GitHub
3. Liste organisée de bibliothèques C++ et C (awesome) — sur GitHub
4. Bibliothèques Boost C++ — sur Boost.org
5. Vaste liste de jeux et frameworks open-source C++ — sur GitHub.io