C ++ Ressourcensammlung chinesische Version
Awesome-CPP ist eine Liste von C ++-Ressourcen, die fffaraz eingeleitet und verwaltet wurden, einschließlich: Standardbibliothek, Webanwendungsframework, künstliche Intelligenz, Datenbank, Bildverarbeitung, maschinelles Lernen, Protokollierung, Codeanalyse usw.
4400 Star chinesische Version wird von开源前哨und dem offiziellen Account -Team von WeChat CPP开发者gepflegt.
Teilnehmer an diesem Projekt
Betreuer:开源前哨und CPP开发者Wechat Public Account Team. "Open Source Outpost" wird regelmäßig die neuesten, interessanten und beliebten Open -Source -Projekte in der Zhihu -Spalte teilen. Jedes Projekt hat detaillierte Einführungen und Beispiele. Portal: https://www.zhihu.com/column/c_1317124962785062912
Mitwirkende: Cccookieeee, Jingerjoe, Yunzhongyou, Bingbin, Juliesand, Zzmarquis, Yan Minhui, Tangyouhua, Shenmian
Hinweis: Die Liste ist nicht eingestuft und wird von Zeit zu Zeit aktualisiert
Inhaltsverzeichnis
- Standardbibliothek
- rahmen
- Ai
- Asynchrone Ereignisschleife
- Audio
- Ökologie
- Kompression
- Parallelität
- Container
- Kryptographie
- Datenbank
- debuggen
- Game Engine
- Grafische Benutzeroberfläche
- Grafik
- Bildverarbeitung
- Internationalisierung
- JSON
- Protokoll
- Maschinelles Lernen
- Mathe
- Multimedia
- Netzwerk
- Physik
- Robotik
- Wissenschaftliches Computing
- Skript
- Serialisierung
- Video
- Virtuelle Maschine
- Webanwendungs -Framework
- Xml
- Mehrfach gemischt
- Software
- Compiler
- Online -Compiler
- Debugger
- Integrierte Entwicklungsumgebung
- Bauen Sie das System auf
- Statische Codeanalyse
Standardbibliothek
Die C ++ - Standardbibliothek umfasst STL -Container, Algorithmen und Funktionen.
- C ++ Standardbibliothek: Ist eine Sammlung einer Reihe von Klassen und Funktionen, die in einer Kernsprache geschrieben wurde, und ist auch Teil der eigenen Standards von C ++ ISO.
- Standard -Vorlagenbibliothek: Standard -Vorlagenbibliothek.
- C POSIX -Bibliothek: Die C -Standardbibliothekspezifikation für POSIX -System.
- ISO C ++ Standards Ausschuss: C ++ Standards Ausschuss.
- Die GNU C -Bibliothek: Der Zweck dieses Handbuchs ist es, Ihnen zu zeigen, wie Sie die GNU C -Bibliothek verwenden.
rahmen
C ++ Allgemeiner Framework und Bibliothek
- Abseil-CPP: Abseil C ++ Allgemeine Bibliothek.
- Apache C ++ Standardbibliothek: ist eine Sammlung von Algorithmen, Containern, Iteratoren und anderen Grundkomponenten.
- APR: Apache Tragbare Laufzeitbibliothek. Eine weitere plattformübergreifende Bibliothek.
- ASL: Die Adobe Source -Code -Bibliothek bietet Peer Review und tragbare C ++ - Quellcode -Bibliothek.
- Boost: Eine Sammlung einer großen Anzahl allgemeiner C ++-Bibliotheken.
- BDE: Aus der Entwicklungsumgebung von Bloomberg Information Lab.
- Cinder: Bietet eine Open -Source -Entwicklungsgemeinschaft mit professioneller Qualität kreativer Codierung.
- CO - C ++ Basic Library, einschließlich Coroutine -Bibliothek in Go -Style, Protokollbibliothek, JSON -Bibliothek, RPC -Framework und anderen grundlegenden Komponenten.
- CXXOMFORT: Eine leichte Bibliothek, die nur Header -Dateien enthält, portiert einige neue Funktionen von C ++ 11 bis C ++ 03.
- DLIB: Eine universelle plattformübergreifende C ++ -Bibliothek, die mit vertraglicher Programmierung und moderner C ++-Technologie entwickelt wurde.
- EASTL: EA-STL öffentlicher Teil.
- ETL: Bibliothek für Embedded -Vorlagen.
- FFEAD-CPP: Framework für Enterprise Application Development.
- Torheit: Eine von Facebook entwickelte und verwendete Open -Source -C ++ - Bibliothek.
- FunktionAllus: C ++ Funktionsprogrammierbibliothek, schriftliche und leicht zu lesende C ++-Code.
- GLIB: GLIB bietet Kerncodeblöcke für Bibliotheken und Anwendungen in C.
- JUCE: Eine All-Inclusive-C ++-Klassenbibliothek zur Entwicklung plattformübergreifender Software.
- Kigs-Framework: C ++ Freie und Open Source Modular, Multifunktional, plattformübergreifend rAD-Framework.
- Libphenom: Ein Veranstaltungsrahmen zum Aufbau von Hochleistungs- und hochskalierbaren Systemen.
- Libsourcey: C ++ 11 Evented IO für Echtzeit-Video-Streaming- und Hochleistungsnetzwerkanwendungen.
- Libu: Eine Multi-Plattform-Toolbibliothek in C-Sprache.
- Loki: Das Design der C ++ - Bibliothek, einschließlich der Implementierung gemeinsamer Entwurfsmuster und Redewendungen.
- MILI: Eine kleine C ++ - Bibliothek mit nur Header -Dateien.
- OpenFrameWorks: Entwickeln Sie C ++ Toolkits für die kreative Codierung.
- Qt: plattformübergreifende Anwendungs- und Benutzeroberfläche Framework.
- Grund: Ein plattformübergreifendes Framework, mit dem Entwickler Java, .NET und Python leichter verwenden und gleichzeitig ihre Bedürfnisse nach C ++-Leistung und Vorteilen erfüllen können.
- Wurzel: Eine Reihe von objektorientierten Frameworks mit allen Funktionen, die große Datenmengen sehr effizient verarbeiten und analysieren können und von europäischen Atomergieforschungsinstitutionen verwendet werden.
- STLPORT: Ist eine repräsentative Version von STL.
- STXXL: Eine Standard -Vorlagenbibliothek für zusätzliche große Datensätze.
- Tbox: Multi-Plattform-C-Bibliothek ähnlich wie Glib.
- Ultimate ++: C ++ plattformübergreifend schnelles Anwendungsentwicklungsgerüst.
- Ustl: Kleine STL -Bibliothek.
- Windows -Vorlagenbibliothek: Eine C ++ - Bibliothek zur Entwicklung von Windows -Anwendungen und UI -Komponenten.
- YOM2: Schnell, orthogonal, offene Multi-Methoden, ersetzen YOM11.
Ai
- AnnetgPGPU: Eine GPU (CUDA) -basierte künstliche neuronale Netzwerkbibliothek.
- BTSK: Game Behaviour Tree Launcher Tool.
- Entwicklungsobjekte: Eine vorlagenbasierte ANSI C ++ Evolution Computing-Bibliothek kann Ihnen dabei helfen, Ihren eigenen Algorithmus für zufällige Optimierungsalgorithmus zu schreiben.
- Frugal-tiefe: C ++ -Bibliothek mit Kerasmodell, nur Header-Dateien.
- Genann: Einfaches neuronales Netzwerk C -Bibliothek.
- MXNET: Leichtes, tragbares, flexibles verteiltes/mobiles Deep-Lernen mit dynamischem, mutationsbewussten Datenflussmanagementplaner. Geeignet für Python, R, Julia, Scala, Go, JavaScript und mehr.
- Pytorch: Eine Python -Bibliothek mit leistungsstarker CPU -Beschleunigung, einschließlich Tensoren und dynamischen neuronalen Netzwerken.
- Umleitung/Umweg: (3D) Navigationsgittergenerator und Pfadsuche, hauptsächlich in Spielen verwendet.
- TensorFlow: Eine Open -Source -Software -Bibliothek, die Datenflussdiagramme für numerische Berechnungen verwendet.
- CNTK: Microsoft Cognitive Toolkit (CNTK), eine Open -Source -Bibliothek mit Deep -Learning -Tools.
- Tiny-DNN: Abhängig-freie Deep-Learn-Framework in C ++ 11, mit nur Header-Dateien.
- Veles: Eine verteilte Plattform für die Entwicklung der Entwicklung von Deep Learning Application.
- Kaldi: Spracherkennungs -Toolkit.
Asynchrone Ereignisschleife
- ASIO: Eine plattformübergreifende C ++-Bibliothek für Netzwerke und zugrunde liegende E/A-Programmierung, wobei moderne C ++-Methoden verwendet werden, um Entwicklern ein konsistentes asynchrones Modell zu bieten.
- Boost.asio: Eine plattformübergreifende C ++-Bibliothek für die Networking und die zugrunde liegende E/A-Programmierung.
- C ++ Actor Framework: Eine Open -Source -Implementierung des Akteurmodells in C ++.
- Libev: Hochleistungs-Hochleistungszeitschleife, leicht imitierter Libvent, hat aber keine Einschränkungen mehr wie Libvent und behebt auch einige seiner Fehler.
- libevent: Event -Benachrichtigungsbibliothek.
- LIBHV: Eine plattformübergreifende Ereignisschleifebibliothek.
- libuv: plattform asynchrone i/o.
- Promise-CPP: Eine Bibliothek, die den Versprechen/A+ Standard implementiert, nur Header-Dateien.
- UVW: Libuvs C ++ -Kapitän.
Audio
Audio, Sound, Musik, digitale Musikbibliothek
- AudioFile: Eine einfache C ++ - Bibliothek zum Lesen und Schreiben von Audiodateien.
- FMOD: Einfach zu verwendende plattformübergreifende Audio-Engine- und Spielerstellungstools für Audioinhalte.
- KFR: Schnell, modernes C ++ DSP -Framework, FFT, FIR/IIR -Filter und Probenrate -Umwandlung.
- Lame: Lame ist ein hochwertiger MPEG Audio Third Layer (MP3) -Codierer.
- libsndFile: C ++ eingekapselte C -Bibliothek, verwendet zum Lesen und Schreiben von Dateien, die über die Standardbibliothekschnittstelle abgetastete Sounds enthalten.
- libSoundio: Eine C-Bibliothek für plattformübergreifende Echtzeit-Audioeingabe und -ausgabe.
- Maximilian: C ++ Audio- und Musik -digitale Signalverarbeitungsbibliothek.
- Openal: Open Source Audio Library --- plattformübergreifende Audio-API.
- Miniaudio: Eine Bibliothek für eine Ein-Datei-Audio-Wiedergabe und -aufnahme.
- OPUS: Ein vollständig offener, lizenzfreier, sehr universeller Audio-Codec.
- Portaudio: kostenlose, plattformübergreifende Open-Source-Audio-E/A-Bibliothek.
- SELA: Simplie Lustless Audio.
- Soloud: Einfache und tragbare Gaming -Audio -Engine.
- Speex: Kostenloser Codec, von Opus weggeworfen.
- Tonic: C ++ Einfach zu bedienende und effiziente Audio -Synthese.
- Vorbis: Ogg Vorbis ist ein völlig offenes, nicht proprietäres, lizenzfreies universelles, komprimiertes Audioformat.
- Minimp3: Public Domain, Clean Room Implementierung MP3 -Decoder, nur Header -Dateien.
- Verovio: Eine schnelle und leichte Bibliothek mit Musiksymbolgravuren.
- WAV2Letter ++: Public Domain, eine schnelle Open -Source -Sprachverarbeitungsbibliothek, die vollständig in C ++ geschrieben wurde, unter Verwendung der ArrayFire Tensor Library und der Taschenlampen -maschinellen Lernbibliothek, um eine maximale Effizienz zu erreichen.
Ökologie
Bioinformatik, Genomik und Biotechnologie
BIOC ++: C ++ Computerbibliothek für Bioinformatik.
Keuschheit: Open Source C ++ -Bibliothek zur Computersimulation mathematischer Modelle, die für Physiologie und Biologie entwickelt wurden.
libSquence: Eine C ++ - Bibliothek zur Darstellung und Analyse von Populationsgenetischen Daten.
SEQAN: Algorithmen und Datenstrukturen, die sich auf die biologische Datensequenzanalyse konzentrieren.
VCFLIB: Eine C ++ - Bibliothek zum Analysieren und Verarbeiten von VCF -Dateien.
WHAM: Wenden Sie assoziative Tests direkt auf Genstrukturmutationen in BAM -Dateien an.
Bitstream
- Jech/DHT: Eine von C. implementierte Bitstream -verteilte Hash -Tabellenbibliothek
- libtorrent (auch bekannt als Libtorrent-RasterBar): eine effiziente und funktionale C ++-Bitstream-Implementierung.
- Libtorrent (auch bekannt als Libtorrent-Rakshasa): Bitstream Library.
- Libutp: Utorrent Transport Protocol Library.
Chemikalie
Chemie, Geochemie, Biochemie
- D-Säle: Eine molekulare Dynamik-Orbitalanalyse-Engine mit der C ++-und der LUA-Implementierung von NIX, die die Abkürzung für die aufgeschobene strukturelle Analyse von molekularen Simulationen ist.
- GROMACS: Parallele molekulare Dynamik -Implementierung von Passingnachrichten.
- Reaktoro: Ein rechnerisches Rahmen für die Modellierung chemischer Reaktionssysteme in C ++ und Python.
- LAMMPS: Klassischer molekularer Dynamikcode für die Materialmodellierung, es ist das Akronym für einen groß angelegten Atom-/Molekül massiven parallelen Simulator.
Befehlszeilenschnittstelle
Konsolen-/Terminalbenutzerschnittstelle, Befehlszeilenschnittstelle
- Argh!: Ein minimalistischer Parameter -Handler, der nur Header -Dateien.
- Taywee / Args: Einfache C ++ Parameter Parsing Library mit nur Header -Dateien.
- Boost.program_options: Holen Sie sich die Bibliothek für Programmauswahlen über gängige Methoden wie Befehlszeilen und Konfigurationsdateien.
- Clara: Einfach zu bedienende, komponierbare Befehlszeile Parser für C ++ 11 und später.
- CLI: plattformübergreifende C ++ 14 Bibliothek für interaktive Befehlszeilenschnittstellen mit nur Header-Dateien.
- CLI11: Einzel- oder Multi-File-C ++ 11-Bibliothek für einfache und erweiterte CLI-Parsen mit nur Header-Dateien.
- JARRO2783/CXXOPTS: Leichtes C ++ - Befehlszeilenoptionen Parser.
- DOCOPT.CPP: Bibliothek, die Optionen generiert, die aus Dokumentzeichenfolgen analysiert werden.
- GFLAGS: Das Befehlszeilen -Flag -Modul von C ++.
- Indikatoren: Aktivitätsindikatoren für moderne C ++.
- Leinenoise: Eine kleine unabhängige Wahl für Readline und Libedit.
- Leinenoise-NG: Ein kleiner tragbarer GNU-Readline-Ersatz für Linux, Windows und MacOS, der in der Lage ist, UTF-8-Zeichen zu bearbeiten.
- LYRA: Einfach zu bedienender, komponierbarer Befehlszeilen -Parser für C ++ 11 und später.
- NCURSSE: Terminal User Interface.
- PDCURSS: Eine öffentlich zugängliche Bibliothek mit Quellcode und vorkompilierten Bibliotheken.
- Replxx: Unterstützt UTF-8, Syntax-Hervorhebung, schnelle Readline- und LIBDIT-Austausch, die auf Unix und Windows funktionieren kann.
- Tabulat: Ein modernes C ++ Tischwerkzeug.
- TCLAP: Eine reife, stabile und vielfältige Bibliothek zum Definieren und Zugriff auf Befehlszeilenparameter in ANSI C ++.
- Termbox: Eine C-Bibliothek zum Schreiben von textbasierten Benutzeroberflächen.
Kompression
Komprimierung und Archivbibliothek
- Bit7Z: C ++ statische Bibliothek, die eine einfache Schnittstelle mit 7-Zip-DLLs bietet.
- Brotli: Brotli -Komprimierungsformat, entwickelt von Google.
- BZIP2: Eine völlig kostenlose, kostenlose Patent- und hochwertige Datenkomprimierung.
- FinitestateStropy: Entropie -Codecs der neuen Generation: Finite -Status -Entropie und Huff ().
- PhysicsFs: Eine Bibliothek, die abstrakten Zugriff auf verschiedene Archive bietet, die hauptsächlich in Videospielen verwendet werden, und die Design -Inspiration wird teilweise aus dem Datei -Subsystem von Quake3 abgeleitet.
- KARCHIVE: Eine Bibliothek zum Erstellen, Lesen, Schreiben und Manipulieren von Dateiarchiven wie ZIP und TAR.
- libarchive: Multi-Format-Archiv- und Komprimierungsbibliothek.
- LZ4: Sehr schneller Komprimierungsalgorithmus.
- LZFSE: LZFSE -Komprimierungsbibliothek und Befehlszeilen -Tools.
- LZHAM: Die Verlustkomprimierungsdatenbank ist das Komprimierungsverhältnis in der Nähe von LZMA, aber die Dekompressionsgeschwindigkeit ist viel schneller.
- LZMA: 7Z -Format Standard- und gemeinsame Komprimierungsmethode.
- LZMAT: Extrem schnell in Echtzeit verlustfreier Datenkomprimierungsbibliothek.
- Miniz: Einzel-C-Quelldatei, Kompakt-/Erweiterung der Komprimierungsbibliothek, mit der ZLIB-kompatiblen API, dem Lesen und Schreiben von ZIP-Archiv und der PNG-Schreibmethode.
- Minizip: ZLIBs neuester Fehlerfix, unterstützt die PKware -Festplatte, die AES -Verschlüsselung und die IO -Pufferung.
- SMAZ: Kleine Charakterkompressionsbibliothek.
- Snappy: Schnelle Komprimierung und Dekompression.
- ZLIB: Sehr kompakte Datenstromkomprimierungsbibliothek.
- ZLIB-NG: ZLIB für "nächste Generation" -Systeme, die Ersatz einiger wichtiger Optimierungen einbettet.
- ZSTD: ZStandard - Schneller Echtzeit -Komprimierungsalgorithmus. Entwickelt von Facebook.
- Zziplib: Bietet Leseberechtigungen für ZIP -Archive.
Parallelität
Gleichzeitige Ausführung und Multithreading
- Alpaka: Eine abstrakte Bibliothek für parallele Kernelbeschleunigung.
- Arrayfire: Allzweck-GPU-Bibliothek.
- Async ++: Ein leichtes paralleles Framework für C ++ 11, inspiriert von der Microsoft PPL -Bibliothek und dem N3428 C ++ Standardvorschlag.
- Boost.comPute: C ++ GPU Computing Library für OpenCL.
- Bolt: Eine C ++ - Vorlagenbibliothek optimiert für GPU.
- CK: Gleichzeitige Primitive, sichere Mechanismen zur Wiederherstellung des Gedächtnisses und nicht blockierende Datenstrukturen.
- ConcurrentQueue: C ++ 11's Fast Multi-Producer und Multi-Consumer Lock-Free Concurrent Wartee.
- CPP-Taskflow: Schnelles C ++ -Parallelprogrammieren mit Aufgabenabhängigkeiten.
- Cub: Cub bietet die neuesten wiederverwendbaren Softwarekomponenten für jede Ebene des CUDA -Programmiermodus.
- CUDA-API-Wrapper: Ein leichter moderner C ++ -Capator für die Laufzeit-API-Programmierung für CUDA-GPUs.
- Cupla: Führen Sie CUDA/C ++ API in OpenMPA, Threads, TBB ... über Alpaka aus.
- C ++ React: Reaktive Programmierbibliothek für C ++ 11.
- Fibertaskinglib: Eine aufgabenbasierte Multi-Thread-Bibliothek, die Aufgabendiagramme mit willkürlichen Abhängigkeiten unterstützt.
- HPX: Ein universelles C ++ -Rim -Laufzeitsystem für parallele verteilte Anwendungen jeder Größe.
- Intel Games Task Scheduler: Ein Aufgabenplanungsrahmen für die Anforderungen von Spieleentwicklern.
- Intel Parallele STL: Intel -Implementierung von C ++ 17 STL für C ++ 11 und später.
- Intel TBB: Intel Thread Building Modul.
- Junction: Eine C ++ - Bibliothek für gleichzeitige Datenstrukturen.
- Kokkos: Ein tragbares Programmiermodell für parallelen Betrieb und Speicherabstraktion.
- LIBCDS: Eine C ++ - Bibliothek für parallele Datenstrukturen.
- LIBCLSPH: OpenCL-basiertes GPU-beschleunigter SPH-Fluid-Simulationsbibliothek.
- Libmill: Einführung struktureller Parallelität in C.
- Libdispatch: Grand Central Dispatch (GCD), das von Apple entwickelt wurde, ist eine aufgaben parallele Technologie, die auf Thread -Pool -Muster basiert. Die Bibliothek Libdispatch bietet die Implementierung von GCD -Diensten.
- Libmill: Einführung in die Genauigkeit in C-Style in C.
- Marl: Marl ist ein Aufgabenplaner für gemischte Threads/Fasern, die in C ++ 11 geschrieben wurden.
- ModernNgpu: ModernNgpu ist eine Produktivitätsbibliothek für GPUs General Computing. Sie enthält nur C ++ - Header -Dateien für CUDA. Der einzigartige Wert dieser Bibliothek liegt in ihren Beschleunigungsprimitiven, die zur Lösung unregelmäßiger paralleler Probleme verwendet werden.
- NCCL: Optimierte Primitive für die kollektive Kommunikation mit Multi-GPU.
- OpenCL: Offener Standard für heterogene Systeme, die parallel programmiert sind.
- OpenMP: OpenMP -API.
- Sobjektizer: Ein ziemlich kleines C ++-Framework, das Schauspieler, Veröffentlichungssubscribe und CSP-Modi implementiert.
- Quanten: Ein leistungsstarkes C ++ Collaborative Scheduler -Framework, das auf der obersten Ebene von Boost :: Coroutines2 basiert.
- Raftlib: Raftlib C ++ Bibliothek, implementiert Stream/Data Stream-Parallelität über iostream-ähnliche C ++-Operatoren.
- ReaderWriterQueue: C ++ Schneller Einzelproduzent und Einzelverbraucher-Schlossfreie Warteschlange.
- STDGPU: Effiziente STL-ähnliche Datenstruktur bei GPU.
- Schub: Eine parallele Algorithmusbibliothek ähnlich der C ++ - Standard -Vorlagenbibliothek.
- Transwarp: Eine C ++ - Bibliothek für die Genauigkeit, nur Header -Dateien.
- VEXCL: C ++ Vektor Expressions -Vorlagenbibliothek für OpenCL/CUDA.
- Quanten: Ein leistungsstarkes C ++ Collaborative Scheduler -Framework, das auf der obersten Ebene von Boost :: Coroutines2 basiert.
- StAPL: C ++ Parallel Programmierframework für gemeinsame und verteilte Speicher parallele Computer.
Konfiguration
Konfigurationsdatei, INI -Datei
INIH: Ein einfacher .ini -Datei -Parser in C -Sprache, der für eingebettete Systeme sehr geeignet ist.
INIH: Die C ++ - Version von INIH, nur Header -Dateien.
unpasser: Ini -Datei Parser.
libConfig: C- und C ++ - Bibliotheken, die zur Behandlung strukturierter Konfigurationsdateien verwendet werden.
libConfuse: Cs kleine Konfigurationsdatei -Parsing -Bibliothek.
SimpleIni: Eine plattformübergreifende C ++-Bibliothek, die eine einfache API zum Lesen und Schreiben von INI-Konfigurationsdateien bietet.
TOML ++: Toml Parser und Stringer, geeignet für C ++ 17 und später mit nur Header -Dateien.
Container
- C ++ B-Tree: Eine Vorlagenbibliothek, die Befehlsspeicherbehälter basierend auf der B-Tree-Datenstruktur implementiert.
- Kolonie: ungeordnete "Bag" -Container, die bei stark modifizierter Form besser abschneiden als Standardbehälter. Gleichzeitig kann es immer einen dauerhaften Zeiger auf ein nicht unerstelliges Element aufrechterhalten, unabhängig von Insertion oder Löschen.
- Dynamic_bitset: C ++ 17 Dynamic Bitset Collection, nur Header -Dateien.
- Wald: Implementiert Vorlagenbibliotheken für AVL, binäre Suche, KD und Quadtree.
- HashMaps: Implementierung des offenen Adresshash -Tabellenalgorithmus in C ++.
- Hopscotch -Karte: Verwenden Sie den Hopscotch -Hash -Algorithmus, um eine schnelle Hash -Zuordnung für die Konfliktlösung mit nur Header -Dateien zu implementieren.
- LSHBox: Die C ++ - Toolbox für lokal sensitive Algorithmen (LSH) bietet mehrere häufige LSH -Algorithmen und kann auch Python und Matlab unterstützen.
- PGM-Index: Eine Datenstruktur, die Hunderte von Millionen von Element-Arrays schnell finden, Lead-Such- und Aktualisierung der Reihenfolge der Gradienten und nicht zu dem Raum im Vergleich zu herkömmlichen Indizes finden kann.
- PLF :: LISTE: STD :: List-Implementierung, das die Bereichsstiche löscht, um cache-freundliche Strukturen zu ermöglichen, was zu einer erheblich verbesserten Leistung führt.
- PLF :: Stack: Std :: Stack Containeradapter, der im Stack -Kontext eine bessere Leistung als jeder Standardcontainer hat.
- RING_SPAN LITE: Eine vereinfachte Implementierung von Ring_span von Arthur O'Dwyer, wie z. B. eine kreisförmige gepufferte Ansicht.
- Robin-Hood-Hashing: Eine schnelle, speichersparende Hash-Tabelle für C ++ 1, basierend auf dem Hashing-Algorithmus von Robin Hood.
- Robin-Map: Hash-Mapping und Hash-Set mit Robin Hood Hash-Algorithmus.
- Sparsepp: Schnell, speichersparende Hash-Mapping für C ++.
Kryptographie
Kryptographie- und Verschlüsselungsbibliothek
- BCRYPT: Ein plattformübergreifendes Dateiverschlüsselungstool, das auf alle unterstützten Betriebssysteme und -prozessoren portiert werden kann.
- BEECRYPT: Tragbare und schnelle Verschlüsselungsbibliothek.
- Botan: C ++ Verschlüsselungsbibliothek.
- Crypto ++: Eine kostenlose C ++ - Bibliothek für Verschlüsselungsschemata.
- DigESTPP: C ++ 11's Information Digest (Hash) -Bibliothek, nur Header -Dateien.
- GNUPG: Vollständige und kostenlose Implementierung des OpenPGP -Standards.
- GNUTLS: Eine sichere Kommunikationsbibliothek, die SSL-, TLS- und DTLS -Protokolle implementiert.
- Libgcrypt: Eine universelle Passwortbibliothek, die ursprünglich auf CNUPG -Code basiert.
- Libressl: Das kostenlose SSL/TLS -Protokoll gehört 2014 zu einem Zweig von OpenSSL.
- libsodium: NACI-basierte Verschlüsselungsbibliothek, hartnäckig und einfach zu bedienen.
- Libhydrogen: Eine leichte, sichere, benutzerfreundliche Verschlüsselungsbibliothek für eingeschränkte Umgebungen.
- Libtomcrypt: ein ziemlich umfassendes, modulares und tragbares Verschlüsselungs -Toolkit.
- MbedTLS: Eine offene, tragbare, einfach zu bedienende, lesbare, flexible SSL -Bibliothek, früher als Polarsl bekannt.
- Die zugrunde liegende Verschlüsselungsbibliothek von Nettle.
- OpenSSL: Eine robuste, kommerzielle, voll funktionsfähige Open -Source -Verschlüsselungsbibliothek.
- RETTER: Eine Sammlung von Kryptographie im Zusammenhang mit Hash -Funktionen, Kennwörtern, Tools, Bibliotheken und Materialien.
- S2N: Implementierung des TLS/SSL -Protokolls.
- SHA1COLLISIONDECTICEction: Ein Bibliotheks- und Befehlszeilen-Tool zum Erkennen von SHA-1-Konflikten in Dateien.
- Tink: Mehrsprachige, plattformübergreifende Bibliothek, die sichere, einfach zu bedienende und schwer zu missbräuchliche Verschlüsselungs-APIs bietet.
- Tiny AES in C: c kleine und mittel tragbare AES128/192/256.
- TEILIS: Eine Verschlüsselungsbibliothek für schmerzlose Datensicherheit, die symmetrische und asymmetrische Verschlüsselung für mobile und serverplattformen bietet, sichere Sockets mit Vorwärtsvertraulichkeit.
CSV
Bibliothek zum Parsen von CSV -Dateien (Comma Separated Value)
- CSV2: Schneller CSV -Parser für moderne C ++.
- Schneller C ++ CSV-Parser: Eine kleine, einfach zu bedienende und schnelle Bibliothek zum Lesen von CSV-Dateien, einschließlich nur Header-Dateien.
- Vince's CSV -Parser: schnell, eigenständig, Streaming C ++ 17 CSV -Parser mit optionaler Typumwandlung und Statistik.
Datenbank
Datenbanken, SQL -Server, ODBC -Treiber und Tools
- Hiberlite: C ++ Objekt Relational Mapping für SQLite3.
- Hiredis: Eine sehr einfache C -Client -Bibliothek für Redis -Datenbanken.
- LevelDB: Ein von Google geschriebenes schnelles Schlüsselwert-Repository, das eine geordnete Zuordnung von Zeichenschlüssel zu Stringwerten bietet.
- LMDB: Eingebetteter Schlüsselwertspeicher, der den vier Grundelementen der Datenbank entspricht.
- LMDB ++: C ++ 11 Enkapsator für LMDB -eingebettete Datenbanken.
- MongoDB C -Treiber: Cs MongoDB Client Library.
- MongoDB C ++ Treiber: C ++ Treiber für MongDB.
- MongoDB Libbson: BSON Utility Library.
- MySQL ++: Ein C ++ -Kapitator, der die C -API von MySQL zusammenfasst.
- NANODBC: Eine kleine C ++ - Wrapper für native CODBC -API.
- ODB: C ++ Open Source-, Plattform- und Cross-Database-Objekt-Relational Mapping-System (ORM).
- REDIS3M: HiredIS-Kapitän unter Verwendung einer sauberen C ++-Schnittstelle, unterstützende Tags und vorbereitete Muster.
- RocksDB: Schneller Speicherung eingebetteter Schlüsselwerte von Facebook.
- SIMDB: hohe Leistung, freigegebener Speicher, lockfrei, plattformübergreifend, einzelne Datei, minimale Abhängigkeit C ++ 11 Schlüsselwertspeicher.
- SOCI: C ++ Datenbankabstraktionsschicht.
- SQLite: Eine voll eingebettete, voll funktionsfähige relationale Datenbank mit nur wenigen hundert KBs, die in Ihrem Projekt korrekt enthalten sein können.
- SQLITEC ++: SQLITEC ++ (SQLITECPP) ist eine clevere und einfach zu verwendende C ++ SQLite3 -Wrapper.
- SQLITE_MODERN_CPP: Die C ++ 14 -Wrapper der SQLite -Bibliothek, nur Header -Dateien.
- SQLITE_ORM: SQLite Orm Lightweight Library für moderne C ++ mit nur Header -Dateien.
- SQLPP11: Eine eingebettete domänenspezifische Typ-SQL-Sprache für SQL-Abfragen und die Ergebnisse von C ++.
- TiledB: Schnell dichte und spärliche mehrdimensionale Array-DBMs.
- UNQLITE: Eine eigenständige, serverlose, Null-Konfiguration-basierte NoSQL-Engine.
- UpscaledB: Eingebettete "Typed" Schlüsselwertspeicher mit integrierter Abfrageschnittstelle.
debuggen
Debugging Library, Speicher und Ressourcenleckage Erkennung, Unit -Tests
- Backward-CPP: C ++ 's Beautiful Stack Track-Drucker.
- Benchmark: Eine von Google bereitgestellte kleine Supportbibliothek für Mikro -Benchmark.
- Boost.test: Boost -Testbibliothek.
- Überprüfen Sie: Cs Unit -Test -Framework.
- Doctest: Das leichteste Test -Framework für eine einzelne C ++ - Header -Datei.
- Catch: Ein sehr stilvolles C ++-natives Framework, das nur Header-Dateien für Unit-Tests, testgetriebene Entwicklung und verhaltensgetriebene Entwicklung enthält.
- Catch2: Ein sehr stilvolles C ++-natives Framework, das nur Header-Dateien für Unit-Tests, testgetriebene Entwicklung und verhaltensgetriebene Entwicklung enthält.
- Celero: C ++ Benchmarking -Framework.
- CPPUTEST: C/C ++ Unit Testing und Mocking Framework.
- Niedlich: einfacher C ++ Unit -Test.
- CMOCKA: Ein C -Unit -Test -Framework, das Scheinobjekte unterstützt.
- CPPUnit: Ein C ++ -Test -Framework, portiert von Junit.
- Ctest: CMAKE -Testfahrer.
- DBG-Macro: C ++ DBG (…) Makro.
- Deleaker: Tools für Ressourcenleckprüfungen, einschließlich Speicher-, GDI- und Lecks.
- FFF: Erstellen Sie ein Mikroframework für Pseudo-C-Funktionen.
- Google Mock: Eine Bibliothek zum Schreiben und Verwenden von C ++ -Mockklassen.
- Google -Test: C ++ Tests von Google.
- Ig-Debughap: Ein Multi-Plattform-Debug-Heap zum Verfolgen von Speicherfehlern.
- LIBTAP: Schreiben Sie Tests in C -Sprache.
- Memtrack: Wird verwendet, um die Speicherzuweisung in C ++ zu verfolgen.
- Mikroprofile: plattformübergreifender Netzwerkanalysator.
- Minunit: Das in C geschriebene kleinste Einheiten -Test -Framework, das in einer einzelnen Header -Datei enthalten ist.
- Mockator: Eclipse CDT -Plugin für C ++ - Stiche und Verspottungsobjekte.
- Nanotimer: Eine einfache, plattformübergreifende Timerklasse mit niedrigem Aufwand zum Benchmarking.
- Nonius: C ++ Microbenchmarking -Framework.
- Remotery: Ein einzelner C -Dateianalysator für Webansichten.
- Unittest ++: Leichtes C ++ -Nit -Test -Framework.
- Einheit: Einfache Unit -Tests für C.
- Utest.H: Ein -Header -Datei -Test -Framework für C und C ++.
- μT: C ++ 20 Einzelhoch-Datei/Einzelmodul, μ (MICRO)/Unit-Tests ohne Makros.
- VLD: Microsoft Leakage Messgerät, ein kostenloses, robustes und Open -Source -Speicher -Leck -Erkennungssystem für Visual C ++.
Schriftart
Eine Bibliothek zum Parsen und Verarbeitung von Schriftart Dateien.
- Fontconfig: Schriftkonfiguration und benutzerdefinierte Bibliothek.
- Freetyp: Eine kostenlose, verfügbare Software -Bibliothek zum Rendern von Schriftarten.
- OTFCC: C -Bibliothek und Nutzen zum Analysieren und Schreiben von OpenType -Schriftart Dateien.
Game Engine
- Säure: Hochgeschwindigkeit C ++ 17 Vulkan Game Engine.
- Allegro: Eine plattformübergreifende Bibliothek, die hauptsächlich für Videospiele und Multimedia-Programme verwendet wird.
- Cocos2D-X: Ein Multi-Plattform-Framework zum Erstellen von 2D-Spielen, interaktiven Büchern, Demonstrationen und anderen Grafikanwendungen.
- Corange: Eine Spielmotor in Pure C, SDL und OpenGL.
- Crown: Crown ist eine universelle, datengesteuerte Spiele-Engine, die mit orthodoxen C ++ mit minimalistischen und datenorientierten Designkonzepten geschrieben wurde.
- Delta3d: Eine robuste Simulationsplattform.
- Entt: Die Kollision zwischen Spielen und modernen C ++.
- Gameplay: Ein plattformübergreifendes natives C ++ -Pame-Framework zum Erstellen von 2D/3D-Mobilfunk- und Desktop-Spielen.
- Godot: Eine voll funktionsfähige, Open Source, MIT -lizenzierte Game Engine.
- Grit: Community Project zum Aufbau einer kostenlosen Game -Engine, die Open World 3D -Spiele ermöglicht.
- Halley: Eine leichte Game -Engine, die in C ++ 14 mit einem "echten" physischen Komponentensystem geschrieben wurde.
- Klayge: Eine plattformübergreifende Open-Source-Game-Engine basierend auf Plug-in-Architektur.
- NCINE: Eine plattformübergreifende 2D-Game-Engine, die sich auf die Leistung konzentriert, geschrieben in C ++ 11, und Sie können auch entscheiden, Skripte mit LUA zu schreiben.
- OpenXray: Eine Community-modifizierte Röntgenmotor, die in der Stalker-Spielserie verwendet wird.
- Oxygine: plattformübergreifende 2D C ++ Game Engine.
- Panda3D: Game Engine, ein Rahmen für 3D -Rendering und Spielentwicklung von Python- und C ++ - Programmen.
- PixelGameEngine: Die offizielle Veröffentlichung von OlcpixelGameEngine, ein Tool für YouTube -Videos und -projekte für Javidx9.
- Polycode: Ein in C ++ (gebundener an Lua gebundener) Open -Source -Framework, um Spiele zu erstellen.
- RAYLIB: Einfache, einfach zu verwendende Bibliothek, um den Spaß am Videospielprogrammierung zu genießen.
- Frühling: leistungsstarke, kostenlose, plattformübergreifende RTS-Spieleimotor.
- Drehmque2D: Eine Open Source-plattformübergreifende C ++ -Motor für die Entwicklung von 2D-Spielen.
- Drehmque3D: Eine Open Source C ++ -Motor, die für die Entwicklung von 3D -Spielen erstellt wurde.
- Toy Engine: Toy ist eine leichte, modulare C ++ -Spile -Engine und bietet einfache, ausdrucksstarke C ++ - Redewendungen, um das Design von voll funktionsfähigen 2D- und 3D -Spielen schnell zu wiederholen.
- URHO3D: Die von C ++ implementierte kostenlose, leichte, plattformübergreifende 2D- und 3D-Game-Engine wurde von Oger und Horde3d stark inspiriert.
Grafische Benutzeroberfläche
Grafische Benutzeroberfläche
- Boden: Native, Mobile, plattformübergreifende GUI-Framework.
- CEGUI: Flexible plattformübergreifende GUI-Bibliothek.
- Elemente: Leichte, feinkörnige, auflösungsunabhängige modulare GUI-Bibliothek.
- FLTK: Schnelles, leichtes plattformübergreifendes C ++ GUI-Toolkit.
- GACUI: GPU-bewertete C ++-Benutzeroberfläche mit WYSIWYG-Entwicklungstools, unterstützt XML und verfügt über integrierte Datenbindungen und MVVM-Funktionen.
- GTK+: Ein Multi-Plattform-Toolkit zum Erstellen grafischer Benutzeroberflächen.
- GTKMM: Die offizielle C ++ - Schnittstelle für die beliebte GUI -Bibliothek GTK+.
- IMGUI: Eine grafische Benutzeroberfläche des Echtzeitmodus mit minimalen Abhängigkeiten.
- Implrot: IMGUIs Echtzeitmodus Zeichnungsteuerung.
- IUP: Ein Multi-Plattform-Toolkit zum Erstellen grafischer Benutzeroberflächen.
- Libui: Eine einfache, tragbare (aber unflexible) GUI -Bibliothek in C, die native GUI -Technologie für jede Plattform verwendet, die sie unterstützt.
- MyGui: Schnelle, flexible, einfache GUI.
- Nana: Nana ist eine plattformübergreifende Bibliothek für die moderne GUI-Programmierung im C ++ -Stil.
- Nanogui: Eine minimalistische plattformübergreifende Steuerungsbibliothek für OpenGL 3.x und später.
- Nuklear: ANSI C GUI -Bibliothek für Einzelkopfzeilendateien.
- QCustomplot: QT -Zeichnungssteuerung ohne weitere Abhängigkeiten.
- QWT: QT -Steuerung für Benutzer und Technologieanwendungen.
- QWTPLOT3D: Eine featurereiche C ++-Programmierbibliothek basierend auf QT/OpenGL, die im Wesentlichen eine Gruppe von 3D-Steuerelementen bereitstellt.
- RMLUI: Evolved HTML/CSS -Benutzeroberflächenbibliothek, Zweigstelle von Librocket.
- Sciter: Sciter ist ein eingebettbares HTML/CSS/Scripting Language -Engine für die Verwendung in der UI -Ebene moderner Desktop -Anwendungen.
- WXWIDGETS C ++ -Bibliothek, mit der Entwickler eine Codebasis verwenden können, um Anwendungen für Witwen, Mac OS X, Linux und andere Plattformen zu erstellen.
- Yue: Erstellen Sie eine Bibliothek für native plattformübergreifende GUI-Anwendungen.
Grafik
- ANSIMP: Die Open Asset Import Library (ANSIMP) ist eine plattformübergreifende 3D-Modellimportbibliothek, die eine gemeinsame API für verschiedene 3D-Asset-Dateiformate bereitstellt.
- BGFX: plattformübergreifende Rendering-Bibliothek.
- Blend2d: Eine vom JIT -Compiler betriebene 2D -Vektorgrafikmotor.
- BS :: Framework: Eine moderne C ++ 14-Bibliothek für die Entwicklung von Echtzeit-Grafikanwendungen.
- Kairo: Eine 2D -Grafikbibliothek, die mehrere Ausgabegeräte unterstützt.
- C-Turt: Eine C ++ 11 Turtle Graphics Library, die als CLMG-Wrapper fungiert, mit nur Header-Dateien.
- Fleißiger Motor: Eine moderne, plattformübergreifende 3D-Grafikbibliothek mit niedriger Ebene.
- DirectXTK: Eine Sammlung von Hilfsklassen, die zum Schreiben von DirectX 11.x -Code in C ++ verwendet werden.
- GLFW: Einfache plattformübergreifende OpenGL-Verarbeitungsbibliothek.
- Hierbedfragons: Grundlegende 3D -Szenen, die mit verschiedenen Motoren, Frameworks oder APIs implementiert werden.
- Horde3d Eine kleine 3D -Rendering- und Animations -Engine.
- Ion: Eine kleine und effiziente Sammlung von Bibliotheken zum Erstellen von plattformübergreifenden Client- oder Serveranwendungen mithilfe von 3D-Grafiken.
- IRRLicht: Ein Hochleistungs-Echtzeit-3D-Motor, der in C ++ geschrieben wurde.
- LIBIGL: Einfache C ++ Geometrieverarbeitungsbibliothek.
- LLGL: Low -Level -Grafikbibliothek (LLGL) ist eine dünne Abstraktionsschicht für moderne Grafik -APIs.
- Magnum: Leichtes und modulares C ++ 11/C ++ 14 Graphics Middleware für Spiele und Datenvisualisierung.
- Nanovg: Anti-Alias 2D-Vektor-Grafikbibliothek auf OpenGL für Benutzeroberfläche und Visualisierung.
- Oger 3D: Eine szenenorientierte, in Echtzeit flexible 3D-Rendering-Engine (keine Spielmotor), die in C ++ geschrieben wurde.
- OpenCenegraph: OpenCenegraph Toolkit mit hoher Leistung.
- OpenSubdiv: Pixar -Bibliothek zur Bewertung und Rendering segmentierter Oberflächen auf CPU und GPU.
- OpenVDB: Eine Bibliothek und ein Tool zum Speichern, Bearbeiten und Rendering -Volumendatenbanken.
- Panda3D: Ein Rahmen für 3D -Rendering und Spieleentwicklung, geschrieben in Python und C ++.
- Partio: Eine Bibliothek zur Verarbeitung von Teilchendaten, die die häufigsten Dateiformulare unterstützt.
- Skia Eine komplette 2D -Grafikbibliothek zum Zeichnen von Text, Grafik und Bildern.
- Tinyspline: Kleine, aber leistungsstarke ANSI C-Bibliothek für Unterschiede, Transformation und Abfrage willkürliche Nurbs, B-Spline-Funktionen und Beuselkurven.
- urho3d plattformübergreifend und game Engine.
- Yocto/GL: Eine Miniatur-C ++-Bibliothek basierend auf physikalischen Grafiken für datengetriebene.
Bildverarbeitung
- Boost.gil: Universal Image Library.
- CIMG: Ein kleines Open -Source -C ++ - Toolkit für die Bildverarbeitung.
- Cximage: Eine Bildverarbeitungs- und Konvertierungsbibliothek zum Laden, Speichern, Anzeigen und Konvertieren.
- DLIB: Modernes C ++ 11 maschinelles Lernen, Computer Vision, numerische Optimierung und Deep -Lern -Toolkit.
- FreeImage: Open Source -Bibliothek, die gemeinsame Bildformate und andere Formate unterstützt, die für Multimedia -Anwendungen erforderlich sind.
- GD: GD -Grafikbibliothek, berühmt für Grafiken Laden/Betrieb und Miniaturansicht Generierung in PHP.
- DCMTK: Dicom Toolkit.
- GDCM: Basis -Dicom -Bibliothek.
- ITK: Ein plattformübergreifendes Open Source-Bildanalyse-System.
- 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计算机图形学,图像处理和可视化的开源免费软件系统。
Internationalisierung
- 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解析库。
Protokoll
- 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: 异步、跨平台、低时延的日志库。
机器学习
- 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上运行。
Mathe
- 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语言微型垃圾回收器。
Multimedia
- GStreamer: 构建媒体处理组件图形的库。
- libass: ASS / SSA字幕格式的便携式字幕渲染器。
- libass: 处理多媒体内容(例如音频、视频、字幕和相关元数据)的库和工具的集合。
- LIVE555 Streaming Media: 使用开放标准协议(RTP/RTCP, RTSP, SIP) 的多媒体流库。
- libVLC: libVLC (VLC SDK)媒体框架。
- MediaInfoLib: 用于视频和音频文件中最相关的技术和标签数据的方便统一显示。
- QtAv: 基于Qt和FFmpeg的多媒体播放框架,能够帮助你轻而易举地编写出一个播放器。
- SDL: 简单直控媒体层。
- SFML: 快速,简单的多媒体库。
- TagLib: 用于读取和编辑几种流行音频格式的元数据的库。
Netzwerk
- 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生成库。
Physik
动力学仿真引擎
- 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是一个针对实时仿真的开源框架,其着重于医学仿真。
Abbildung
- 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兼容的正则表达式引擎库,不可回溯,可与大型数据流进行匹配。
Robotik
- 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放在首位的机器学习算法。
Skript
- 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格式。
Sortieren
- pdqsort: 破坏模式的快速排序。
- Timsort: 模板化的稳定排序功能,其性能优于基于快速排序的算法(包括std: : sort),用于反向或半排序数据。
Video
- 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。
Software
用于创建开发环境的软件
Compiler
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: 代码美化器。