Collection de ressources C ++ Version chinoise
Awesome-CPP est une liste des ressources C ++ initiées et maintenues fffaraz , y compris: Bibliothèque standard, cadre d'application Web, intelligence artificielle, base de données, traitement d'image, apprentissage automatique, journalisation, analyse de code, etc.
La version chinoise est maintenue et mise 4400 Star jour par开源前哨et l'équipe de compte officiel de WeChat CPP开发者.
Participants à ce projet
RETENU:开源前哨et CPP开发者WeChat Public Account Team. "Open Source Outpost" partagera régulièrement les projets open source les plus récents, intéressants et populaires dans la colonne Zhihu, chaque projet a des introductions et des exemples détaillés. Portail: https://www.zhihu.com/column/c_1317124962785062912
Contributeurs: Cccookieee, Jingerjoe, Yunzhongyou, Bingbin, Juliesand, Zzmarquis, Yan Minhui, Tangyouhua, Shenmian
Remarque: la liste n'est pas classée et sera mise à jour de temps à autre
Table des matières
- Bibliothèque standard
- cadre
- IA
- Boucle d'événement asynchrone
- Audio
- Écologie
- compression
- Concurrence
- récipient
- Cryptographie
- base de données
- déboguer
- Moteur de jeu
- Interface utilisateur graphique
- Graphique
- Traitement d'image
- Internationalisation
- Json
- enregistrer
- Apprentissage automatique
- mathématiques
- multimédia
- réseau
- physique
- Robotique
- Informatique scientifique
- scénario
- Sérialisation
- vidéo
- Machine virtuelle
- Cadre d'application Web
- Xml
- Multiples mixtes
- logiciel
- Compilateur
- Compilateur en ligne
- débogueur
- Environnement de développement intégré
- Construisez le système
- Analyse du code statique
Bibliothèque standard
La bibliothèque standard C ++ comprend des conteneurs STL, des algorithmes et des fonctions.
- C ++ Standard Library: est une collection d'une série de classes et de fonctions, écrite dans une langue centrale, et fait également partie des propres normes de C ++ ISO.
- Bibliothèque de modèles standard: bibliothèque de modèles standard.
- C Library C POSIX: la spécification de la bibliothèque standard C pour le système POSIX.
- Comité des normes ISO C ++: comité des normes C ++.
- La bibliothèque GNU C: Le but de ce manuel est de vous montrer comment utiliser la bibliothèque GNU C.
cadre
C ++ Cadre général et bibliothèque
- ABSEIL-CPP: ABSEIL C ++ Bibliothèque générale.
- Bibliothèque standard Apache C ++: est une collection d'algorithmes, de conteneurs, d'itérateurs et d'autres composants de base.
- APR: Bibliothèque d'exécution portable Apache. Une autre bibliothèque multiplateforme.
- ASL: La bibliothèque de code source Adobe fournit une revue par les pairs et une bibliothèque de code source C ++ portable.
- Boost: une collection d'un grand nombre de bibliothèques C ++ à usage général.
- BDE: De l'environnement de développement de Bloomberg Information Lab.
- Cinder: fournit une communauté de développement open source avec un codage créatif de qualité professionnelle.
- CO - C ++ Bibliothèque de base, y compris la bibliothèque Coroutine de style GO, la bibliothèque de journaux, la bibliothèque JSON, le framework RPC et d'autres composants de base.
- CXXOMFORT: une bibliothèque légère qui ne contient que des fichiers d'en-tête, porte quelques nouvelles fonctionnalités de C ++ 11 à C ++ 03.
- DLIB: Une bibliothèque C ++ multiplateforme universelle conçue à l'aide de programmation contractuelle et de technologie C ++ moderne.
- Eastl: EA-STL PUBLIC PUBLIC.
- ETL: bibliothèque de modèles embarqués.
- FFEAD-CPP: Framework de développement d'applications d'entreprise.
- Folie: une bibliothèque C ++ open source développée et utilisée par Facebook.
- FunctionalPlus: bibliothèque de programmation fonctionnelle C ++, rédaction du code C ++ concis et facile à lire.
- GLIB: GLIB fournit des blocs de code de base pour les bibliothèques et les applications écrites en C.
- Juce: une bibliothèque de classe C ++ tout compris pour développer un logiciel multiplateforme.
- Framework KIGS: C ++ gratuit et open source modulaire, multifonctionnel, Cramework RAD multiplateforme.
- LibpHhenom: un cadre d'événements pour construire des systèmes hautes performances et hautement évolutifs.
- Libsourcey: C ++ 11 a été amené IO pour le streaming vidéo en temps réel et les applications réseau haute performance.
- Libu: une bibliothèque d'outils multiplateformes écrite en langue C.
- Loki: la conception de la bibliothèque C ++, y compris la mise en œuvre de modèles de conception et d'idiomes communs.
- Mili: une petite bibliothèque C ++ ne contenant que des fichiers d'en-tête.
- OpenFrameworks: développez des boîtes à outils C ++ pour le codage créatif.
- QT: Framework d'application et d'interface utilisateur multiplateforme.
- Raison: un cadre multiplateforme qui permet aux développeurs d'utiliser plus facilement Java, .NET et Python, tout en répondant également à leurs besoins pour les performances et les avantages C ++.
- Racine: une série de cadres orientés objet avec toutes les fonctions qui peuvent traiter et analyser de grandes quantités de données très efficacement, et sont utilisées par les institutions européennes de recherche sur l'énergie atomique.
- Stlport: est une version représentative de STL.
- STXXL: une bibliothèque de modèles standard pour des ensembles de données supplémentaires supplémentaires.
- TBOX: bibliothèque C multi-plate-forme similaire à GLIB.
- Ultimate ++: C ++ Cadre de développement d'application rapide de la plateforme multiplateforme.
- USTL: petite bibliothèque STL.
- Bibliothèque de modèles Windows: une bibliothèque C ++ pour développer des applications Windows et des composants d'interface utilisateur.
- YOM2: Fast, orthogonal, ouvert multi-méthodes, remplaçant YOM11.
IA
- Annetgpgpu: Bibliothèque de réseaux neuronaux artificiels basés sur GPU (CUDA).
- BTSK: outil de lanceur d'arborescence de comportement de jeu.
- Évolution des objets: une bibliothèque de calcul d'évolution ANSI C ++ basée sur un modèle peut vous aider à écrire votre propre algorithme d'optimisation aléatoire très rapidement.
- FRUGALY-SEEP: bibliothèque C ++ à l'aide du modèle Keras, uniquement des fichiers d'en-tête.
- Genann: Simple Neural Network C Library.
- MXNET: Apprentissage en profondeur léger, portable et flexible / mobile avec planificateur de gestion de flux de données dynamique, conscient de mutation. Convient pour Python, R, Julia, Scala, Go, JavaScript et plus encore.
- Pytorch: une bibliothèque Python avec une puissante accélération du CPU, y compris les tenseurs et les réseaux de neurones dynamiques.
- RECAST / DETOUR: (3D) Générateur de grille de navigation et recherche de chemin, principalement utilisé dans les jeux.
- TensorFlow: une bibliothèque de logiciels open source qui utilise des graphiques de flux de données pour les calculs numériques.
- CNTK: Microsoft Cognitive Toolkit (CNTK), une bibliothèque open source d'outils d'apprentissage en profondeur.
- Tiny-DNN: Framework Deep Learning sans dépendance dans C ++ 11, avec seulement des fichiers d'en-tête.
- VELES: Une plate-forme distribuée pour le développement rapide des applications d'apprentissage en profondeur.
- Kaldi: boîte à outils de reconnaissance vocale.
Boucle d'événement asynchrone
- ASIO: une bibliothèque C ++ multiplateforme pour la mise en réseau et la programmation d'E / S sous-jacente, en utilisant des méthodes C ++ modernes pour fournir aux développeurs un modèle asynchrone cohérent.
- Boost.asio: une bibliothèque C ++ multiplateforme pour la mise en réseau et la programmation d'E / S sous-jacente.
- Framework C ++ Actor: une implémentation open source du modèle d'acteur dans C ++.
- Libev: boucle temporelle à haute performance à pleine performance, imitant légèrement libevent, mais n'a plus de limites comme Libevent, et il corrige également certains de ses bogues.
- Libevent: bibliothèque de notification d'événements.
- libhv: une bibliothèque de boucle d'événement multiplateforme.
- Libuv: E / S asynchrones multiplateforme.
- Promise-CPP: une bibliothèque qui implémente la norme Promise / A +, uniquement des fichiers d'en-tête.
- UVW: Encapulseur C ++ de Libuv.
Audio
Audio, son, musique, bibliothèque de musique numérique
- Audiofile: une bibliothèque C ++ simple pour lire et écrire des fichiers audio.
- FMOD: outil de création de moteur audio et de jeu facile à utiliser facile à utiliser pour le contenu audio.
- KFR: Cadre DSP C ++ moderne rapide, FFT, filtre FIR / IIR et conversion de la fréquence d'échantillonnage.
- Lame: Lame est un encodeur de troisième couche audio MPEG de haute qualité (MP3).
- libsndfile: C ++ ICAPLAPLET C Library, utilisé pour lire et écrire des fichiers contenant des sons échantillonnés via l'interface de la bibliothèque standard.
- LibSoundio: une bibliothèque C pour la plate-plaquette en temps réel Entrée et sortie audio en temps réel.
- Maximilian: C ++ Audio et Music Digital Signal Processing Library.
- OpenAL: Open Source Audio Library --- API Audio multiplateforme.
- MINIDIO: Une bibliothèque pour la lecture et l'enregistrement audio à un seul fichier.
- OPUS: un codec audio entièrement ouvert, libre de droits et hautement universel.
- Portaudio: bibliothèque gratuite, multiplateforme, open source audio.
- Sela: Audio Simplie sans perte.
- Soloud: moteur audio de jeu simple et portable.
- Spex: codec gratuit, jeté par Opus.
- Tonic: C ++ Facile à utiliser et synthèse audio efficace.
- Vorbis: Ogg Vorbis est un format audio universel compressé entièrement ouvert, non propriétaire et libre de droits.
- MINIMP3: Domaine public, mise en œuvre de la salle propre du décodeur MP3, uniquement des fichiers d'en-tête.
- Verovio: une bibliothèque rapide et légère de gravures de symboles musicales.
- Wav2letter ++: Domaine public, une bibliothèque de traitement de parole open source rapide entièrement écrite en C ++, en utilisant la bibliothèque de tenseur ArrayFire et la bibliothèque d'apprentissage de la lampe de poche pour obtenir une efficacité maximale.
Écologie
Bioinformatique, génomique et biotechnologie
BIOC ++: bibliothèque informatique C ++ pour la bioinformatique.
Chaste: bibliothèque C ++ open source pour la simulation de calcul des modèles mathématiques développés pour la physiologie et la biologie.
LibSequence: une bibliothèque C ++ pour représenter et analyser les données génétiques de la population.
SEQAN: Algorithmes et structures de données axés sur l'analyse de séquence de données biologiques.
VCFLIB: une bibliothèque C ++ pour l'analyse et le traitement des fichiers VCF.
WHAM: Appliquez des tests associatifs directement aux mutations structurelles de gènes dans les fichiers BAM.
Grain de bits
- JECH / DHT: une bibliothèque de table de hachage distribuée Bitstream implémentée par C.
- libtorrent (aka libtorrent-rasterbar): une implémentation efficace et fonctionnelle de C ++ BitsTtream.
- Libtorrent (alias libtorrent-rakshasa): bibliothèque Bitstream.
- Libutp: Utorrent Transport Protocol Library.
Chimique
Chimie, géochimie, biochimie
- Seammes D: moteur d'analyse orbitale de dynamique moléculaire avec la mise en œuvre de C ++ et LUA de Nix, qui est l'abréviation de l'analyse structurelle différée des simulations moléculaires.
- Gromacs: mise en œuvre parallèle de la dynamique moléculaire des messages de passage.
- Reaktoro: un cadre de calcul pour la modélisation des systèmes de réaction chimique dans C ++ et Python.
- LAMMPS: Code de dynamique moléculaire classique pour la modélisation des matériaux, il est l'acronyme d'un simulateur parallèle massif atomique / molécule à grande échelle.
Interface de ligne de commande
Interface utilisateur de console / terminal, interface de ligne de commande
- Argh !: Un gestionnaire de paramètres minimaliste qui uniquement des fichiers d'en-tête.
- Taywee / Args: bibliothèque d'analyse du paramètre C ++ simple avec seulement des fichiers d'en-tête.
- Boost.program_options: obtenez la bibliothèque pour les sélections de programmes via des méthodes communes telles que les lignes de commande et les fichiers de configuration.
- CLARA: analyseur de ligne de commande composable facile à utiliser pour C ++ 11 et plus tard.
- CLI: bibliothèque C ++ 14 multiplateforme pour les interfaces de ligne de commande interactives, avec seulement des fichiers d'en-tête.
- CLI11: bibliothèque C ++ 11 monom ou multi-fichiers pour l'analyse CLI simple et avancée, avec seulement des fichiers d'en-tête.
- JARRO2783 / CXXOPTS: Parser des options de ligne de commande C ++ légères.
- docopt.cpp: bibliothèque qui génère des options analysées à partir des chaînes de documents.
- GFLAGS: module d'indicateur de ligne de commande de C ++.
- Indicateurs: Indicateurs d'activité du C ++ moderne.
- Linenoise: un petit choix indépendant pour Readline et Libedit.
- Linenoise-NG: un petit remplacement de lecture GNU portable pour Linux, Windows et MacOS, qui est capable de gérer les caractères UTF-8.
- Lyra: analyseur de ligne de commande composable facile à utiliser pour C ++ 11 et plus tard.
- NCurses: Interface utilisateur du terminal.
- PDCURSES: Un domaine public maudit la bibliothèque avec code source et bibliothèques précompilées.
- REPLXX: prend en charge l'UTF-8, la surlimination de la syntaxe, la lecture de lecture et le remplacement de la libedit, qui peuvent fonctionner sur Unix et Windows.
- Tabuler: un outil de fabrication de table C ++ moderne.
- TCLAP: une bibliothèque mature, stable et diversifiée pour définir et accéder aux paramètres de ligne de commande dans ANSI C ++.
- Termbox: une bibliothèque C pour écrire des interfaces utilisateur basées sur le texte.
compression
Bibliothèque de compression et d'archive
- Bit7z: bibliothèque statique C ++, fournissant une interface simple avec les DLL 7-zip.
- Brotli: format de compression Brotli, développé par Google.
- BZIP2: une compression de données de brevet et de haute qualité entièrement gratuite.
- FinItestateEntropy: Nouvelle génération des codecs d'entropie: entropie à l'état fini et Huff ().
- PhysicsFS: Une bibliothèque qui offre un accès abstrait à diverses archives, principalement utilisées dans les jeux vidéo, et l'inspiration de conception est en partie dérivée du sous-système de fichier de Quake3.
- Karchive: une bibliothèque pour la création, la lecture, l'écriture et la manipulation des archives de fichiers telles que ZIP et TAR.
- LIBARCHIVE: Bibliothèque d'archives et de compression multi-format.
- LZ4: Algorithme de compression très rapide.
- LZFSE: LZFSE Compression Bibliothèque et outils de ligne de commande.
- LZHAM: Base de données de compression sans perte, le rapport de compression est proche de LZMA, mais la vitesse de décompression est beaucoup plus rapide.
- LZMA: Format 7Z par défaut et méthode de compression commune.
- LZMAT: Bibliothèque de compression de données sans perte en temps réel extrêmement rapide.
- MINIZ: Fichier source C unique, bibliothèque de compression compacte / Expand, en utilisant l'API compatible ZLIB, la lecture et l'écriture d'archives zip et la méthode d'écriture PNG.
- MINIZIP: le dernier correctif de bogue de ZLIB, prend en charge le disque PKWare Spanning, le cryptage AES et la mise en mémoire tampon IO.
- SMAZ: bibliothèque de compression de petits caractères.
- Scappy: compression rapide et décompression.
- ZLIB: bibliothèque de compression de flux de données très compacte.
- ZLIB-NG: ZLIB pour les systèmes de "prochaine génération", le remplacement de certaines optimisations importantes.
- ZSTD: Zstandard - Algorithme de compression rapide en temps réel. Développé par Facebook.
- Zziplib: fournit des autorisations de lecture pour les archives ZIP.
Concurrence
Exécution et multithreading simultanés
- Alpaka: une bibliothèque abstraite pour l'accélération du noyau parallèle.
- ArrayFire: bibliothèque GPU à usage général.
- Async ++: un cadre parallèle léger pour C ++ 11, inspiré par la bibliothèque Microsoft PPL et la proposition standard N3428 C ++.
- Boost.Compute: C ++ GPU Computing Library for OpenCL.
- Boulon: une bibliothèque de modèles C ++ optimisée pour le GPU.
- CK: primitives simultanées, mécanismes de récupération de mémoire sécurisés et structures de données non bloquantes.
- ConcurrentQueuee: C ++ 11 Multi-Producteur rapide et multi-consrumant la file d'attente simultanée sans serrure sans serrure.
- CPP-TASKFLOW: Programmation parallèle rapide C ++ avec dépendances des tâches.
- Cub: Cub fournit les derniers composants logiciels réutilisables pour chaque couche du mode de programmation CUDA.
- CUDA-API-WRAPPERS: Un encapsulateur C ++ moderne léger pour la programmation d'API d'exécution pour les GPU CUDA.
- Cupla: Exécutez l'API CUDA / C ++ dans OpenMPA, Threads, TBB ... via Alpaka.
- C ++ React: Bibliothèque de programmation réactive pour C ++ 11.
- FiberTaskingLib: une bibliothèque multithread basée sur les tâches qui prend en charge les graphiques de tâches avec des dépendances arbitraires.
- HPX: un système d'exécution C ++ universel pour les applications distribuées parallèles de toute taille.
- Intel Games Scheduler: un cadre de planification de tâches conçu pour les besoins des développeurs de jeux.
- Intel parallel STL: Intel Implémentation de C ++ 17 STL pour C ++ 11 et plus tard.
- Intel TBB: module de construction de thread Intel.
- Junction: une bibliothèque C ++ pour les structures de données simultanées.
- Kokkos: un modèle de programmation portable pour le fonctionnement parallèle et l'abstraction de la mémoire.
- LIBCDS: une bibliothèque C ++ pour les structures de données parallèles.
- LibCLSPH: bibliothèque de simulation de fluide SPH accélérée par GPU basée sur OpenCL.
- Libmill: introduire la concurrence structurelle en C.
- LibDispatch: Grand Central Dispatch (GCD) développé par Apple est une technologie parallèle de tâche basée sur le motif de pool de threads. La bibliothèque LibDispatch fournit la mise en œuvre des services GCD.
- Libmill: introduire la concurrence de style go dans C.
- Marl: Marl est un planificateur de tâches pour les threads / fibres mixtes écrits en C ++ 11.
- ModernNGPU: ModernNGPU est une bibliothèque de productivité pour GPUS General Computing, il n'a que des fichiers d'en-tête C ++ écrits pour CUDA. La valeur unique de cette bibliothèque réside dans ses primitives d'accélération utilisées pour résoudre des problèmes parallèles irréguliers.
- NCCL: Primitives optimisées pour la communication collective multi-GPU.
- OpenCL: Standard ouvert pour les systèmes hétérogènes qui sont programmés en parallèle.
- OpenMP: API OpenMP.
- Sobjectizer: un cadre C ++ assez petit qui implémente les modes de publication et de publication et de CSP.
- Quantum: un puissant cadre de planificateur collaboratif C ++ construit au niveau supérieur de Boost :: Coroutines2.
- RAFTLIB: Bibliothèque RAFTLIB C ++, implémente la concurrence des flux de flux / de données via des opérateurs C ++ de type iOStream.
- ReaderWriterQueuee: C ++ Fast Single Producer et Single Consumer Lock Free File.
- STDGPU: structure de données de type STL efficace sur GPU.
- Thrust: une bibliothèque d'algorithmes parallèles similaire à la bibliothèque de modèles standard C ++.
- TransWarp: une bibliothèque C ++ pour la concurrence des tâches, uniquement des fichiers d'en-tête.
- VEXCL: C ++ Vector Expression Template Library for OpenCL / CUDA.
- Quantum: un puissant cadre de planificateur collaboratif C ++ construit au niveau supérieur de Boost :: Coroutines2.
- STAPL: Cadre de programmation parallèle C ++ conçue pour fonctionner sur des ordinateurs parallèles à mémoire partagée et distribuée.
Configuration
Fichier de configuration, fichier ini
INIH: un analyseur de fichiers .ini simple dans le langage C, qui est très adapté aux systèmes intégrés.
INIH: la version C ++ de INIH, uniquement des fichiers d'en-tête.
IneParser: Parser de fichiers INI.
LibConfig: les bibliothèques C et C ++ utilisées pour gérer les fichiers de configuration structurés.
libconfuse: la bibliothèque d'analyse du fichier de configuration de C's C.
Simpleini: une bibliothèque C ++ multiplateforme qui fournit une API simple pour lire et écrire des fichiers de configuration INI.
Toml ++: Toml Parser et Stringer, adapté à C ++ 17 et plus tard, avec seulement des fichiers d'en-tête.
récipient
- C ++ B-Tree: une bibliothèque de modèles qui implémente les conteneurs de mémoire de commande basés sur la structure de données B-Tree.
- Colony: conteneurs "sac" non ordonnés, qui fonctionnent mieux que les conteneurs standard lorsqu'ils sont hautement modifiés. Dans le même temps, il peut toujours maintenir un pointeur permanent vers un élément non en cours, quelle que soit l'insertion ou l'effacement.
- Dynamic_BitSet: C ++ 17 Collection Dynamic BitSet, uniquement des fichiers d'en-tête.
- Forest: implémente les bibliothèques de modèles pour AVL, recherche binaire, KD et Quadtree.
- Hashmaps: implémentation de l'algorithme de table de hachage d'adressage ouvert dans C ++.
- MAP HOPSCOTCH: Utilisez l'algorithme de hachage Hopscotch pour implémenter le mappage rapide de hachage pour la résolution des conflits, avec uniquement des fichiers d'en-tête.
- LSHBOX: La boîte à outils C ++ pour les algorithmes localement sensibles (LSH) fournit plusieurs algorithmes LSH courants et peut également prendre en charge Python et Matlab.
- PGM-Index: une structure de données qui peut rapidement trouver, diriger, se rechercher et mettre à jour des centaines de millions de tableaux d'articles, en utilisant l'ordre des gradients plutôt que sur l'espace par rapport aux index traditionnels.
- PLF :: Liste: Std :: List Implémentation, qui efface les coutures de plage pour permettre des structures adaptées au cache, ce qui entraîne des performances considérablement améliorées.
- PLF :: Stack: Adaptateur de conteneur STD :: Stack, qui a de meilleures performances dans le contexte de la pile que n'importe quel conteneur standard.
- Ring_Span Lite: Une implémentation simplifiée de Ring_Span par Arthur O'Dwyer, comme une vue tamponnée circulaire.
- Robin-Hood-Hashing: une table de hachage rapide et économique pour C ++ 1, basée sur l'algorithme de hachage Robin Hood.
- Robin-Map: Mappage de hachage et ensemble de hachage à l'aide de l'algorithme de hachage Robin Hood.
- SPARSEPP: mappage de hachage rapide et économique pour C ++.
Cryptographie
Bibliothèque de cryptographie et de chiffrement
- BCrypt: un outil de chiffrement de fichiers multiplateforme qui peut être porté vers tous les systèmes d'exploitation pris en charge.
- Beecrypt: bibliothèque de chiffrement portable et rapide.
- Botan: bibliothèque de cryptage C ++.
- Crypto ++: une bibliothèque C ++ gratuite pour les schémas de chiffrement.
- Digestpp: la bibliothèque d'informations de C ++ 11 (Hash) de la bibliothèque d'en-tête uniquement.
- GNUPG: implémentation complète et gratuite de la norme OpenPGP.
- GNUTLS: une bibliothèque de communication sécurisée qui implémente les protocoles SSL, TLS et DTLS.
- LibgCrypt: une bibliothèque de mots de passe universelle, à l'origine basée sur le code CNUPG.
- Libressl: Le protocole libre SSL / TLS appartient à une branche d'OpenSSL en 2014.
- Libsodium: bibliothèque de chiffrement à base de NACI, obstinée et facile à utiliser.
- Libhydrogène: une bibliothèque de chiffrement légère, sécurisée et facile à utiliser pour les environnements contraints.
- Libtomcrypt: une boîte à outils de chiffrement assez complète, modulaire et portable.
- MBEDTLS: Une bibliothèque SSL open source, portable, facile à utiliser, lisible et flexible, anciennement connue sous le nom de Polarssl.
- Bibliothèque de chiffrement sous-jacente de l'ortie.
- OpenSSL: une bibliothèque de chiffrement robuste, commerciale, entièrement fonctionnelle et open source.
- Retter: une collection de cryptographie liée aux fonctions de hachage, mots de passe, outils, bibliothèques et matériaux.
- S2N: mise en œuvre du protocole TLS / SSL.
- Sha1CollisionDection: un outil de bibliothèque et de ligne de commande pour détecter les conflits SHA-1 dans les fichiers.
- Tink: bibliothèque multilingue et multiplateforme qui fournit des API de cryptage sécurisées, faciles à utiliser et difficiles à abuser.
- Minuscules AES en c: c petit et moyen portable AES128 / 192/256.
- Themis: une bibliothèque de chiffrement pour la sécurité des données indolores, fournissant un chiffrement symétrique et asymétrique pour les plates-formes mobiles et serveurs, sécurisation des prises avec confidentialité avancée.
CSV
Fichiers de la valeur de la valeur commerciale (CSV) de la bibliothèque pour analyser les virgules (CSV)
- CSV2: analyseur CSV rapide pour C ++ moderne.
- Parser CSV C ++ rapide: une petite bibliothèque facile à utiliser et rapide pour lire les fichiers CSV, y compris les fichiers d'en-tête uniquement.
- Parser CSV de Vince: analyseur CSV rapide, autonome, en streaming C ++ 17 avec conversion et statistiques de type facultatif.
base de données
Bases de données, serveurs SQL, pilotes et outils ODBC
- HiberLite: mappage relationnel de l'objet C ++ pour SQLite3.
- Hiredis: une bibliothèque client C très simple pour les bases de données redis.
- NIVEALDB: un référentiel de valeurs de clé rapide écrit par Google qui fournit un mappage commandé des touches de caractères aux valeurs de chaîne.
- LMDB: stockage de valeurs de clé intégré qui est conforme aux quatre éléments de base de la base de données.
- LMDB ++: C ++ 11 Encapsulator pour les bases de données intégrées LMDB.
- MONGODB C DRITEUR: C'S MongoDB Client Library.
- MONGODB C ++ Pilote: C ++ Pilote pour MongDB.
- MongoDB Libbson: BSON Utility Library.
- MySQL ++: un encapsulateur C ++ qui résume l'API C de MySQL.
- NANODBC: un petit wrapper C ++ pour l'API CODBC native.
- ODB: C ++ Open source, multiplateforme et système de cartographie relationnelle des objets transversaux (ORM).
- redis3m: Hiredis Encapsupulator à l'aide d'une interface C ++ propre, de support de balises et de modèles prêts à l'emploi.
- ROCKSDB: Stockage rapide des valeurs clés intégrées de Facebook.
- SIMDB: haute performance, mémoire partagée, sans verrouillage, multiplateforme, fichier unique, dépôt minimal C ++ 11 Storage de valeur clé.
- La couche d'abstraction de la base de données de C ++ de C ++.
- SQLITE: une base de données relationnelle entièrement intégrée et entièrement fonctionnelle avec seulement quelques centaines de KBS qui peuvent être correctement incluses dans votre projet.
- SQLITEC ++: SQLITEC ++ (SQLITECPP) est un wrapper C ++ SQLITE3 intelligent et facile à utiliser.
- SQLITE_MODERN_CPP: le wrapper C ++ 14 de la bibliothèque SQLite, uniquement des fichiers d'en-tête.
- SQLITE_ORM: SQLITE ORM LEGERWEMPLE Bibliothèque pour C ++ moderne, avec seulement des fichiers d'en-tête.
- SQLPP11: Un langage spécifique au domaine intégré au type de type pour les requêtes SQL et des résultats de résultats en C ++.
- TILEDB: SGBD de tableau multidimensionnel rapide et clairsemé.
- UNQLITE: un moteur NoSQL autonome, sans serveur, sans serveur.
- UPSCALEDB: Présentation de valeurs de clé "tapée" intégrée avec interface de requête intégrée.
déboguer
Débogage de la bibliothèque, de la détection des fuites de la mémoire et des ressources, des tests unitaires
- Backward-CPP: la belle imprimante de piste de pile de C ++.
- Benchmark: une petite bibliothèque de support de micro-référence fournie par Google.
- Boost.test: Boost Bibliothèque de tests.
- Vérifier: le cadre de test unitaire de C.
- Doctst: le cadre de test le plus léger pour un seul fichier d'en-tête C ++.
- Catch: un framework natif très élégant et C ++ qui ne contient que des fichiers d'en-tête pour les tests unitaires, le développement axé sur les tests et le développement axé sur le comportement.
- Catch2: un framework natif très élégant et C ++ qui ne contient que des fichiers d'en-tête pour les tests unitaires, le développement axé sur les tests et le développement axé sur le comportement.
- CELERO: Framewarking C ++ C ++.
- CPPUTEST: C / C ++ Tests d'unité et cadre moqueur.
- Mignon: test unitaire C ++ plus facile.
- CMOCKA: un cadre de test d'unité C qui prend en charge les objets simulés.
- CPPUnit: un cadre de test C ++ porté par Junit.
- CTEST: pilote de test Cmake.
- DBG-MACRO: macro C ++ DBG (…).
- Deleaker: Outils pour les vérifications des fuites des ressources, y compris la mémoire, le GDI et la manipulation des fuites.
- FFF: Créez un microframe pour les fonctions Pseudo-C.
- Google Mock: une bibliothèque pour écrire et utiliser des classes C ++ Mock.
- Test de Google: le cadre de test C ++ de Google.
- IG-Debugheap: un tas de débogage multiplateforme pour le suivi des erreurs de mémoire.
- libtap: Écrivez des tests dans le langage C.
- Memtrack: utilisé pour suivre l'allocation de la mémoire en C ++.
- Microprofile: analyseur de vue réseau multiplateforme.
- Minunit: le plus petit cadre de test unitaire écrit en C, inclus dans un seul fichier d'en-tête.
- Mockator: Plugin CDT Eclipse pour les objets de couture et de moquerie C ++.
- Nanotimer: une classe de minuterie simple et basse et basse plate-forme pour l'analyse comparative.
- NONIUS: Cadre du microbencharement C ++.
- Remotery: un seul analyseur de fichiers C pour les vues Web.
- UNITTEST ++: Cadre de test unitaire C ++ léger.
- Unity: Tests unitaires simples pour C.
- utest.h: Framework de test de fichiers d'en-tête unique pour C et C ++.
- μT: C ++ 20 Fichier à tête / module unique, μ (micro) / cadre de test unitaire sans macros.
- VLD: Microsoft Deakage Meder, un système de détection de fuite de mémoire libre, robuste et open source pour Visual C ++.
Fonte
Une bibliothèque pour analyser les fichiers de police et traitement.
- FontConfig: Configuration de police et bibliothèque personnalisée.
- Freetype: une bibliothèque de logiciels gratuite et disponible pour les polices de rendu.
- OTFCC: C Library et utilitaire pour analyser et écrire des fichiers de police OpenType.
Moteur de jeu
- Acid: moteur de jeu Vulkan C ++ 17 à grande vitesse.
- Allegro: Une bibliothèque multiplateforme principalement utilisée pour les jeux vidéo et la programmation multimédia.
- COCOS2D-X: un cadre multi-plate-forme pour la construction de jeux 2D, de livres interactifs, de démonstrations et d'autres applications graphiques.
- CORANGE: Un moteur de jeu écrit en Pure C, SDL et OpenGL.
- Crown: Crown est un moteur de jeu universel basé sur les données écrit à partir de zéro en utilisant l'orthodoxe C ++ avec des concepts de conception minimalistes et axés sur les données à l'esprit.
- Delta3d: une plate-forme de simulation robuste.
- ENTT: La collision entre les jeux et C ++ moderne.
- Gameplay: un cadre de jeu C ++ multiplateforme natif pour la création de jeux mobiles et de bureau 2D / 3D.
- GODOT: Un moteur de jeu entièrement fonctionnel et open source et sous licence du MIT.
- Grit: Project Community pour construire un moteur de jeu gratuit qui permet des jeux 3D mondiaux ouverts.
- Halley: un moteur de jeu léger écrit en C ++ 14 avec un "vrai" système de composants physiques.
- Klayge: un moteur de jeu open source multiplateforme basé sur l'architecture du plug-in.
- NCINE: un moteur de jeu 2D multiplateforme qui se concentre sur les performances, écrit dans C ++ 11, et vous pouvez également choisir d'écrire des scripts à l'aide de LUA.
- OpenXRAY: un moteur à rayons X modifié par la communauté utilisé dans la série Stalker Game.
- Oxygine: moteur de jeu C ++ multiplateforme.
- PANDA3D: Game Engine, un cadre pour le rendu 3D et le développement de jeux des programmes Python et C ++.
- PixelgameEngine: La version officielle d'OlcpixelgameEngine, un outil pour les vidéos et projets YouTube pour Javidx9.
- Polycode: un framework open source implémenté en C ++ (lié à Lua) pour la création de jeux.
- Raylib: bibliothèque simple, facile à utiliser pour profiter du plaisir de la programmation de jeux vidéo.
- Spring: moteur de jeu RTS puissant, gratuit et multiplateforme.
- TORQUE2D: un moteur C ++ open source et multiplateforme construit pour le développement de jeu 2D.
- Torque3d: un moteur C ++ open source construit pour le développement de jeux 3D.
- Moteur jouet: Le jouet est un moteur de jeu C ++ modulaire léger et fournit des idiomes C ++ expressifs simples pour itérer rapidement la conception de jeux 2D et 3D entièrement fonctionnels.
- URHO3D: Le moteur de jeu 2D et 3D gratuit, léger, léger et multiplateforme implémenté par C ++, a été grandement inspiré par Ogre et Horde3d.
Interface utilisateur graphique
Interface utilisateur graphique
- Boden: Cadre d'interface graphique natif, mobile, multiplateforme.
- CEGUI: bibliothèque GUI multiplateforme flexible.
- Éléments: bibliothèque d'interface graphique modulaire légère, à grain fin et indépendant de la résolution.
- FLTK: boîte à outils GUI C ++ Fast et Lightweight.
- GACUI: Interface utilisateur C ++ accélérée par GPU, avec les outils de développement WYSIWYG, prend en charge XML et possède des capacités de liaison de données intégrées et MVVM.
- GTK +: une boîte à outils multi-plateformes pour créer des interfaces utilisateur graphiques.
- GTKMM: L'interface C ++ officielle de la bibliothèque GUI populaire GTK +.
- IMGUI: une interface utilisateur graphique en mode en temps réel avec des dépendances minimales.
- IMPLOT: le contrôle de dessin en mode d'Imgui d'Imgui.
- IUP: une boîte à outils multiplateforme pour la construction d'interfaces utilisateur graphiques.
- Libui: une bibliothèque GUI simple, portable (mais inflexible) en C, en utilisant la technologie GUI native pour chaque plate-forme qu'il prend en charge.
- MyGui: GUI rapide, flexible, simple.
- Nana: Nana est une bibliothèque multiplateforme pour la programmation GUI de style C ++ moderne.
- Nanogui: une bibliothèque de contrôle minimaliste et multiplateforme pour OpenGL 3.x et ultérieurement.
- Nuklear: bibliothèque ANSI C GUI pour les fichiers d'en-tête unique.
- QCustomPlot: Contrôle de dessin QT sans plus de dépendances.
- QWT: Contrôle QT pour les utilisateurs et les applications technologiques.
- QWTPLOT3D: Une bibliothèque de programmation C ++ riche en fonctionnalités basée sur QT / OpenGL, fournissant essentiellement un groupe de contrôles 3D.
- RMLUI: Bibliothèque d'interface utilisateur HTML / CSS évoluée, branche de la branche.
- Sciter: Sciter est un moteur HTML / CSS / Scripting Language intégré conçu pour être utilisé dans la couche d'interface utilisateur des applications de bureau modernes.
- Bibliothèque WXWidgets C ++, qui permet aux développeurs d'utiliser une base de code pour créer des applications pour les veuves, Mac OS X, Linux et d'autres plates-formes.
- Yue: Créez une bibliothèque pour les applications GUI multiplateforme natives.
Graphique
- ASSIMP: La bibliothèque d'importation d'atteaux ouverts (ASSIMP) est une bibliothèque d'importation de modèle 3D multiplateforme conçue pour fournir une API commune pour différents formats de fichiers d'actifs 3D.
- BGFX: bibliothèque de rendu multiplateforme.
- Blend2d: un moteur graphique vectoriel 2D propulsé par le compilateur JIT.
- BS :: Framework: une bibliothèque C ++ 14 moderne pour le développement d'applications graphiques en temps réel.
- Caire: une bibliothèque graphique 2D qui prend en charge plusieurs périphériques de sortie.
- C-TURTLE: Une bibliothèque graphique C ++ 11 Turtle qui agit comme un wrapper CLMG, avec seulement des fichiers d'en-tête.
- Moteur diligent: une bibliothèque graphique 3D moderne, multiplateforme et de bas niveau.
- DirectXtk: une collection de classes d'aide utilisées pour écrire le code DirectX 11.x en C ++.
- GLFW: bibliothèque de traitement OpenGL simple et multiplateforme.
- HereDedragons: des scènes 3D de base implémentées à l'aide de divers moteurs, cadres ou API.
- Horde3d un petit moteur de rendu et d'animation 3D.
- ION: une petite et efficace collection de bibliothèques pour la création d'applications client ou serveur multiplateforme utilisant des graphiques 3D.
- Irlicht: un moteur 3D en temps réel haute performance écrit en C ++.
- Libigl: bibliothèque de traitement de la géométrie C ++ simple.
- LLGL: La bibliothèque graphique de bas niveau (LLGL) est une fine couche d'abstraction pour les API graphiques modernes.
- Magnum: léger et modulaire C ++ 11 / C ++ 14 Middleware graphique pour les jeux et la visualisation des données.
- NANOVG: bibliothèque graphique vectorielle 2D anti-aliasée au-dessus de l'OpenGL pour l'interface utilisateur et la visualisation.
- Ogre 3D: un moteur de rendu 3D flexible axé sur la scène, en temps réel et flexible (pas un moteur de jeu) écrit en C ++.
- OpenScenegraph: Openscenegraph Toolkit avec des performances élevées.
- OpenSubDiv: bibliothèque de Pixar pour évaluer et rendre les surfaces segmentées sur CPU et GPU.
- OpenVDB: une bibliothèque et un outil pour le stockage, l'édition et le rendu des bases de données de volume.
- PANDA3D: Un cadre pour le rendu 3D et le développement de jeux, écrit en Python et C ++.
- Partio: une bibliothèque pour le traitement des données de particules, prenant en charge les formulaires de fichiers les plus courants.
- Skia Une bibliothèque graphique 2D complète pour dessiner du texte, des graphiques et des images.
- Tinyspline: Bibliothèque ANSI C petite mais puissante pour la différence, la transformation et l'interrogation arbitraire NURBS, les fonctions B-spline et les courbes de soupel.
- Rendu multiplateforme URHO3D et moteur de jeu.
- Yocto / GL: une bibliothèque C ++ miniature basée sur des graphiques physiques pour les données.
Traitement d'image
- Boost.gil: bibliothèque d'images universelle.
- CIMG: une petite boîte à outils C ++ open source pour le traitement d'image.
- Cximage: une bibliothèque de traitement et de conversion d'image pour le chargement, la sauvegarde, l'affichage et la conversion.
- DLIB: C ++ 11 Machine Learning moderne, vision par ordinateur, optimisation numérique et boîte à outils d'apprentissage en profondeur.
- FreeImage: bibliothèque open source qui prend en charge les formats d'image communs et autres formats requis pour les applications multimédias maintenant.
- GD: GD Graphics Library, célèbre pour le chargement / opération graphique et la génération de miniatures en PHP.
- DCMTK: boîte à outils DICOM.
- GDCM: Bibliothèque DICOM de base.
- ITK: 跨平台的开源图像分析系统。
- Leptonica: Leptonica是一个包含软件的开源库,其广泛应用于图像处理和图形分析应用程序。
- libfacedetection: 用于图像中人脸检测的开源库,其人脸检测的速度能达到1500FPS。
- libjpeg-turbo: 使用SIMD指令来加速基线JPEG编码和解码的JPEG图像编解码器。
- libvips: 具有低内存需求的快速图像处理库。
- Magick++: ImageMagick程序的C++接口。
- MagickWnd: ImageMagick程序的C++接口。
- OpenCV: 开源计算机视觉类库。
- OpenEXR: 具有高动态范围成像的跨平台库。
- OpenImageIO: 强大的图像和纹理处理库,支持多种常见的有损和RAW格式。
- Simd: 使用SIMD的C++图像处理库: SSE,SSE2,SSE3,SSSE3,SSE4.1,SSE4.2,AVX,AVX2,AVX-512,VMX(Altivec)和VSX(Power7),NEON for ARM。
- stb-image: STB单个头文件的图像加载库。
- tesseract-ocr: OCR引擎。
- TinyEXIF: 用于JPEG的微型ISO兼容的C++ EXIF和XMP解析库。
- Video++: C++ 14高性能的视频和图像处理库。
- VIGRA: 用于图像分析通用C++计算机视觉库。
- VTK: 用于3D计算机图形学,图像处理和可视化的开源免费软件系统。
Internationalisation
- gettext: GNU `gettext'。
- IBM ICU: 提供Unicode 和全球化支持的C、C++ 和Java库。
- libiconv: 用于不同字符编码之间的编码转换库。
- utf8.h: C和C++的单个头文件的utf8字符串函数。
- utf8proc: 干净的C库,用于处理UTF-8 Unicode数据。
进程间通信
- Apache Thrift: 高效的跨语言IPC/RPC,可在C++、Java、Python、PHP、C#和许多其它语言之间运行。最初是由Facebook开发。
- Cap'n Proto: 快速的数据交换格式和基于功能的RPC系统。
- eCAL: 发布/订阅,客户端/服务器,C++/Python/C#,各种消息协议(protobuf, capnproto ..)。
- gRPC: 高性能、开源、通用的RPC框架。
- Ice: 全面的RPC框架,支持C++、C#、Java、JavaScript、Python等。
- libjson-rpc-cpp: 用于C++服务器和客户端的JSON-RPC框架。
- nanomsg: 好几个“可扩展协议”的简单高性能实现。
- nng: nanomsg的下一代,轻量级、无代理消息的传递库。
- rpclib: 现代C++的msgpack-RPC服务器和客户端库。
- simple-rpc-cpp: C / C++函数的简单RPC封装生成器。
- WAMP: 提供RPC和发布/订阅消息传递模式。(各种实现,各种语言)
- xmlrpc-c: 基于XML和HTTP的轻量级RPC库。
Json
- Boost.PropertyTree: 属性树解析器/生成器,可用于解析XML / JSON / INI / Info文件。
- cJSON: ANSI C的超轻量级JSON解析器。
- frozen: C/C++的Json解析生成器。
- Jansson: 进行编解码和处理Json数据的C语言库。
- jbson: C++14中构建和迭代BSON data和Json 文档的库。
- JeayeSON: 非常健全的C++ JSON库,只包含头文件。
- Jsmn: C语言中的简约JSON解析器。
- json: 用于现代C++的JSON。
- JSON++: C++的JSON 解析器。
- json.h: 在C和C++中解析JSON的简单的单头文件/单源文件的解决方案。
- json-c: C中的JSON实现。
- jsoncons: 使用JSONPointer、JSONPatch、JSONPath和JMESPath的JSON和类似JSON二进制格式的C++库,只有头文件。
- JsonCpp: 可与JSON交互的C++库。
- json-parser: 用可移植的ANSI C编写的JSON解析器,占用内存非常少。
- json11: 一个迷你的C++11 JSON库。
- json-voorhees: C++的JSON库。支持C++ 11,无依赖关系,快速且对开发人员友好。
- jute: 非常简单的C++ JSON解析器。
- ibjson: C语言中的JSON解析和打印库,很容易和任何模型集成。 .
- libjson: 轻量级的JSON库。
- LIBUCL: 通用配置库解析器。
- parson: 用C编写的轻量级的JSON库。
- PicoJSON: C++中JSON解析序列化,只包含头文件。
- qt-json: 用于JSON数据和QVariant层次间的相互解析的简单类。
- QJson: 将JSON数据映射到QVariant对象的基于Qt的库。
- RapidJSON: 用于C++的快速JSON 解析生成器,包含SAX和DOM两种风格的API。
- sajson: 用于C++ 11的轻量级、高性能的JSON解析器。
- simdjson: 极快的JSON库,可以千兆字节每秒的速度解析JSON。
- taoJSON: 零依赖的C++JSON库,只包含头文件。
- ujson: µjson是一个小型、C++ 11、UTF-8、JSON的库。
- YAJL: C语言中快速流JSON解析库。
enregistrer
- Blackhole: 基于属性的日志框架,旨在快速、模块化和高度可定制。
- Boost.Log: 设计非常模块化,并且具有扩展性。
- Easylogging++: 适用于C++ 11(或更高版本)应用程序的超轻量级、高性能的日志库。
- G3log: 具有动态接收模块的异步记录器。
- glog: Google日志模块的C++实现。
- Log4cpp: C++类库,用于灵活地添加日志到文件,系统日志,IDSA和其他地方。
- log4cplus: 易于使用的C++日志API,可提供对日志管理和配置的线程安全、灵活且任意粒度的控制。
- loguru: 轻量级的C++日志库。
- plog: C++可移植且简单的日志,少于1000行代码。
- reckless: C++低延迟、高吞吐量、异步的日志库。
- spdlog: 超级快的C++日志库,只包含头文件。
- templog: 小型、轻量级的C++ 库,可以添加日志到你的C++应用程序中。
- P7Baical: 开源、跨平台的库,用于在最小限度使用CPU和内存的情况下高速发送遥测和跟踪数据。
- Quill: 异步、跨平台、低时延的日志库。
Apprentissage automatique
- Caffe: 快速的神经网络框架。
- CCV: 基于C /缓存/核心的计算机视觉库,现代计算机视觉库。
- darknet: 用C和CUDA编写的开源神经网络框架。
- Dlib: 现代C++ 11的机器学习、计算机视觉、数值优化和深度学习的工具包。
- Fido: 用于嵌入式电子和机器人技术的高度模块化的C++机器学习库。
- flashlight: 来自Facebook AI研究中心的快速、灵活的机器学习库,其完全用C++编写,基于ArrayFire张量库。
- libsvm: 支持向量机的简单、易用、高效的库。
- MeTA: 现代C++的数据科学工具包。
- Minerva: 快速、灵活的深度学习系统。
- mlpack: 可扩展的C++机器学习库。
- OpenCV: 开源计算机视觉库。
- Recommender: 使用协同过滤进行产品推荐/建议的C语言库。
- RNNLIB: RNNLIB是用于序列学习问题的递归神经网络库。
- SHOGUN: Shogun 机器学习工具。
- sofia-ml: 用于机器学习的快速增量算法套件。
- VLFeat: VLFeat开源库实现了流行的计算机视觉算法,这些算法专门用于图像理解以及局部特征提取和匹配。
- xgboost: 用于Python、R、Java、Scala、C++等的可扩展、便携式和分布式梯度增强(GBDT,GBRT或GBM)的库。在单机、Hadoop、Spark、Flink和DataFlow上运行。
mathématiques
- Apophenia: 用于统计和科学计算的C库。
- Armadillo: 用于线性代数和科学计算的快速C++库。
- autodiff: 用于自动微分的现代、快速且富有表现力的C++库。
- blaze: 高性能的C++数学库,用于密集和稀疏算法。
- Boost.Multiprecision: 在C++中提供更高范围/精度的整数、有理数和浮点数类型,只包含头文件或者在GMP / MPFR / LibTomMath后端。
- ceres-solver: 来自谷歌的C++库,用于建模和解决大型复杂非线性最小平方问题。
- CGAL: 高效,可靠的几何算法集合。
- cml: 用于游戏和图形的免费C++数学库。
- Dlib: 现代C++11的机器学习、计算机视觉、数值优化和深度学习工具包。
- Eigen: 高级C++模板头文件库,包括线性代数,矩阵,向量操作,数值解决和其他相关的算法。
- ExprTK: C++数学表达式工具包库(ExprTk)是一个易于使用、易于集成且非常高效的运行时数学表达式解析器和评估引擎。
- Geometric Tools: 用于数学、图形、图像分析和物理学领域计算的C++库。
- GLM: 只包含头文件的C++数学库,可与OpenGL的GLSL数学匹配并互操作。
- GMTL: 数学图形模板库是一组广泛实现基本图形的工具。
- GMP: 用于个高精度计算的C/C++库,处理有符号整数,有理数和浮点数。
- Klein: 快速、SIMD优化的C++ 17几何代数库,用于点、线和平面投影、相交、连接、刚体运动等。
- linalg.h: C++的单头文件、公共域、短向量数学库。
- MIRACL: 多精度整数和有理数算法加密库。
- muparser: muParser是用C++编写的可扩展、高性能的数学表达式解析库。
- LibTomMath: 完全用C编写的免费、开源、可移植的数论多精度整数库。
- linmath.h: 精益线性数学库,主要用于图形编程。
- lp_solve: 用于制定和解决线性编程问题的库。
- OpenBLAS: 基于GotoBLAS2 1.13 BSD版本的优化BLAS库。
- QuantLibv: 用于计量金融的免费/开源库。
- StatsLib: 统计分布函数的C++库,只包含头文件。
- SymEngine: 快速符号处理库,用C++重写了SymPy的核心。
- TinyExpr: 用于解析和评估字符串中的数学表达式的C库。
- Vc: C++的SIMD矢量类。
- Versor: (快速的)几何代数的通用C++库,包括欧几里得、投影,保角、时空等。
- Wykobi: 高效、健壮且易于使用的C++库,面向C++ 2D / 3D的计算几何例程。
- xtensor: 受NumPy语法启发的C++ 14库,用于使用多维数组表达式进行数值分析。
- universal: 只包含头文件的C++ 14库,实现任意假定算数。假定数值系统是一个锥形浮点,比IEEE浮点更有效。假定数使可复现的计算科学成为可能。
内存分配
- Boehm GC: C和C++的保守的垃圾回收器。
- C Smart Pointers: (GNU)C编程语言的智能指针。
- Hoard: 快速、可扩展和节约内存的Malloc,支持Linux、Windows和Mac。
- jemalloc: 通用的malloc(3)实现,强调避免存储碎片和可扩展的并发支持。
- memory: 兼容STL的C++内存分配器库。
- memory-allocators: 自定义内存分配器,可提高动态内存分配的性能。
- mimalloc: 具有出色性能的紧凑型通用分配器。
- tgc: 用~500 LOC编写的C语言微型垃圾回收器。
multimédia
- GStreamer: 构建媒体处理组件图形的库。
- libass: ASS / SSA字幕格式的便携式字幕渲染器。
- libass: 处理多媒体内容(例如音频、视频、字幕和相关元数据)的库和工具的集合。
- LIVE555 Streaming Media: 使用开放标准协议(RTP/RTCP, RTSP, SIP) 的多媒体流库。
- libVLC: libVLC (VLC SDK)媒体框架。
- MediaInfoLib: 用于视频和音频文件中最相关的技术和标签数据的方便统一显示。
- QtAv: 基于Qt和FFmpeg的多媒体播放框架,能够帮助你轻而易举地编写出一个播放器。
- SDL: 简单直控媒体层。
- SFML: 快速,简单的多媒体库。
- TagLib: 用于读取和编辑几种流行音频格式的元数据的库。
réseau
- ACE: C++面向对象网络编程工具包。
- Boost.Asio: 用于网络和底层I/O编程的跨平台的C++库。
- Boost.Beast: 在C++ 11中基于Boost.Asio构建的HTTP和WebSocket。
- Breep: 基于事件的高级C++ 14点对点库。
- C++ REST SDK: C++ REST SDK(以前称为Casablanca)。
- Restbed: C++ 11异步RESTful框架。
- Restinio: 只有头文件的C++ 14库,为您提供嵌入式HTTP / Websocket服务器。
- c-ares: 用于异步DNS请求的C库。
- cpp-httplib: 单文件的C++ 11 HTTP / HTTPS服务器库,只包含头文件。
- cpp-netlib: 高级网络编程的开源库集合。
- cpp-netlib/uri: C++的URI解析器/生成器库,与RFC 3986和RFC 3987兼容。
- cpr: 现代C++ HTTP请求库,具有简单但功能强大的接口。模仿Python Requests模块。
- curlcpp: CURL(libcurl)的面向对象C++封装器。
- DPDK: 用于快速打包处理的数据平面开发工具、库和驱动程序。
- Dyad.c: C的异步网络。
- ENet: 可靠的UDP网络库。
- evpp: 具有TCP / UDP / HTTP协议的C++高性能网络。
- H2O: 优化的HTTP服务器,支持HTTP / 1.x和HTTP / 2。它也可以用作库。
- HTTP Parser: C的http请求/响应解析器。
- KCP: 快速、可靠的ARQ协议,可帮助应用程序减少网络延迟。
- libcurl: 多协议文件传输库。
- libhttpserver: 用于创建嵌入式Rest HTTP服务器(以及更多)的C++库。
- Libmicrohttpd: GNU libmicrohttpd是一个小型C库,可以轻松地将HTTP服务器作为另一个应用程序的一部分运行。
- libpcap: 用于网络流量捕获的可移植C / C++库。
- libquic: 从Chromium的QUIC实现中提取的QUIC协议库。
- librdkafka: 用于C和C++的Apache Kafka客户端库。
- libwebsockets: 提供客户端和服务器库的轻量级纯C WebSocket实现。
- lwIP: 轻量级TCP / IP堆栈。
- Mongoose :非常轻量级的网络服务器。
- MQTT-C: 适用于嵌入式系统和类PC机的便携式MQTT C客户端。
- mTCP: 用于多核系统的高度可扩展的用户级TCP堆栈。
- Muduo: 用于Linux多线程服务器的C++非阻塞网络库。
- nghttp2: HTTP / 2 C库。
- Onion: C语言HTTP服务器库,其设计为轻量级,易使用。
- PF_RING™: 高速打包处理框架。
- PicoHTTPParser: 微小、原始、快速的HTTP请求/响应解析器。
- POCO: 用于构建网络和基于互联网应用程序的C++类库,可以运行在桌面,服务器,移动和嵌入式系统。
- Proxygen: Facebook的C++ HTTP库集合,包括易于使用的HTTP服务器。
- RakNet: 为游戏开发人员提供的跨平台的开源C++网络引擎。
- restclient-cpp: 用于C++的简单REST客户端。它包装libcurl用于HTTP请求。
- Seasocks: 具有WebSockets支持的简单、小型的C++嵌入式Web服务器。
- Silicon: 高性能、面向中间件的C++ 14 http Web框架。
- tlse: 单个C文件的TLS 1.2 / 1.3实现,使用tomcrypt作为加密库。
- Tufão: 基于Qt构建的C++异步Web框架。
- uriparser: 严格符合RFC 3986的URI解析和处理库。
- uWebSockets: µWS是最轻量级、高效和可伸缩的WebSocket和HTTP服务器的实现之一。
- WAFer: 基于C语言的超轻型软件平台,用于可扩展的服务器端和网络应用。为C程序员考虑了node.js。
- Wangle: 客户端/服务器应用程序框架,用于构建异步的、事件驱动的现代C++服务。
- wdt: 可嵌入式库(和命令行工具),旨在通过多个TCP路径尽可能快地在2个系统之间传输数据。
- WebSocket++: 基于C++/Boost Aiso的websocket 客户端/服务器库。
- PcapPlusPlus: 跨平台的C++网络嗅探以及数据包解析和构建的框架。
- ZeroMQ: 高速,模块化的异步通信库。
PDF
解析和处理PDF文档的库。
- libharu: 免费、跨平台、开源的软件库,用于生成PDF。
- litePDF: 创建和编辑PDF文档的库,它通过设备上下文使用GDI功能来绘制页面内容。
- MuPDF: 轻量级的PDF、XPS和电子书查看器。
- PoDoFo: 使用PDF文件格式的库。
- Poppler: 基于xpdf-3.0代码库的开源、多后端的PDF渲染库。
- Xpdf: Xpdf是一款免费的PDF查看器和工具包,包括文本提取器、图像转换器、HTML转换器等。
- DynaPDF: 易于使用的PDF生成库。
physique
动力学仿真引擎
- Box2D: 2D的游戏物理引擎。
- Bullet: 3D的游戏物理引擎。
- Chipmunk: 快速、轻量级的2D游戏物理库。
- LiquidFun: 2D的游戏物理引擎。
- Newton Dynamics: 用于物理环境实时仿真的集成解决方案。
- ODE: 开放动力学引擎-开源,高性能库,模拟刚体动力学。
- ofxBox2d: Box2D开源框架包装器。
- PhysX: Nvidia开发的开源的实时物理引擎中间件SDK,作为Nvidia GameWorks软件套件的一部分。
- Project Chrono: 开源的多物理场仿真引擎。
- Quantum++: 现代的C++ 11量子计算库。
- Simbody: 高性能C++多体动力学/物理库,模拟关节生物力学和机械系统,像车辆,机器人和人体骨骼。
- SOFA: SOFA是一个针对实时仿真的开源框架,其着重于医学仿真。
Cartographie
- Better Enums: 映射的枚举类型(字符串、迭代)。单个头文件。
- clReflect: 使用clang的C++映射。
- CPFG: 用于反射、回调和脚本绑定的C++ 03库。
- CPP-Reflection: 使用clang的C++映射。
- Magic Enum: 只包含头文件的的C++ 17库,为枚举类型(字符串、迭代)提供静态映射,可与任何枚举类型一起使用,无需任何宏或样板代码。
- magic_get: 类似std: : tuple的方法,用于用户定义类型,无需任何宏或样板代码。
- meta: C++的非侵入性且无宏的运行时映射系统,只包含头文件。
- Nameof: 只包含头文件的的C++ 17库,提供名称宏和函数以获取变量、类型、函数、宏和枚举的简单名称。
- Ponder: C++11的映射库。
- RTTR: C++11的映射库。
- visit_struct: C++中用于结构域映射的微型库。
正则表达式
- CppVerbalExpressions: C++正则表达式专家。
- CTRE: 编译时PCRE(几乎)兼容的正则表达式匹配器。
- Hyperscan: Hyperscan是Intel的高性能、多种正则表达式匹配库,提供大量正则表达式(多达数万个)的同时匹配,通常在DPI库堆栈中使用。
- Oniguruma: 现代且灵活的正则表达式库,支持多种字符编码。
- PCRE: 受Perl中正则表达式功能启发的正则表达式C库。
- PIRE: Yandex的Perl不兼容正则表达式库,可以非常快(超过400 MB / s)。
- RE2: 使用自动机理论、通过有限状态机进行的正则表达式软件库。
- SLRE: 适用于C / C++的超轻正则表达式引擎。
- sregex: 基于NFA / DFA的Perl兼容的正则表达式引擎库,不可回溯,可与大型数据流进行匹配。
Robotique
- MOOS-IvP: 一组开源C++模块,提供机器人平台的自主权,尤其是自主的海洋车辆。
- MRPT: 移动机器人编程工具包。
- PCL: 点云库是一个独立的,大规模的开放项目,用于2D/3D图像和点云处理。
- Robotics Library (RL): 一个独立的C++库,包括机器人动力学,运动规划和控制。
- RobWork: 一组C++库的集合,用于机器人系统的仿真和控制。
- ROS: 机器人操作系统,提供了一些库和工具帮助软件开发人员创建机器人应用程序。
科学计算
- AMGCL: 只包含头文件的C++库,用于解决具有代数多重网格的大型稀疏线性系统。
- FFTW: 用一维或者多维计算DFT的C语言库。
- GSL: GNU科学库。
- TileDB: 快速密集和稀疏多维数组的DBMS。
- Trilinos: 高性能的PDE解算器。
- Torch: 科学的计算框架,广泛支持将GPU放在首位的机器学习算法。
scénario
- AngelScript: AngelScript是一种面向游戏的解释/编译脚本语言。
- Boost.Python: 可实现C++和Python编程语言之间的无缝互操作性的C++库。
- cppimport: 直接从Python导入C++文件!
- CppSharp: 用于将C / C++ API融合到高级语言中的工具和库。
- ChaiScript: 用于C++的易于使用的嵌入式脚本语言。
- ctypes.sh: bash的外部函数接口。
- Cython: Cython是用于Python编程语言和扩展的Cython编程语言(基于Pyrex)的优化静态编译器。它使得为Python编写C扩展就像Python本身一样容易。
- djinni: 生成跨语言类型声明和接口绑定的工具。
- Duktape: 具有紧凑脚本的嵌入式Javascript引擎。
- JavaCpp: Java和本机C++之间缺少的桥梁。
- libffi: 可移植的外部功能接口库。
- Lua: 用于配置文件和基本应用程序脚本的小型快速脚本引擎。
- LuaBridge: 轻量级、无依赖的库,用于将Lua绑定到C++。
- luacxx: 用于创建Lua绑定的C++ 11 API。
- nbind: 神奇的头文件,使您的C++库可从JavaScript进行访问。
- PHP-CPP: 使用C++构建PHP扩展的库。
- pybind11: C++ 11和Python之间的无缝可操作性。
- SIP: 用于Python v2和v3的C或C++绑定生成器。
- sol2: 具有高级功能和一流性能的C++ <-> Lua API封装器。
- SWIG: 一个可以让你的C++代码链接到JavaScript,Perl,PHP,Python,Tcl和Ruby的包装器/接口生成器。
- V7: 嵌入式的JavaScript 引擎。
- V8: 谷歌的快速JavaScript引擎,可以被嵌入到任何C++应用程序中。
- ChakraCore: Microsoft的JavaScript引擎,可以嵌入到nodejs中。
序列化
- Bitsery: 只包含头文件的C++二进制序列化库。
- Bond: 用于处理模式化数据的开源、跨平台框架。
- Boost.Serialization: Boost序列化库。
- Cap'n Proto: 快速数据交换格式和RPC系统。
- cereal: C++11 序列化库。
- cppcodec: 只包含头文件的C++ 11库,具有一致、灵活的API来编码/解码base64,base32和hex。
- FlatBuffers: 内存高效的序列化库。
- MessagePack: C/C++的高效二进制序列化库,例如JSON。
- mrpt-serialization: 已版本控制的二进制或文本格式的序列化。
- nanopb: ANSI C中的小型代码大小的协议缓冲区实现。
- protobuf: 协议缓冲,谷歌的数据交换格式。
- protobuf-c: C语言的协议缓冲实现。
- SimpleBinaryEncoding: 用于低延迟应用程序的对二进制格式的应用程序信息的编码和解码。
- upb: C中的小型静态库实现。
- YAS: 非常快的序列化库,支持二进制/文本/ JSON格式。
Trier
- pdqsort: 破坏模式的快速排序。
- Timsort: 模板化的稳定排序功能,其性能优于基于快速排序的算法(包括std: : sort),用于反向或半排序数据。
vidéo
- libvpx: VP8/VP9编码解码SDK。
- FFmpeg: 一个完整的,跨平台的解决方案,用于记录,转换视频和音频流。
- libde265: 开放的h.265视频编解码器的实现。
- x265: 开放的H.265视频编解码器实现。
- OpenH264: 开源H.364 编解码器。
- Theora: 免费开源的视频压缩格式。
- Vireo: Twitter的轻量级、多功能的视频处理库。
虚拟机
- CarpVM: C中有趣的VM,让我们一起来看看这个。
- MicroPython: 旨在实现单片机上Python3.x的实现。
- TinyVM: 用纯粹的ANSI C编写的小型,快速,轻量级的虚拟机。
Web应用框架
- Civetweb: 提供易于使用,强大的,C/C++嵌入式Web服务器,带有可选的CGI,SSL和Lua支持。
- C++ REST SDK: 使用现代异步C++ API设计、以本机代码进行基于云的客户端-服务器通信的Microsoft项目。
- CppCMS: 免费高性能的Web开发框架(不是CMS).。
- Crow: 一个C++微型web框架(灵感来自于Python Flask)。
- Cutelyst: 在Qt上构建的C++ Web框架,使用Catalyst(Perl)框架的简单方法。
- Drogon: 基于C++ 14/17的高性能HTTP应用程序框架。
- facil.io: 事件型、高性能的C Web框架,支持HTTP、WebSocket、SSE等。
- Kore: 使用C语言开发的用于web应用程序的超快速和灵活的web服务器/框架。
- libOnion: 轻量级的库,帮助你使用C编程语言创建web服务器。
- lwan: 实验性、可扩展的高性能HTTP服务器。
- oat++: 轻量、零依赖的框架,可创建高性能的Web服务。
- Pistache: Pistache是一个用纯C++ 11编写的C++ REST框架,没有外部依赖性。
- QDjango: 使用C++编写的,基于Qt库的web框架,试图效仿Django API,因此得此名。
- TreeFrog Framework: 基于C++和Qt的高速、全栈的Web应用程序框架,支持HTTP和WebSocket协议(带有O / R映射)。
- Wt: 开发Web应用的C++库。
XML
XML就是个垃圾,xml的解析很烦人,对于计算机它也是个灾难。这种糟糕的东西完全没有存在的理由了。-Linus Torvalds
- Boost.PropertyTree: 属性树解析器/生成器,可用于解析XML / JSON / INI / Info文件。
- Expat: 用C语言编写的xml解析库。
- Libxml2: Gnome的xml C解析器和工具包。
- libxml++: C++的xml解析器。
- Mini-XML: 用ANSI C编写的小型XML解析库。
- PugiXML: 用于C++的,支持XPath的轻量级,简单快速的XML解析器。
- RapidXml: 试图创建最快速的XML解析器,同时保持易用性,可移植性和合理的W3C兼容性。
- TinyXML: 简单小型的C++XML解析器,可以很容易地集成到其它项目中。
- TinyXML2: 简单快速的C++CML解析器,可以很容易集成到其它项目中。
- TinyXML++: TinyXML的一个全新的接口,使用了C++的许多许多优势,模板,异常和更好的异常处理。
- Xerces-C++: 用可移植的C++的子集编写的XML验证解析器。
多项混杂
一些有用的库或者工具,但是不适合上面的分类,或者还没有分类。
- access_profiler: 用于计算对c ++程序中成员变量的访问的工具。
- American fuzzy lop: aka afl-fuzz-疯狂的模糊测试工具,可在给定时间和最少示例输入的情况下自动发现错误。
- Better String: C字符串库的替代方法,它功能更强大,并且没有缓冲区溢出超限问题。还包括C++封装器。
- Boost.Signals: 托管信号和插槽系统的实现。
- CPPItertools: 受Python内建函数和itertools库启发的基于范围的循环附加组件。
- DynaMix: 允许您在运行时组成和修改对象的库。
- {fmt}: 小型、安全、快速的C++格式化库。
- FastFormat: 受log4j和Pantheios启发的快速、安全的C++格式化。
- C++ Format: C++的小型,安全和快速格式化库。
- casacore: 从aips++ 派生的一系列C++核心库。
- QtVerbalExpressions: 该Qt库基于C++ VerbalExpressions库。
- cxx-prettyprint: 用于C++容器的打印库。
- icecream-cpp: 用于调试目的的小型打印库。
- gcc-poison: 帮助开发人员禁止应用程序中的不安全的C/C++函数的简单的头文件。
- Kangaru: 用于C++ 11和C++ 14的依赖注入容器。
- Klib: 通用算法和数据结构的小型、轻量级实现。
- libsigc++: 用于标准C++的类型安全的回调系统。
- googlemock: 编写和使用C++模拟类的库。
- HTTP Parser: C的http请求/响应解析器。
- libcpuid: 用于x86 CPU检测盒特征提取的小型C库。
- libevil: 许可证管理器
- libnih: C函数和结构的轻量级库。
- libusb: 允许移动访问USB设备的通用USB库。
- Mach7: C++的模式匹配库。
- mio: 用于内存映射文件IO的跨平台C++ 11库,只包含头文件。
- PEGTL: 解析表达语法模板库。
- PCRE: 正则表达式C库,灵感来自于Perl中正则表达式的功能。
- Remote Call Framework: C++的进程间通信框架。
- Scintilla: 开源的代码编辑控件。
- Serial Communication Library: C++语言编写的跨平台,串口库。
- SDS: C的简单动态字符串库。
- semver.c: semver解析器,在ANSI C中呈现。
- Serial Communication Library: 跨平台,用C++编写的串行端口库。
- sigslot: C++信号/插槽库。
- SimpleSignal: 高性能C++ 11信号。
- Stage: 移动机器人模拟器。
- stdman: 格式化的C++ 11/14 stdlib手册页(来自cppreference)。
- stb: 一系列用于C / C++的单文件库。
- StrTk: 由高性能字符串处理例程组成的C++库。
- Tulip Indicators: 超过100种财务技术分析指标的C库。
- ub-canaries: 一组C / C++程序,它们试图使编译器开发未定义的行为。
- value-category-cheatsheet: 用于lvalue、rvalue等的PDF快捷键管理。
- VarTypes: C++/Qt4功能丰富,面向对象的管理变量的框架。
- ZBar: '条形码扫描器'库,可以扫描照片,图片和视频流中的条形码,并返回结果。
- ZXing: 用Java实现的开源、多格式1D / 2D条码图像处理库,带有其他语言的端口。
- pprint: 适用于现代C++的Pretty Printer。
logiciel
用于创建开发环境的软件
Compilateur
C/C++编译器列表
- 8cc: 小型C编译器。
- c: 一次编译并执行C“脚本”!
- Clang: LLVM的C编译器,支持C++ 11/14 / 1z C11,由LLVM团队开发。
- GCC: GNU编译器集合,支持C++ 11/14 / 1z C11和OpenMP。
- PCC: 非常老的C编译器,支持C99。
- Intel C++ Compiler: 由英特尔公司开发。
- LLVM: 模块化和可重用编译器和工具链技术的集合。
- Microsoft Visual C++: MSVC,由微软公司开发。
- Open WatCom: Watcom,C,C++和Fortran交叉编译器和工具。
- Oracle Solaris Studio: 适用于SPARC和x86的C、C++和Fortran编译器,支持C++ 11 ,在Linux和Solaris上可用。
- TCC: 轻量级的C语言编译器。
在线编译器
在线C/C++编译器列表
- codepad: 在线编译器/解释器,一个简单的协作工具
- coliru: 在线编译器/ shell,支持各种C++编译器。
- Compiler Explorer: 具有编译输出的交互式编译器。
- CompileOnline: 在Linux上在线编译和执行C++。
- Ideone: 在线编译器和调试工具,可编译源代码并以60多种编程语言在线执行。
- repl.it: 针对教育者、学习者和开发人员的功能强大而简单的工具和平台。
- Rextester: 在线编译器,提供几个编译器(Clang,GCC,MSVC)和几个编辑器。
- Try It Online: TIO是一系列在线解释器,可用于越来越多的实用和休闲的编程语言。
- Wandbox: 具有Boost的在线Clang / GCC编译器。
- paiza.io: 具有多个文件支持功能、Github(gist)集成和协作编辑的在线C / C++编译器。
调试器
C/C++调试器列表
- Comparison of debuggers: 来自维基百科的调试器列表。
- GDB: GNU调试器。
- LLDB: LLDB调试器。
- Metashell: 交互式模板元程序设计,其中包括MDB metadebugger。
- Valgrind: 内存调试,内存泄露检测,性能分析工具。
- x64dbg: Windows的开源x64 / x32调试器。
集成开发环境
C/C++集成开发环境列表
- Anjuta DevStudio: GNOME IDE。
- AppCode: 构建与JetBrains' IntelliJ IDEA 平台上的用于Objective-C,C,C++,Java和Java开发的集成开发环境。
- Cevelop: 基于Eclipse CDT的跨平台C和C++ IDE,带有其他插件。
- CLion: 来自JetBrains的跨平台的C/C++的集成开发环境。
- Code::Blocks: 免费C,C++和Fortran的集成开发环境。
- CodeLite: 另一个跨平台的免费的C/C++集成开发环境。
- color_coded: 用于基于libclang的vim插件。
- Dev-C++: 可移植的C/C++/C++11集成开发环境。
- Eclipse CDT: 基于Eclipse平台的功能齐全的C和C++集成开发环境。
- Geany: 轻量级的快速,跨平台的集成开发环境。
- IBM VisualAge: 来自IBM的家庭计算机集成开发环境。
- Irony-mode: 由libclang驱动的用于Emacs的C/C++微模式。
- KDevelop: 免费开源集成开发环境。
- Microsoft Visual Studio: 来自微软的集成开发环境。
- Microsoft Visual Studio Code: Microsoft提供的开源IDE。
- NetBeans: 主要用于Java开发的的集成开发环境,也支持其他语言,尤其是PHP,C/C++和HTML5。
- Qt Creator: 跨平台的C++,Javascript和QML集成开发环境,也是Qt SDK的一部分。
- rtags: C/C++的客户端服务器索引,用于跟基于clang的emacs的集成。
- Xcode: 由苹果公司开发。
- YouCompleteMe: 一个用于Vim的根据你敲的代码快速模糊搜索并进行代码补全的引擎。
- cquery: 用于vscode,emacs,vim等的C++代码完成引擎。
构建系统
- Bazel: Google提供的多语言、快速且可扩展的构建系统。
- Bear: 用于为clang工具生成编译数据库的工具。
- Buck: 用Java编写的快速构建系统,可鼓励在多种平台和语言(包括在Facebook开发和使用的C++)上创建小型、可重用模块。
- clib: C语言的软件包管理器。
- Biicode: 基于文件的简单依赖管理器。
- CMake: 跨平台的免费开源软件用于管理软件使用独立编译的方法进行构建的过程。
- Cget: Cmake软件包检索。
- Conan: C / C++程序包管理器,开源的。
- CPM: 基于CMake和Git的C++包管理器。
- FASTBuild: 高性能,开源的构建系统,支持高度可扩展性的编译,缓冲和网络分布。
- Hunter: CMake驱动的C++跨平台软件包管理器。
- MesonBuild: 开源构建系统,它意味着不仅要非常快,而且更重要的是要尽可能地方便用户使用。
- Ninja: 专注于速度的小型构建系统。
- Scons: 使用Python scipt 配置的软件构建工具。
- Sconsolidator: 用于Eclipse CDT的Scons构建系统集成。
- Spack: 灵活的软件包管理器,支持多个版本、配置、平台和编译器。
- SW: 跨平台的C++(和其他语言)构建系统和程序包管理器,其中包含许多可用程序包。
- tundra: 高性能的代码构建系统,甚至对于非常大型的软件项目,也能提供最好的增量构建次数。
- tup: 基于文件的构建系统,用于后台监控变化的文件。
- Premake: 配置有Lua脚本的工具,可以在Windows、Mac OS X和Linux上为Visual Studio、GNU Make、Xcode、Code::Blocks等生成项目文件。
- Vcpkg: Windows,Linux和MacOS的C++库管理器。
- waf: 用于配置、编译和安装应用程序的基于Python的框架。
- XMake: 基于Lua的C / C++的跨平台构建实用程序。
静态代码分析
提高质量,减少瑕疵的代码分析工具列表
- Cppcheck: 静态C/C++代码分析工具
- CppDepend: 通过分析和可视化代码依赖关系,定义设计规则,进行影响分析以及比较不同版本的代码,简化了对复杂C / C++代码库的管理。
- cpplint: 遵循Google C++样式指南的C++样式检查器。
- PVS-Studio: 用C、C++和C#编写的在程序源代码中进行bug检测的工具。
- cpp-dependencies: 检查C++ #include依赖关系的工具(以.dot格式创建的依赖关系图)。
- include-what-you-use: 使用clang进行代码分析的工具,可以#include在C和C++文件中。
- Infer: 用于Java、C和Objective-C的静态分析器。
- OCLint: 用于C、C++和Objective-C的静态源代码分析工具,用于提高质量,减少瑕疵。
- Clang Static Analyzer: 查找C、C++和Objective-C程序bug的源代码分析工具。
- Linticator: Pc-/FlexeLint的Eclipse CDT集成。
- IKOS: 基于抽象解释理论的C / C++静态分析器。
- List of tools for static code analysis: 来自维基百科的静态代码分析工具列表。
编码样式工具
- Artistic Style: 格式化C / C++ / C#/ Obj-C / Java代码的工具。也称为astyle。
- ClangFormat: 格式化C / C++ / Obj-C代码的工具。
- Clang-Tidy: 基于Clang的C++ linter工具。
- EditorConfig: EditorConfig帮助在不同的编辑器和IDE之间维护一致的编码样式
- Uncrustify: 代码美化器。