Le dernier résumé en 2021 recommande les frameworks et bibliothèques open source c/c++. Mis à jour en permanence.
cadre
Bibliothèque standard Apache C++ : est une collection d'algorithmes, de conteneurs, d'itérateurs et d'autres composants de base
ASL : Adobe Source Code Library fournit une bibliothèque de codes sources C++ portable et évaluée par des pairs.
Boost : une vaste collection de bibliothèques C++ à usage général.
BDE : Environnement de développement de Bloomberg Information Labs.
Cinder : une communauté de développement open source qui fournit un codage créatif de qualité professionnelle.
Bxxomfort : une bibliothèque légère, uniquement en en-tête, qui porte certaines des nouvelles fonctionnalités de C++11 vers C++03.
Dlib : une bibliothèque C++ multiplateforme universelle conçue à l'aide de la programmation contractuelle et de la technologie C++ moderne.
EASTL : partie publique EA-STL
ffead-cpp : cadre de développement d'applications d'entreprise
Folly : Une bibliothèque C++ open source développée et utilisée par Facebook.
JUCE : une bibliothèque C++ complète pour développer des logiciels multiplateformes
libphenom : un framework d'événements pour créer des systèmes hautes performances et hautement évolutifs.
LibSourcey : E/S événementielles C++ 11 pour le streaming vidéo en temps réel et les applications réseau hautes performances
LibU : une bibliothèque d'outils multiplateforme écrite en langage C
Loki : la conception d'une bibliothèque C++, y compris la mise en œuvre de modèles de conception et d'idiomes communs.
MiLi : une petite bibliothèque C++ uniquement en-tête
openFrameworks : développer une boîte à outils C++ pour le codage créatif.
Qt : cadre d'application et d'interface utilisateur multiplateforme
Raison : Un framework multiplateforme qui permet aux développeurs d'utiliser plus facilement Java, .Net et Python, tout en répondant également à leurs besoins en termes de performances et d'avantages du C++.
ROOT : Un ensemble de frameworks orientés objet avec toutes les fonctionnalités nécessaires pour traiter et analyser de grandes quantités de données de manière très efficace, utilisé par le CERN.
STLport : est une version représentative de STL
STXXL : bibliothèque de modèles standard pour des ensembles de données volumineux supplémentaires.
Ultimate++ : cadre de développement rapide d'applications multiplateformes C++
Bibliothèque de modèles Windows : bibliothèque C++ pour développer des applications Windows et des composants d'interface utilisateur
Yomm11 : ouvrez plusieurs méthodes pour C++11.
Boucle d'événements asynchrone
Boost.Asio : bibliothèque C++ multiplateforme pour la programmation réseau et d'E/S de bas niveau.
libev : boucle temporelle complète et hautes performances, légèrement calquée sur libevent, mais n'a plus les mêmes limitations que libevent, et certains de ses bugs ont été corrigés.
libevent : bibliothèque de notifications d'événements
libuv : E/S asynchrones multiplateformes.
libco : coroutine, la bibliothèque IO sous-jacente de WeChat qui prend en charge 800 millions d'utilisateurs en ligne en même temps. Puissant
ntyco : Une version pure C du framework coroutine, le code est court et concis, adapté aux projets embarqués.
libgo : framework de concurrence de style Golang, bibliothèque de coroutines d'implémentation C++11
bibliothèque réseau
ACE : boîte à outils de mise en réseau orientée objet C++
Casablanca : SDK REST C++
cpp-netlib : une collection de bibliothèques open source pour la programmation réseau avancée
Dyad.c : mise en réseau asynchrone en C
libCurl : bibliothèque de transfert de fichiers multiprotocole
Mongoose : serveur Web très léger
Muduo : bibliothèque réseau C++ non bloquante pour serveurs multithread Linux
net_skeleton : bibliothèque client/serveur TCP pour C/C++
WAFer : plate-forme logicielle ultra-légère basée sur C pour des applications Web et côté serveur évolutives. Pour les programmeurs C, pensez à node.js
Onion : bibliothèque de serveur HTTP en langage C, conçue pour être légère et facile à utiliser.
POCO : bibliothèque de classes C++ pour la création d'applications réseau et Internet pouvant s'exécuter sur des systèmes de bureau, de serveur, mobiles et embarqués.
RakNet : un moteur réseau C++ multiplateforme et open source pour les développeurs de jeux.
Tufao : un framework Web asynchrone construit en C++ sur Qt.
WebSocket++ : bibliothèque client/serveur websocket basée sur C++/Boost Aiso
ZeroMQ : bibliothèque de communication asynchrone modulaire et à haut débit
Pile de protocole TCP/IP
f-stack : la pile de protocoles open source de Tencent, une pile de protocoles en mode utilisateur hautes performances basée sur DPDK.
NtyTcp : pile de protocoles monothread, basée sur l'implémentation netmap, DPDK et rawSocket.
LWIP : une version simplifiée de l'implémentation de la pile de protocoles TCP/IP pour la plateforme RAM.
mTCP : pile de protocoles TCP/IP dans l'espace utilisateur hautement évolutive pour les systèmes multicœurs.
4.4BSD : * La pile de protocoles nix est dérivée de 4.4BSD.
Cadre d'application WEB
Nginx : Un serveur Web HTTP et proxy inverse hautes performances qui fournit également des services IMAP/POP3/SMTP.
Lighttpd : un logiciel de serveur Web open source sécurisé, rapide, conforme aux normes de l'industrie, hautement adaptable et optimisé pour les environnements à configuration élevée.
Libmicrohttpd : Un simple serveur Web de bibliothèque C sous le logiciel GNU. L'API est simple et rapide.
shttpd : framework de serveur Web basé sur Mongoose.
CivetWeb : fournit un serveur Web intégré C/C++, facile à utiliser et puissant, avec prise en charge facultative de CGI, SSL et Lua.
CppCMS : Framework de développement web gratuit et performant (pas un CMS).
Crow : Un framework micro web C++ (inspiré de Python Flask)
Kore : serveur/framework web ultra-rapide et flexible pour les applications web développées en C.
libOnion : Une bibliothèque légère qui vous aide à créer des serveurs Web à l'aide du langage de programmation C.
QDjango : Un framework web écrit en C++ et basé sur la bibliothèque Qt, essayant d'émuler l'API Django, d'où son nom.
Wt : bibliothèque C++ pour développer des applications web.
Bibliothèque standard, algorithmes et fonctions
Bibliothèque standard C++ : il s'agit d'un ensemble de classes et de fonctions écrites dans le langage principal et qui fait partie de la norme ISO C++ elle-même.
Bibliothèque de modèles standard : Bibliothèque de modèles standard, STL
Bibliothèque C POSIX : spécification de la bibliothèque standard C pour les systèmes POSIX
Comité des normes ISO C++ : Comité des normes C++
bibliothèque audio
FMOD : moteur audio multiplateforme facile à utiliser et outil de création de jeux de contenu audio.
Maximilian : bibliothèque de traitement du signal numérique audio et musical C++
OpenAL : bibliothèque audio open source – API audio multiplateforme
Opus : un codec audio totalement ouvert, libre de droits et très polyvalent
Speex : codec gratuit, obsolète par Opus
Tonic : synthèse audio simple à utiliser et efficace en C++
Vorbis : Ogg Vorbis est un format audio compressé universel entièrement ouvert, non propriétaire et libre de droits.
écologie
lisequence : Une bibliothèque C++ pour représenter et analyser les données de génétique des populations.
SeqAn : se concentre sur les algorithmes et les structures de données pour l'analyse séquentielle des données biologiques.
Vcflib : bibliothèque C++ pour l'analyse et le traitement des fichiers VCF
Wham : appliquez les tests d'association directement aux variantes structurelles génétiques dans les fichiers BAM.
compression
bzip2 : Une compression de données entièrement gratuite, sans brevet et de haute qualité
doboz : bibliothèque de compression pour une décompression rapide
PhysicsFS : Une bibliothèque qui fournit un accès abstrait à diverses archives, principalement utilisée dans les jeux vidéo. La conception a été en partie inspirée du sous-système de fichiers de Quake3.
KArchive : une bibliothèque pour créer, lire, écrire et manipuler des archives de fichiers (telles que zip et tar), qui fournit une compression et une décompression transparentes des données à l'aide du format gzip via une série de sous-classes de QIODevice.
LZ4 : Algorithme de compression très rapide
LZHAM : Base de données de compression sans perte, le taux de compression est proche de LZMA, mais la vitesse de décompression est beaucoup plus rapide.
LZMA : méthode de compression par défaut et courante pour le format 7z.
LZMAT : et sa bibliothèque rapide de compression de données sans perte en temps réel
miniz : un seul fichier source C, bibliothèque de compression/expansion, utilisant l'API compatible zlib, lecture et écriture d'archive ZIP, méthode d'écriture PNG.
Minizip : le dernier correctif de bug de Zlib, prend en charge la répartition du disque PKWARE, le cryptage AES et la mise en mémoire tampon des E/S.
Snappy : compression et décompression rapides
ZLib : bibliothèque de compression de flux de données très compacte
ZZIPlib : fournit un accès en lecture aux archives ZIP.
Concurrence
Boost.Compute : bibliothèque de calcul GPU C++ pour OpenCL
Bolt : une bibliothèque de modèles C++ optimisée pour les GPU
C++React : bibliothèque de programmation réactive pour C++11
Intel TBB : blocs de construction Intel Threading
Libclsph : bibliothèque de simulation de fluides SPH accélérée par GPU basée sur OpenCL
OpenCL : Un standard ouvert pour la programmation parallèle de systèmes hétérogènes
OpenMP : API OpenMP
Thrust : une bibliothèque d'algorithmes parallèles similaire à la bibliothèque de modèles standard C++
HPX : un système d'exécution C++ universel pour les applications parallèles et distribuées de toute taille
VexCL : bibliothèque de modèles d'expressions vectorielles C++ pour OpenCL/CUDA.
cryptographie
Bcrypt : outil de cryptage de fichiers multiplateforme, les fichiers cryptés sont portables sur tous les systèmes d'exploitation et processeurs pris en charge.
BeeCrypt : Une bibliothèque graphique de cryptage rapide avec des fonctions puissantes et une interface pratique.
Botan : bibliothèque de chiffrement C++
Crypto++ : Une bibliothèque C++ gratuite pour les schémas de chiffrement
GnuPG : Une implémentation complète du standard OpenPGP
GnuTLS : bibliothèque de communication sécurisée qui implémente les protocoles SSL, TLS et DTLS
Libgcrypt : bibliothèque graphique de chiffrement basée sur GnuPG.
Libmcrypt : Thread-safe, fournissant une API unifiée.
LibreSSL : protocole SSL/TLS gratuit, un fork d'OpenSSL 2014
LibTomCrypt : Un outil de chiffrement très complet, modulaire et portable
libsodium : bibliothèque de chiffrement basée sur NaCI, avisée et facile à utiliser
Nettle : la bibliothèque de chiffrement sous-jacente
OpenSSL : une bibliothèque de chiffrement open source puissante, commerciale et complète.
Tiny AES128 in C : une petite implémentation portable de l'algorithme de chiffrement AES128ESB implémenté en C
base de données
hiberlite : mappage objet-relationnel C++ pour SQLite3
Hiredis : Une bibliothèque client C très simple pour la base de données Redis
LevelDB : magasin clé-valeur rapide
LMDB : un magasin clé-valeur intégré conforme aux quatre éléments de base d'une base de données
MySQL++ : Un wrapper C++ qui encapsule l'API C de MySql
RocksDB : stockage rapide des valeurs-clés intégrées de Facebook
SQLite : Une base de données relationnelle entièrement intégrée et complète qui ne fait que quelques centaines de Ko et peut être incluse correctement dans votre projet.
Redis : une base de données open source de type journal et de valeurs clés écrite en langage ANSI C, conforme au protocole BSD, prenant en charge le réseau et pouvant être basée sur la mémoire et persistante.
MongoDB : une base de données basée sur le stockage de fichiers distribué
déboguer
Boost.Test : bibliothèque de tests Boost
Catch : un framework natif C++ très élégant qui contient uniquement des fichiers d'en-tête pour les tests unitaires, le développement piloté par les tests et le développement piloté par le comportement.
CppUnit : framework de test C++ porté depuis JUnit
CTest : pilote de test CMake
GoogleTest : cadre de test Google C++
ig-debugheap : tas de débogage multiplateforme pour le suivi des erreurs de mémoire
libtap : écrire des tests en C
MemTrack : pour suivre les allocations de mémoire en C++
MicroProfile : profileur de tentatives de réseau multiplateforme
minUnit : un mini framework de tests unitaires écrit en C, utilisant seulement deux macros
Remotery : un seul analyseur de fichiers C pour les vues Web
UnitTest++ : framework de tests unitaires C++ léger
récipient
C++ B-Tree : une bibliothèque de modèles qui implémente des conteneurs de mémoire de commandes basés sur la structure de données B-tree
Hashmaps : implémentation de l'algorithme de table de hachage à adresse ouverte en C++
moteur de jeu
Cocos2d-x : Un framework multiplateforme pour créer des jeux 2D, des livres interactifs, des présentations et d'autres applications graphiques.
Grit : un projet communautaire visant à créer un moteur de jeu gratuit pour les jeux 3D en monde ouvert.
lrrlicht : un moteur #D temps réel open source hautes performances écrit en langage C++
PolyCode : Un framework open source pour créer des jeux implémentés en C++ (fourni avec Lua).
bibliothèque graphique
bgfx : bibliothèque de rendu multiplateforme
Le Caire : bibliothèque graphique 2D prenant en charge plusieurs périphériques de sortie
Horde3D : Un petit moteur de rendu et d'animation 3D
magnum : moteur graphique C++11 et OpenGL 2D/3D
Ogre 3D : un moteur de rendu 3D flexible, orienté scène, en temps réel, écrit en C++ (pas un moteur de jeu)
OpenSceneGraph : boîte à outils graphiques 3D open source hautes performances
Panda3D : Framework de rendu 3D et de développement de jeux, écrit en Python et C++.
Skia : une bibliothèque graphique 2D complète pour dessiner du texte, des graphiques et des images
urho3d : moteur de rendu et de jeu multiplateforme.
traitement d'images
Boost.GIL : bibliothèque d'images générale
CImg : une petite boîte à outils C++ open source pour le traitement d'images
FreeImage : une bibliothèque open source qui prend en charge les formats d'image courants et d'autres formats requis par les applications multimédias d'aujourd'hui.
GDCM : bibliothèque DICOM de base
ITK : système d'analyse d'images open source multiplateforme
Magick++ : interface C++ pour le programme ImageMagick
OpenCV : bibliothèque de vision par ordinateur open source
tesseract-ocr : moteur OCR
VIGRA : bibliothèque de vision par ordinateur C++ à usage général pour l'analyse d'images
VTK : système logiciel libre et open source pour l'infographie 3D, le traitement et la visualisation d'images.
internationalisation
gettext : GNU gettext
IBM ICU : bibliothèques C, C++ et Java fournissant la prise en charge d'Unicode et de la mondialisation
libiconv : bibliothèque de conversion d'encodage entre différents encodages de caractères
Bibliothèque Json
congelé : générateur d'analyse Jason pour C/C++
Jansson : bibliothèque de langage C pour l'encodage, le décodage et le traitement des données de Jason
jbson : une bibliothèque pour créer et itérer des données BSON et des documents Json en C++14
JeayeSON : Une bibliothèque JSON C++ très robuste qui ne contient que des fichiers d'en-tête
JSON++ : analyseur C++ JSON
json-parser : analyseur JSON écrit en ANSI C portable avec une très faible empreinte mémoire
json11 : Une mini bibliothèque JSON C++11
jute : analyseur C++ JSON très simple
ibjson : bibliothèque d'analyse et d'impression JSON en C, facilement intégrable à n'importe quel modèle
libjson : bibliothèque JSON légère
PicoJSON : analyse et sérialisation JSON en C++, incluant uniquement les fichiers d'en-tête
Qt-Json : une classe simple pour analyser entre les données JSON et les hiérarchies QVariant
QJson : bibliothèque basée sur Qt pour mapper les données JSON aux objets QVariant
RepidJSON : un générateur d'analyse JSON rapide pour C++, comprenant des API de style SAX et DOM
YAJL : bibliothèque d'analyse JSON en streaming rapide en langage C
enregistrer
Boost.Log : conçu pour être très modulaire et extensible
easyloggingpp : bibliothèque de journalisation C++, contenant un seul fichier d'en-tête.
Log4cpp : une série de bibliothèques C++ qui ajoutent de manière flexible des journaux aux fichiers, aux journaux système, à l'IDSA et à d'autres endroits.
templog : Une bibliothèque C++ légère qui peut ajouter une journalisation à vos applications C++
apprentissage automatique, intelligence artificielle
btsk : outil de lancement d'arbre de comportement de jeu
Objets évolutifs : bibliothèque informatique évolutive ANSI C++ basée sur des modèles qui peut vous aider à écrire très rapidement vos propres algorithmes d'optimisation stochastique.
Caffe : un framework de réseau neuronal rapide
CCV : une bibliothèque de vision par ordinateur moderne avec le langage C comme noyau
mlpack : bibliothèque d'apprentissage automatique C++ extensible
OpenCV : bibliothèque de vision par ordinateur open source
Recommandeur : une bibliothèque de langage C pour les recommandations/suggestions de produits utilisant le filtrage collaboratif.
SHOGUN : outil d'apprentissage automatique Shogun
sofia-ml : une suite d'algorithmes incrémentaux rapides pour l'apprentissage automatique
bibliothèque mathématique
Armadillo : une bibliothèque d'algèbre linéaire C++ de haute qualité qui offre un bon équilibre entre vitesse et facilité d'utilisation. La syntaxe est très similaire à MatlAB
blaze : bibliothèque mathématique C++ hautes performances pour les algorithmes denses et clairsemés.
ceres-solver : une bibliothèque C++ de Google pour modéliser et résoudre de grands problèmes complexes de moindres carrés non linéaires.
CGal : une collection d'algorithmes d'ensemble efficaces et fiables
CML : bibliothèque mathématique C++ gratuite pour les jeux et les graphiques
Eigen : une bibliothèque d'en-têtes de modèles C++ de haut niveau couvrant l'algèbre linéaire, les matrices, les opérations vectorielles, la résolution numérique et d'autres algorithmes associés.
GMTL : Mathematical Graphics Template Library est un ensemble d'outils permettant d'implémenter de manière approfondie des graphiques de base.
GMP : bibliothèque C/C++ pour les calculs de haute précision, gérant les entiers signés, les nombres rationnels et les nombres à virgule flottante.
bibliothèque multimédia
GStreamer : une bibliothèque pour créer des graphiques de composants de traitement multimédia
LIVE555 Streaming Media : Bibliothèque de streaming multimédia utilisant des protocoles standards ouverts (RTP/RTCP, RTSP, SIP)
libVLC : cadre multimédia libVLC (SDK VLC)
QtAV : Un framework de lecture multimédia basé sur Qt et FFmpeg qui peut vous aider à écrire facilement un lecteur
SDL : contrôle direct simple de la couche média
SFML : bibliothèque multimédia simple et rapide
physique
Box2D : moteur physique de jeu 2D.
Bullet : moteur physique de jeu 3D.
Chipmunk : bibliothèque physique de jeux 2D rapide et légère
LiquidFun : moteur physique de jeu 2D
ODE : Open Dynamics Engine - une bibliothèque open source hautes performances pour simuler la dynamique des corps rigides.
ofxBox2D : wrapper de framework open source Box2D.
Simbody : une bibliothèque de dynamique/physique multicorps C++ hautes performances pour simuler la biomécanique articulaire et les systèmes mécaniques tels que les véhicules, les robots et les squelettes humains.
Robotique
MOOS-Ivp : Un ensemble de modules C++ open source qui assurent l'autonomie des plateformes robotiques, notamment des véhicules marins autonomes.
MRPT : boîte à outils de programmation de robots mobiles
PCL : Point Cloud Library est un projet ouvert indépendant à grande échelle pour le traitement d'images 2D/3D et de nuages de points.
Bibliothèque robotique : une bibliothèque C++ autonome comprenant la dynamique, la planification et le contrôle des mouvements des robots.
RobWork : Une collection de bibliothèques C++ pour la simulation et le contrôle de systèmes robotiques.
ROS : Robot Operating System qui fournit des bibliothèques et des outils pour aider les développeurs de logiciels à créer des applications robotiques.
calcul scientifique
FFTW : bibliothèque en langage C permettant de calculer la DFT en une ou plusieurs dimensions.
GSL : Bibliothèque scientifique GNU.
scénario
ChaiScript : un langage de script intégré facile à utiliser pour C++.
Lua : un moteur de script petit et rapide pour les fichiers de configuration et les scripts d'application de base.
luacxx : API C++11 pour créer des liaisons Lua
SWIG : Un générateur de wrapper/interface qui permet à votre code C++ d'être lié à JavaScript, Perl, PHP, Python, Tcl et Ruby
V7 : Moteur JavaScript embarqué.
V8 : le moteur JavaScript rapide de Google qui peut être intégré à n'importe quelle application C++.
sérialisation
Cap'n Proto : Format d'échange de données rapide et système RPC.
céréales : bibliothèque de sérialisation C++11
FlatBuffers : bibliothèque de sérialisation économe en mémoire
MessagePack : bibliothèque de sérialisation binaire efficace pour C/C++, telle que JSON
ProtoBuf : Protocol buffer, le format d'échange de données de Google.
ProtoBuf-c : implémentation du tampon de protocole en langage C
SimpleBinaryEncoding : Encodage et décodage des informations applicatives au format binaire pour les applications à faible latence.
Thrift : IPC/RPC multilingue efficace, utilisé en C++, Java, Python, PHP, C# et de nombreux autres langages, développé à l'origine par Facebook.
Vidéothèque
libvpx : SDK d'encodage et de décodage VP8/VP9
FFMpeg : Une solution complète et multiplateforme pour l'enregistrement, la conversion de flux vidéo et audio.
libde265 : implémentation ouverte du codec vidéo h.265.
OpenH264 : codec H.364 open source.
Theora : Format de compression vidéo gratuit et open source.
bibliothèque XML
Expat : bibliothèque d'analyse XML écrite en langage C
LibXml2 : analyseur XML C et boîte à outils pour Gnome
LibXml++ : analyseur XML pour C++
PugiXML : un analyseur XML léger, simple et rapide pour C++ qui prend en charge XPath.
RapidXML : tente de créer l'analyseur XML le plus rapide tout en conservant la facilité d'utilisation, la portabilité et une compatibilité raisonnable avec le W3C.
TinyXML : Un analyseur XML C++ simple et petit qui peut être facilement intégré à d'autres projets.
TinyXML2 : Un analyseur CML C++ simple et rapide qui peut être facilement intégré à d'autres projets.
TinyXML++ : une toute nouvelle interface pour TinyXML qui tire parti de nombreux avantages du C++, des modèles, des exceptions et d'une meilleure gestion des exceptions.
Xerces-C++ : analyseur de validation XML écrit dans un sous-ensemble de C++ portable.
Travail sans col
Fournies en temps réel, des informations sur le recrutement d'emplois pour c/c++ et golang à Pékin, Shanghai, Guangzhou, Shenzhen, Hangzhou, Nanjing, Hefei, Wuhan, Changsha, Chongqing, Chengdu, Xi'an et Xiamen sont publiées chaque semaine. Y compris le recrutement scolaire, le recrutement social, les stages, les entretiens, les stéréotypes et les curriculum vitae