Super c
Eine kuratierte Liste von C -guten Sachen. Diese Liste enthält nur Open -Source -Code (wie durch die verknüpfte Open -Source -Definition definiert) und Verkäufer, die für physische Ressourcen nicht böse sind.
Dies wird unter einer Creative Commons-Attribution-Sharealike-Lizenz, Version 4 (SPDX-Code CC-BY-SA-4.0 ), veröffentlicht. Sie finden seinen Text in der Lizenzdatei.
Ein wichtiger Hinweis: Dieses Projekt zeigt nichts mit C ++-verwandt; Es wird nur reines C -Zeug in Betracht gezogen.
Hinweis für Mitwirkende: Wenn Sie eine Pull -Anfrage stellen möchten, lesen Sie bitte zuerst bei.
Inhalt
- Ai
- Benchmarking
- Systeme bauen
- Compiler
- Kompression
- Parallelität und Parallelität
- Krypto
- Datenbank
- Datenstrukturen
- Debuggen
- Dokumentationsgenerierung
- Redakteure
- Einbettbare Skriptmotoren
- Frameworks
- Spielprogrammierung
- Grafik
- Grafische Benutzeroberfläche
- Hashing
- Lernen, Referenz und Tutorials
- Referenzressourcen online
- Anfängerressourcen online
- Zwischenressourcen online
- Erweiterte Ressourcen online
- Nachschlagewerke
- Anfängerbücher
- Zwischenbücher
- Fortgeschrittene Bücher
- Lexing und Parsen
- Speicherverwaltung
- Multimedia
- Networking und Internet
- Numerisch
- Profilerstellung
- Regex
- Serialisierung
- Quellcodesammlungen
- Standardbibliotheken
- Streichmanipulation
- Strukturierte Dateiverarbeitung
- CSV
- JSON
- Ini
- Andere
- Xml
- Yaml
- Testen
- Texteditor -Erweiterungen
- Werkzeuge
- Versorgungsunternehmen
- Web -Frameworks
- Windows -Umgebungen
Ai
Computer Vision, neuronale Netze, maschinelles Lernen und andere ähnliche Dinge. Wenn Ihre Universität es KI nennt, lebt es hier im Grunde.
- CCV - C -basierte/zwischengespeicherte/Core Computer Vision Library; Moderne Computer Vision.
BSD-3-Clause - Schädel - tragbare Ann -Bibliothek nur für Header in C99.
MIT - FANN - Fast künstliche neuronale Netzwerkbibliothek; Eine Implementierung neuronaler Netzwerke.
GPL-2.0-only - Genann - Einfache Ann in C89, ohne zusätzliche Abhängigkeiten.
Zlib - Kann - Zwei -Datei Ann Library.
MIT - Libdeep - Deep Learning Library.
BSD-3-Clause - M2CGEN - Ein CLI -Tool zur Transplilität von geschulten klassischen ML -Modellen in einen nativen C -Code mit null Abhängigkeiten.
MIT - SOD - Eine eingebettete Computer Vision & Machine Learning Library.
GPL-3.0-only
Benchmarking
Vergleich der Leistung verschiedener Subsysteme über verschiedene Chip-/Systemarchitekturen.
- B63-Leichtes Mikro-Benchmarking-Tool für C.
Apache-2.0
Systeme bauen
Tools, die das Gebäude und die Prüfung von Projekten in C automatisieren, in C.
- Autotools - Auch als GNU -Build -System (Automake, Autoconf, Libtool ...) bezeichnet, ist eines der am häufigsten verwendeten Build -Systeme (Konfigurieren && make). GPL-1.0-or-Later
- Autotools Project Skeletton - Ein einfaches Autotools -Skelett (Vorlage), um neue Projekte schnell zu starten.
BSD-2-Clause - CMAKE - plattformübergreifende Familie von Tools zum Erstellen, Verpacken und Testsoftware.
BSD-3-Clause - GNU make - Tool, das die Erzeugung von ausführbaren und anderen Nicht -Source -Dateien eines Programms steuert.
GPL-3.0-or-later - Meson - extrem schnelles, benutzerfreundliches Build -System. Basierend auf Ninja.
Apache-2.0 - Premake - Befehlszeilen -Dienstprogramm, das eine Skriptdefinition eines Softwareprojekts liest und es verwendet, um Projektdateien für Visual Studio und GNU zu generieren. Außerdem werden an anderen Zielen gearbeitet.
BSD-3-Clause - Scons - Software -Konstruktionstool mit Python.
MIT - XMake - plattformübergreifend Build -Dienstprogramm.
Apache-2.0 - ZProject - Projektgenerator und Build -System -Support -Tool.
MPL-2.0
Compiler
Compiler sowie Compiler- und Compilationswerkzeuge.
- CCACHE - Compiler -Cache zur Beschleunigung der Neukompilation.
GPL-3.0-or-later - Clang - Compiler für LLVM. Unterstützt C11.
NCSA - CPROC - Ein C11 -Compiler, der QBE als Backend verwendet.
ISC - DASTCC - Programm, mit dem Builds auf mehrere Maschinen verteilt werden können.
GPL-2.0-or-later - Unternehmen - Bibliothek, die eine grafische Zwischendarstellung, Optimierungen und die für die Verwendung in Compilern geeignete Assembler -Code -Erzeugung bietet. Kommt mit einem Beispiel C Front-End unter derselben Lizenz.
LGPL-2.1-only - GCC - Bietet einen C -Compiler als Teil seines Compiler -Sets. Unterstützt C11.
GPL-3.0-or-later - PCC - Ehrwürdiger Compiler. Unterstützt C99. Verschiedene Lizenzen, alle Open Source.
Kompression
- BLOSC-Extrem schnelle, multi-thread-Meta-Kompressor-Bibliothek. Verschiedene Lizenzen, alle Open Source.
- Brotli - Allzweck verlustfreie Kompressionsalgorithmusbibliothek. Hat Geschwindigkeiten, die mit Deflate vergleichbar sind, aber viel höhere Komprimierungsverhältnisse.
MIT . - CLZIP - C -Version des hochwertigen Datenkompressors LZIP (LZMA -Implementierung).
GPL-2.0-or-later - Croaring - C Implementierung von brüllenden Bitmaps.
Apache-2.0 - FinitestateStropy - Zwei hocheffiziente Kompressionscodecs, die für moderne CPUs optimiert sind.
BSD-2-Clause - Dichte - Superschnelle Kompressionsbibliothek.
BSD-3-Clause - Heatshhrink - Datenkomprimierung/Dekompressionsbibliothek für eingebettete und Echtzeitsysteme.
ISC - FAST_ZLIB - Verbessertes ZLIB, der 2- bis 10 -mal schneller ausgeführt wird.
BSD-3-Clause - FASTLZ - Lightning -Fast -Fast -Lustless -Kompressionsbibliothek (Typ LZ77). Einbettbar für kleine Ziele wie Arm Cortex-M-Familien. Quellcode direkt in Ihr Projekt (ein Paar H/C -Dateien), keine dynamische Speicherzuweisung.
MIT - Huffandpuff - Minimaler Huffman -Encoder und Decoder. Öffentlich zugängliche.
- Libzip - C -Bibliothek zum Lesen, Erstellen und Ändern von ZIP -Archiven.
BSD-3-Clause - libbzip2-patentfreie, hochwertige Datenkomprimierungsbibliothek.
BSD-4-Clause - Eidechse - ehemals LZ5; Ein effizienter Kompressor mit schneller Dekompression. Erreicht Komprimierungsverhältnisse, die mit ZIP und ZLIB bei Dekompressionsgeschwindigkeiten von 1000 MB/s und schneller vergleichbar sind.
BSD-2-Clause - LZ4 - Bibliothek für einen extrem schnellen Komprimierungsalgorithmus.
BSD-2-Clause - LZO - Schnelle Datenkomprimierungsbibliothek.
GPL-2.0-or-later - PIXZ - Paralleler, indizierter XZ -Kompressor.
BSD-2-Clause - SHOCO - Kompressor für kleine Textzeichenfolgen.
MIT - SIMDCOMP - Einfache Bibliothek zum Komprimieren von Zahlenlisten mit Binärverpackungen. Verwenden Sie SIMD -Anweisungen auf x86.
BSD-3-Clause - SMAZ - Effiziente String -Komprimierungsbibliothek.
BSD-3-Clause - Squash - Komprimierungsabstraktionsbibliothek mit einigen Dienstprogrammen.
MIT - Turbopfor - schnellste Ganzzahlkompression.
GPL-2.0-or-later - Turborle - Effizienteste Kodierung der Lauflänge.
GPL-2.0-or-later - ZIP - wirklich wirklich kleine Zip -Archivverarbeitungsbibliothek.
Unlicense - ZLIB - Massiv schicke, aber fein unauffällige Kompressionsbibliothek.
BSD-3-Clause - libarchive - libarchive ist eine tragbare, effiziente C -Bibliothek, die Streaming -Archive in einer Vielzahl von Formaten lesen und schreiben kann.
BSD-3-Clause - ZLIB-NG-ZLIB-Ersatz durch Optimierungen für Systeme der nächsten Generation.
BSD-3-Clause - ZSTANDARD-Schneller, verlustloser Komprimierungsalgorithmus, die Echtzeit-Komprimierungsszenarien auf ZLIB-Ebene oder bessere Komprimierungsverhältnisse abzielen.
BSD-3-Clause
Parallelität und Parallelität
- CCHAN - Kleine Bibliothek für Kanalkonstrukte für die Kommunikation zwischen den Threads. Öffentlich zugängliche.
- CheckedThreads - Eine einfache Bibliothek für Parallelität mit integrierter Überprüfung auf Rennbedingungen.
BSD-2-Clause - CK - Parallelitätsprimitive, Mechanismen des sicheren Gedächtnisses Reclamation und nicht blockierende Datenstrukturen.
BSD-2-Clause - FCFS RWLOCK-Erste Leser/Autoren für Erste Come für POSIX-Threads.
CC0-1.0 - Libaco - Eine loderne schnelle und leichte C -asymmetrische Coroutine -Bibliothek.
Apache-2.0 - libConcurrent - gleichzeitige Programmierbibliothek mit Coroutinen für C11.
BSD-3-Clause - LIBCSP - Hochleistungsverträgliche C -Bibliothek, die vom CSP -Modell beeinflusst wird.
MIT - libdill - Bibliothek, die strukturierte gleichzeitige Programmierung erleichtert.
MIT - libhl - Bibliothek implementiert eine thread -sichere API, um eine Reihe von Datenstrukturen zu verwalten. Bietet auch einige unterstützende Funktionen und Strukturen für die gleichzeitige und lockfree -Programmierung.
LGPL-3.0-only - Liburcu - Datensynchronisierungsbibliothek, die linear mit der Anzahl der Kerne skaliert.
LGPL-2.1-or-later - Mühle - Start -Parallelität.
MIT - OCLKIT - Zwei -Datei OpenCL -Wrapper.
GPL-3.0-or-later - OCL-MLA-OpenCL-Abstraktionen auf mittlerer Ebene.
BSD-3-Clause - OpenMP - Pragmas, die so konzipiert sind, dass sie eine einfache Parallelisierung des Codes ermöglicht. Standard (Lizenzierung nicht zutreffend).
- Öffnen Sie die MPI - Implementierung der Nachrichtenübergabe -Schnittstelle.
BSD-3-Clause - PAL - Optimierte Bibliothek für Mathematik, parallele Verarbeitung und Datenbewegung.
Apache-2.0 - PTH-Tragbare Implementierung für nicht pripreemptive vorrangige Planung für mehrere Ausführungsfäden.
GPL-3.0-or-later - PTHREADS - POSIX Thread Library. Standard (keine Lizenz anwendbar).
- TinycThread - Tragbare, kleine Implementierung der C11 -Threads -API.
Zlib
Krypto
Meistens Bibliotheksimplementierungen bekannter kryptografischer Algorithmen oder Protokolle.
- GNU SASL - Implementierung der einfachen Authentifizierungs- und Sicherheitsschicht und einigen gemeinsamen SASL -Mechanismus.
GPL-3.0-or-later - GNUTLS - sichere Kommunikationsbibliothek, Implementierung von SSL, TLS und DTLs.
LGPL-2.1-or-later - libgcrypt - Allgemeine Kryptographie -Bibliothek mit einer Reihe verfügbarer Chiffren.
LGPL-2.1-or-later - OpenSSL - Implementierung der SSL- und TLS -Protokolle. Enthält auch eine Kryptographie -Bibliothek. Dual lizenziert unter der OpenSSL -Lizenz und der SSLEAY -Lizenz.
- liboqs - Bibliothek für quantenresistente kryptografische Algorithmen.
MIT - libsodium-moderne und benutzerfreundliche Krypto-Bibliothek.
MIT - libtomcrypt - ziemlich umfassendes, modulares und tragbares kryptografisches Toolkit. Öffentlich zugängliche.
- MBED TLS - Eine weitere Krypto -Implementierung.
Apache-2.0 - MiraCl - Multiprezisionsgültigkeit und rationale arithmetische kryptografische Bibliothek; Ein SDK für die Kryptographie der elliptischen Kurve.
AGPL-3.0-or-later - RETTER - Sammlung von Hash -Funktionen, Chiffren, Tools, Bibliotheken und Materialien im Zusammenhang mit Kryptographie und Sicherheit. Öffentlich zugängliche.
- S2N - C99 Implementierung der TLS/SSL -Protokolle, die so ausgezeichnet, schnell und mit Sicherheit als Priorität ausgelegt sind.
Apache-2.0 - SPHLIB - Implementierungen verschiedener Hash -Funktionen, einschließlich mehrerer kryptografischer Funktionen.
MIT - Trezor -Krypto - stark optimierte Krypto -Algorithmen für eingebettete Geräte.
MIT - BFISH - Ein Single umfasst die ANSI -C Blowfish ECB Crypto Library. Öffentlich zugängliche.
Datenbank
Datenbanken und Datenspeicher mit C -APIs.
- BERKELEYDB-Bibliothek für eine Hochleistungs-eingebettete Datenbank für Schlüsselwertdaten.
AGPL-3.0-only - Duckdb - Schnelle In -Process -analytische Datenbank mit C API.
MIT - EJDB2 - Einbettbare JSON -Datenbank -Engine.
MIT - Groonga - Columnar Store mit Volltext -Suche.
LGPL-2.1-only - Hiredis - Minimalistische Kundenbibliothek für Redis.
BSD-3-Clause - libmongoc - Hochleistungs -Client -Bibliothek für MongoDB.
Apache-2.0 - LMDB-Ultraschneller, ultra-kompakter Schlüsselwert eingebetteter Datenspeicher.
OLDAP-2.8 - MySQL - Die weltweit beliebteste Open -Source -Datenbank.
GPL-2.0-only - PostgreSQL - leistungsstarkes Objektrelationsdatenbanksystem.
PostgreSQL - Redis - Fortgeschrittener Schlüsselwertgeschäft.
BSD-3-Clause - Sophia - Moderne, eingebettete Schlüsselwertdatenbank.
BSD-2-Clause - Sparkey - Einfache konstante Schlüssel-/Wertspeicherbibliothek. Entwickelt für lesste Lasten mit seltenen, großen Schüttguteinsätzen.
Apache-2.0 - SQLite-in sich geschlossen, serverlos, null Konfiguration, Transaktions-SQL-Datenbank-Engine. Öffentlich zugängliche.
- UNQLITE-in sich geschlossen, serverlos, null Konfiguration, transaktionale NoSQL-Engine.
BSD-2-Clause - WhitedB - Leichte Datenbankbibliothek, vollständig im Hauptspeicher.
GPL-3.0-or-later - FLASHDB-Eine Datenbank mit ultra-Lichtgewicht, die Schlüsselwert- und Zeitreihendaten unterstützt.
Apache-2.0 - Tdengine-Hochleistungs, Cloud Native Time-Serie-Datenbank.
AGPL-3.0-only
Datenstrukturen
- C-Macro-Sammeln-Generieren Sie einfache und generische Datenstrukturen mithilfe von Makros.
MIT - Clist - Einfache und leichte dynamische Array -Implementierung.
BSD-2-Clause - Sammlungs -C - Bibliothek generischer Datenstrukturen.
LGPL-3.0-or-later - DS - Gemeinsame Datenstrukturen und Algorithmen.
MIT - IGraph - Eine Diagrammverarbeitungsbibliothek.
GPL-2.0-or-later - KDTREE - Einfache Bibliothek für die Arbeit mit KD -Bäumen.
BSD-3-Clause - Libavl - Bibliothek mit einer Reihe von selbstausgleichenden binären Bäumen.
GPL-3.0-or-later - libcdada - Eine kleine, tragbare, makrolose Bibliothek für grundlegende Datenstrukturen (Liste, Set, Karte, Warteschlange ...) in C (C ++ Backend).
BSD-2-Clause - LIBLFDS - Tragbare lock -freie Datenstrukturbibliothek. Öffentlich zugänglich (genauer gesagt, egal welche Lizenz Sie wollen).
- LIBSRT - Weiche und harte Echtzeitdatenstrukturen.
BSD-3-Clause . - list.h - Implementierungen für einzeln verknüpfte und doppelt verknüpfte Listenfunktionen.
GPL-3.0-only - M*lib - Bibliothek für generische, aber typeafe c Container. Implementiert nur als Header.
BSD-2-Clause - OffBrand - Sammlung generischer, referenzbezogener Datenstrukturen.
MIT - PackedArray - Zufällige Zugriffsarray von dicht gepackten nicht signierten Ganzzahlen in jeder gewünschten Breite. Hat eine SIMD-optimierte Implementierung.
WTFPL - RB3PTR - Rotschwarzer Baum. Entellt fast alle Implementierungsimitive auf, können daher für Szenarien wie Augmentation, mehrere kompatible Auftragsfunktionen und mehr verwendet werden.
MIT - Uthash - Implementierung von Einzelfilmen -Hash -Tabellen.
BSD-1-Clause - Vector.h - Header Library für typisierte Listen.
MIT
Debuggen
Weil wir es alle manchmal tun müssen. Verschiedene Tools zum einfacheren oder besseren Debuggen sowie Bibliotheken oder Code, die eine bessere Debugging -Arbeit ermöglichen.
- C -Reduce - Tool, das eine große C -Datei mit einer interessierenden Eigenschaft einnimmt und automatisch eine viel kleinere C -Datei mit derselben Eigenschaft erstellt. Sollen dazu beitragen, minimale Fälle zu minimaler Fehler zu erstellen.
BSD-3-Clause - CBMC - C begrenzte Modellprüfung; Ein Tool zur Überprüfung von Array-Grenzen, Zeigersicherheit und benutzerdefinierten Behauptungen.
BSD-4-Clause - CFLOW - Analysiert eine Sammlung von Quelldateien und druckt einen Grafik -Charting -Steuerfluss im Programm.
GPL-3.0-or-later - Komplexität - Werkzeug zur Messung der Komplexität des Quellcode.
GPL-3.0-or-later - CSCOUT - Quellcode -Analysator und Refactoring -Browser für C -Programme.
GPL-3.0-only - DDD-Grafisches Front-End für eine Reihe von Befehlszeilendebuggern.
GPL-3.0-or-later - Debug - One -Header -Bibliothek für einfachere "Printf -Debugging".
MIT - ESBMC - Effiziente SMT -basierte begrenzte Modellprüfung; Ein Tool zur Überprüfung von Einzel- und Multithread -Programmen, Benutzeraussagen, Überlauf und Zeiger-/Speichersicherheit.
Apache-2.0 - GDB - GNU -Projektdebugger.
GPL-3.0-or-later - LLDB - LLVM -Debugger.
NCSA - RR - Debugger, mit dem nicht deterministische Ausführungen aufgezeichnet werden, um ein deterministisches Debuggen zu ermöglichen.
BSD-2-Clause - VALGRIND - Bereich der dynamischen Analyse -Tools, einschließlich eines Leckprüfers.
GPL-2.0-only
Dokumentationsgenerierung
- CXREF - generiert Dokumentation entweder in Latex, HTML, RTF oder SGML.
GPL-2.0-only - DOCONCE - Die markierte Markup -Sprache bescheiden Sie, mit der eine Reihe von Formaten generiert werden können.
BSD-3-Clause - Doxygen - De -facto Standard -Tool zum Generieren von Dokumentationen aus kommentierten Quellen. Kann eine große Auswahl an Formaten erzeugen.
GPL-2.0-only
Redakteure
Fancier, IDE-Typ-Redakteure. Wenn Sie den Texteditor eines Programmierers wünschen, schauen Sie sich woanders hin. Außerdem unterstützt auch immer Sie, was Sie am wahrscheinlichsten verwenden, C ohnehin.
- Anjuta Devstudio - Gnome ide.
GPL-2.0-only - Code :: Blöcke-Erweiterbare, konfigurierbare IDE-Unterstützung C.
GPL-3.0-only - Codelit - plattformübergreifende IDE.
GPL-2.0-only - Geany - Kleine und schnelle Ide.
GPL-2.0-or-later - KDevelop - KDE IDE.
GPL-2.0-only - Zinjai - Einfache, leichte und featurereiche IDE.
GPL-3.0-only
Einbettbare Skriptmotoren
Wenn C nicht die richtige Lösung ist oder wenn Sie eine dynamischere Konfigationsmotor benötigen:
- Duktape - Einbettbare JavaScript -Engine mit Schwerpunkt auf Portabilität und kompaktem Fußabdruck
MIT . - Metacall - plattformübergreifende Polyglot -Laufzeit, die NodeJs, JavaScript, Typscript, Python, Ruby, C#, WASM, Java, Cobol und mehr unterstützt.
Apache-2.0
Frameworks
Große Bibliotheken, die Datenstrukturen und andere Dinge bereitstellen, die Sie von einer "modernen" Standardbibliothek erwarten.
- APR - apache tragbare Laufzeit; Eine weitere Bibliothek mit plattformübergreifenden Dienstprogrammfunktionen.
Apache-2.0 - C -Algorithmen - Sammlung gemeinsamer Algorithmen und Datenstrukturen.
ISC - CPL - die gemeinsame Pipeline -Bibliothek; Eine Reihe von Bibliotheken, die ein umfassendes, effizientes und robustes Software -Toolkit sind.
GPL-2.0-only - EFL - Große Sammlung nützlicher Datenstrukturen und Funktionen. Verschiedene Lizenzen, alle Open Source.
- GLIB - Bibliothek mit Versorgungsfunktionen und -strukturen, die tragbar, effizient und leistungsfähig sind.
LGPL-2.1-only - KLIB - Kleine und leichte Implementierungen gemeinsamer Algorithmen und Datenstrukturen.
MIT - LIBKORK - Versorgungsfunktionen und -strukturen, die für ressourcenbezogene Systeme entwickelt wurden. Kann eingebettet werden.
BSD-3-Clause - libnih - Leichte Funktionsbibliothek von Funktionen und Strukturen.
GPL-2.0-only - Libu - Kleine Bibliothek grundlegender Dienstprogramme, einschließlich Speicherzuweisung, String -Manipulation und Protokollierung.
BSD-3-Clause - PBL - Große Versorgungsbibliothek mit Datenstrukturen unter anderem.
LGPL-2.1-or-later - Plibsys - plattformübergreifendes System C Library. Zero Drittanbieter Abhängigkeiten verwendet nur native Systemaufrufe.
MIT - QLIBC - Einfache und leistungsstarke Bibliothek, die als Ersatz für Glib ausgelegt ist und sich darauf konzentriert, klein und leicht zu sein.
BSD-2-Clause - SC - Gemeinsame Bibliotheken und Datenstrukturen für C.
MIT - Tbox - Multi -Plattform -Bibliothek mit einer großen Anzahl von Funktionen.
Apache-2.0 - PSPSDK - Ein Open -Source -SDK für PSP Homebrew -Entwicklung. Verschiedene Lizenzen.
Spielprogrammierung
Motoren, Bibliotheken und andere hilfreiche Dinge speziell zum Erstellen von Spielen.
- Allegro - plattformübergreifende, Videospielentwicklung und Multimedia -Bibliothek.
Zlib - Assetkit? 3D Asset Importeur/Exporteur/Util Library basierend auf Collada/GLTF -Spezifikationen
MIT - Astera - C99 Cross Plattform 2D Game Library
MIT - cglm -? Optimierte OpenGL/Graphics Math (GLM) für C.
MIT - Chipmunk2D - Schnell und leicht 2D -Spiel Physikbibliothek.
MIT - CMT -? C -Bindungen/Wrapper für das Metall -Grafik -Framework von Apple.
MIT - Corange-Game Engine in reiner C.
BSD-2-Clause - CSFML - Bindung für SFML.
Zlib - DarkPlaces - Modifizierte Version des Quake2 -Motors.
GPL-2.0-only - Epoxy - Bibliothek für den Umgang mit OpenGL -Funktion Zeigerverwaltung.
MIT - EXENGINE - 3D -Game -Engine in C99 mit einer Startvorlage.
MIT - FLECS - Ein Multithread -Entitätskomponentensystem für C89 & C99
MIT geschrieben - FreeCell Solver - Satz von Bibliotheken und Befehlszeilenprogrammen zum automatischen Lösen von Freecell und einigen ähnlichen Varianten von Kartensoolitaire.
MIT - FREEGLUT - Alternative zum OpenGL Utility Toolkit. Ermöglicht die Erstellung und Verwaltung von Windows mit OpenGL -Kontexten.
X11 - GLFW - Multi -Plattform -Bibliothek zum Erstellen von Windows mit OpenGL -Kontexten.
Zlib - Ioquake3 - Quake3 Motor, endlich befreit.
GPL-2.0-only - KAZMATH - MATHS -Bibliothek für Spiele.
BSD-2-Clause - LIBAO - plattformübergreifende Audiobibliothek mit einer Vielzahl von Ausgängen.
GPL-2.0-or-later - LIBLIBG-Pure C99 Game Networking Library zum Aufbau einfacher und eleganter plattformübergreifender Multiplayer-Client-Server-Lösungen.
Apache-2.0 - Mathc - Math Library für 2D- und 3D -Programmierung.
ZLib - ORX-Tragbares, leichtes, pluginbasiertes, datengetriebenes, 2D-orientierter Spiele-Engine.
Zlib - Quake - Bemühungen.
GPL-2.0-only - Quake2 - Quake2 Motor.
GPL-2.0-only - RAYLIB-Einfache und benutzerfreundliche Bibliothek zum Erlernen von Videospielprogrammen.
Zlib - Retroarch - Referenzfront für Libretro.
GPL-3.0-only - SDL2-plattformübergreifende Bibliothek, die über OpenGL auf niedrigem Niveau Zugriff auf Audio-, Tastatur-, Maus-, Joystick- und Grafikhardware bietet.
Zlib - SDL-GPU-Bibliothek für Hochleistungs, moderne 2D-Grafiken. Basierend auf SDL.
MIT - Sigil - Sound-, Input- und Grafik -Integrationsbibliothek; Eine einfache Alternative zu anderen Bibliotheken für all diese Dinge. Verschiedene Lizenzen, alle Open Source.
- Uastar - Minimal A* Implementierung.
ZLib
Grafik
Programmatische Manipulation von Grafiken in C; Wenn Sie eine GUI erstellen möchten, enthält der Abschnitt Graphical User Interface das, was Sie benötigen.
- Assetkit? 3D Asset Importeur/Exporteur/Util Library basierend auf Collada/GLTF -Spezifikationen
MIT - Kairo - 2D Graphics Library.
LGPL-2.1-only oder MPL-1.1 . - CMT -? C -Bindungen/Wrapper für das Metall -Grafik -Framework von Apple.
MIT - Giflib - Bibliothek zum Lesen und Schreiben von GIF -Bildern.
MIT - Graphen - Dünne Schicht grafischer Datentypen.
MIT - Heman - Tiny Library of Image Utilities, die sich mit Höhenkarten, normalen Karten, Entfernungsfeldern und dergleichen befassen.
MIT - libcaca - ASCII -Renderer für terminalbasierte Schnittstellen.
WTFPL - LIBGD - Bibliothek für die dynamische Erstellung von Bildern durch Programmierer.
MIT - libimagequant-Kleine, tragbare Bibliothek zur qualitativ hochwertigen Konvertierung von RGBA-Bildern in 8-Bit-indizierte Farbbilder.
GPL-3.0-or-later - libjpeg -turbo - schnellere Bibliothek zum Lesen und Schreiben von JPEG -Dateien. Verschiedene Lizenzen.
- libpng - Offizielle PNG -Referenzbibliothek.
Libpng - Librsvg - Bibliothek zum Rendern von SVG -Dateien mithilfe von Kairo.
LGPL-2.1-or-later - libSixel - Bibliothek implementiert das Sixel -Protokoll und ermöglicht schöne Grafiken in Ihrem Terminal.
MIT - LIBSPNG - Eine einfachere Oberfläche zum Lesen und Schreiben von PNG -Dateien.
BSD-2-Clause - libvips - Bildverarbeitungsbibliothek.
LGPL-2.1-or-later - libxMi - Funktionsbibliothek für Rastering 2D -Vektorgrafiken.
GPL-3.0-or-later - Lightmapper - Einlesie Bibliothek für das Backen von Lightmap -Backen mit einem vorhandenen OpenGL -Renderer. Öffentlich zugängliche.
- Little CMS - Ein Farbmanagementsystem. Es bietet schnelle Transformationen zwischen ICC -Profilen.
MIT - Mozjpeg - Verbesserter JPEG -Encoder.
BSD-3-Clause - Nanovg - Anti -Alias 2D -Vektor -Zeichnungsbibliothek auf OpenGL, für Benutzeroberfläche und Visualisierungen.
Zlib - OpenGL - Branchenstandard für Hochleistungsgrafiken mit einer nativen C -Bindung. Verschiedene Lizenzen.
- PLUTOVG - Eine eigenständige 2D -Vektor -Grafikbibliothek in C
MIT - Segel - ⛵ Die fehlende kleine und schnelle Bilddekodierbibliothek für Menschen (nicht für Maschinen)
MIT
Grafische Benutzeroberfläche
Widget -Toolkits oder Dinge, die auf ähnliche Weise wie sie verwendet werden sollen.
- GTK+ - plattformübergreifendes Widget -Toolkit.
LGPL-2.1-only - IUP - Ein weiteres plattformübergreifendes Widget -Toolkit.
MIT - microui - winzige UI -Bibliothek mit sofortiger Mode in tragbarem ANSI C.
MIT geschrieben - Nappgui - Professionelles SDK zum Erstellen von plattformübergreifenden Desktop -Anwendungen mit C.
MIT - Nuklear - Small, C89, Einzelkopf -Widget -Toolkit. Öffentlich zugängliche.
- TinyFiledialogs - Einzelfilmbibliothek für einfache Dialoge. Kompatibel mit vielen anderen Toolkits und Osen.
Zlib - TK - Basic Widget Toolkit. Teil von TCL/TK.
TCL - XForms Toolkit - Widget Toolkit für das XWindow -System entwickelt.
LGPL-2.1-only - LVGL-Eingebettete GUI mit benutzerfreundlichen grafischen Elementen, wunderschönen Bildern und einem Fußabdruck mit geringem Speicher.
MIT - LUIGI - Eine GUI -Bibliothek der Barebones Einkopf für Win32, X11 und Essenz.
MIT
Hashing
Hash -Funktionsimplementierungen für nicht -krypto -Zwecke. Kryptografische Hashes finden Sie im Krypto -Bereich.
- Clhash - Bibliothek implementiert die lächerlich schnelle Clhash -Hashing -Funktion. Funktioniert nur über Intel Haswell oder neuer.
Apache-2.0 - HighwayHash - schnelle, starke, simd -use -use -Hash -Funktion. Enthält auch eine Implementierung von Siphash (obwohl dies langsamer ist).
Apache-2.0 - SpookyHash - extrem schnelle Hash -Funktion.
BSD-3-Clause - T1HA - schnelles positives Hash - Eine tragbare, schnelle Hash -Funktion.
BSD-3-Clause - XXHASH - Extrem schneller Hashing -Algorithmus. Kommt in 32- und 64-Bit-Sorten.
BSD-2-Clause
Lernen, Referenz und Tutorials
Ressourcen für das Lernen von C -Programmieren im Allgemeinen oder etwas Nützliches in Bezug auf C -Programmierung.
Referenzressourcen online
- Benchmarks des Lockless Memory Allocators
- C FAQ - comp.lang.c häufig gestellte Fragen
- Vergleich der Implementierungen der C/POSIX -Standardbibliothek für Linux
- Entwurf C89 Standard
- Entwurf C99 Standard
- Entwurf C11 Standard
- Finden der besten 64-Bit-Simulation PRNG
- SEI -Zertifikat C -Codierungsstandard
- Tinyc.game - Tiny C -Spiele, die Sie jetzt kompilieren und ausführen können http://tinyc.games
MIT
Anfängerressourcen online
- Ein Tutorial über Zeiger
- Ein Tutorial über tragbare Makefiles
- Bau von C -Projekten
- C Programmieren von Wikibook
- Einführung in "Fun" c
- Lernen C mit GDB
- memcpy vs memmove
- POSIX -Threads Programmier -Tutorial (ein wenig veraltet, aber das meiste davon ist immer noch gültig und nützlich)
- Das GNU C -Programmier -Tutorial (Online -PDF)
- Vorlagen in c
- Was für ein C -Programmierer sollte über den Speicher wissen
- Codeforwin: Lernen Sie C -Programmierung, Datenstrukturen Tutorials und Übungen online
- Lernen Sie C: kostenloses und open-Source Interactive C Tutorial
- So programmieren Sie ein Textabenteuer in C.
Zwischenressourcen online
- 8 GDB -Tricks, die Sie wissen sollten
- 10 C99 Tricks
- Eine umfassende MPI -Tutorial -Ressource
- Erstellen Sie Ihren eigenen Texteditor
- Tauchen in Parallelität: Ausprobieren von Mutexen und Atomik aus ausprobieren
- Generische C -Referenzzählung
- So schreiben Sie tragbares C, ohne Ihren Build zu erschweren
- Einführung in OpenMP (Video)
- OpenMP -Tutorial (für den OpenMP3 -Standard)
- MPI -Tutorial
- Skalierbares C - großem Maßstab verteilt C.
- Einige unbekannte Funktionen oder Tricks in der C -Sprache
- Was jeder C -Programmierer über undefinedes Verhalten wissen sollte
Erweiterte Ressourcen online
- Erweiterte Metaprogrammierung in C
- Ein kurzes Tutorial zum Implementieren und Debuggen von Malloc, Free, Calloc und Realloc
- Bit twiddling Hacks
- Implementierung intelligenter Zeiger für die C -Programmiersprache
- Inline -Funktionen in c
- Metaprogrammierung benutzerdefinierte Kontrollstrukturen in C.
- Lösen des temporären Speicherproblems von C -Makros
- Einige dunkle Ecken von C
- Schreiben effizienter C- und C -Codeoptimierung
- Kompilieren algebraischer Datentypen in reinem C99
Nachschlagewerke
- C: Ein Referenzhandbuch 5E - Vollständiges Nachschlagewerk für C99.
- C In den Kurzschalen 2E - prägnantes Nachschlagewerk für C11.
- C Taschenreferenz - präziser Nachschlagewerk für C99.
- Die C -Programmiersprache 2E - Originalbuch über C, von seinen Schöpfer.
Anfängerbücher
- C Primer plus 6E - Komplettes Tutorial zum Programmieren in C11.
- C -Programmierung: Ein moderner Ansatz - ausgezeichnetes Buch zum Erlernen der Grundlagen von C.
- Head First C - Head -First' -Stilbuch zum Lernen C.
Zwischenbücher
- 21. Jahrhundert C - Gutes zweites Programmierbuch über C.
- Verständnis und Verwendung von C -Zeigern - eingehende Ressourcen für Zeiger in C.
- Zeromq - Buch für die Verwendung von Zeromq mit C.
Fortgeschrittene Bücher
- Experte C -Programmierung: Deep C Secrets - interessant, ausführlich und unterhaltsamen Blick auf die Innereien von C.
- Modern C, Third Edition: Deckt den C23 -Standard ab - In der modernen C, dritte Ausgabe werden Sie lernen, Cs volle Potenzial mit den neuesten Tools und Techniken zu nutzen.
Lexing und Parsen
Bibliotheken speziell für die lexikalische Analyse (oder Lexing) und die syntaktische Analyse (oder Parsing).
- Flex - Schneller lexikalischer Analysatorgenerator.
BSD-2-Clause - GNU Bison-Allgemeine Parsergenerator, der eine kommentierte kontextfreie Grammatik in eine Reihe von Parsers umwandelt.
GPL-3.0-or-later - Hammer - Parser -Kombinatoren für binäre Formate.
GPL-2.0-only - MPC - Parser -Kombinatorbibliothek.
BSD-2-Clause - OWL - ein Parser -Generator für sichtbar Pushdown -Sprachen.
MIT - RE2C - Lexer -Generator, die schnelle Lexer produzieren, mit Zugriff auf seine Interna. Öffentlich zugängliche.
Speicherverwaltung
Egal, ob eine andere, schnellere Malloc- oder völlige Müllsammlung, alles, was mit der Verwaltung von C -Erinnerung zu tun hat, lebt hier.
- BOehm GC - Müllsammlung für C. verschiedene Lizenzen, alle Open Source.
- Jemalloc - Malloc -Implementierung, die die Vermeidung von Fragmentierung und skalierbarer Genauigkeitsunterstützung hervorhebt.
BSD-2-Clause - Lockless Memory Allocator - Effizienter Speicher Allocator.
GPL-3.0-or-later - LIBCSPTR - Smart Zeiger für C.
MIT - RPMALLOC-Thread-Caching, schneller Speicher Allocator, natürlich an 32-Byte-Grenzen ausgerichtet. Öffentlich zugängliche.
- TALLOC - Hierarchische, referenzbezogene Speicherpoolsystem mit Zerstörern.
LGPL-3.0-or-later - TLSF - zweistufiger getrennter Fit -Allocator; Ein allgemeiner, dynamischer Speicherallocator, der für die Echtzeitanforderungen entworfen wurde. Aktuelle Implementierung.
BSD-3-Clause
Multimedia
- Aubio - Bibliothek für Audio- und Musikanalyse.
GPL-3.0-or-later - FFMPEG - Komplette plattformübergreifende Lösung zum Aufnehmen, Konvertieren und Streamen von Audio und Video.
LGPL-2.1-or-later - Gstreamer - Framework für Audio- und visuelle Medien.
LGPL-2.1-or-later - libmpv - Musik -Spielbibliothek.
GPL-2.0-or-later - libsndfile - Bibliothek zum Lesen und Schreiben von Sounddateien. Unterstützt viele Formate.
LGPL-2.1-only oder LGPL-3.0-only - libSoundio-Bibliothek für plattformübergreifende, Echtzeit-Audioeingabe und Ausgabe. Hat eine Reihe von Back-Ends.
MIT - LIBVLC - Komplette Multimedia -Bibliothek für Audio- und Videocodierung, Dekodierung, Spielen und Streaming.
GPL-2.0-only - LODEPNG - Einfacher PNG -Bilddecoder und -Codierer, das keine anderen Abhängigkeiten erfordert.
BSD-3-Clause - minimp3 - Leichtes MP3 -Decoder -Einzelkopfbibliothek.
CC0-1.0 - Soundpipe - Leichte Musik -DSP -Bibliothek.
MIT
Networking und Internet
Niedrige Netzwerk- und Internet-Sachen. Wenn Sie etwas umfassenderes und hochrangigeres möchten, möchten Sie möglicherweise den Abschnitt Web Frameworks.
- ASNLC - Compiler von ASN.1 -Spezifikationen in C -Quellcode.
BSD-2-Clause - CHL - C Hypertext -Bibliothek - eine Bibliothek zum Schreiben von Webanwendungen in C.
GPL-3.0-only - CZMQ - hochrangige Bindung für Nulomq.
MPL-2.0 - Dyad.C - Leichte, einfache, asynchrone Netzwerkbibliothek.
MIT - GNU ADNS-Fortgeschrittene, einfach zu bedienende, asynchisch-fähige DNS-Client-Bibliothek und -Verleistungen.
GPL-3.0-or-later - Gumbo -Parser - HTML5 Parsing Library in C99.
Apache-2.0 - H20 - Ein HTTP -Server der neuen Generation.
MIT - LLHTTP - HTTP -Anfrage/Antwort Parser.
MIT - LDNS - Bibliothek zur Vereinfachung der DNS -Programmierung.
BSD-3-Clause - LIBCURL - Client -Seite -URL -Transferbibliothek, die eine breite Palette von Formaten unterstützt.
curl - Libetpan - Mailbibliothek bietet ein effizientes Netzwerk für IMAP, SMTP, POP und NNNTP.
BSD-3-Clause - Libev - Noch eine Ereignisschleife.
BSD-2-Clause - libevent - Ereignisschleife Ersatz für Netzwerkserver.
BSD-3-Clause - libhttpd - Bibliothek zum Hinzufügen grundlegender Webserverfunktionen zu einer Anwendung oder einem eingebetteten Gerät.
GPL-2.0-only - LIBHV - Cross Plattform Event Loop Library.
BSD-3-Clause - Libidn - Implementierung der Spezifikationen StringPrep, Punycode und IDNA.
GPL-3.0-or-later - libmicrohttpd - Kleine Bibliothek, mit der ein HTTP -Server als Teil einer anderen Anwendung einfach ausführt.
LGPL-2.1-or-later - libnl -
libnl ist eine Sammlung von Bibliotheken, die APIs für das NetLink -Protokoll (Ersatz für IOCTL) anstellen. Die primäre Verwendung besteht darin, mit dem Linux -Kernel zu kommunizieren, den Netzwerkzustand (Schnittstellen, Routing usw.) zu ändern. LGPL-2.1-only - LIBONION - HTTP -Serverbibliothek, so konzipiert, dass sie einfach zu bedienen sind.
Apache-2.0 - LIBPCAP - API bietet verschiedene Kernel -Paket -Erfassungsmechanismus.
BSD-3-Clause - libquickmail - Bibliothek soll den Entwicklern eine Möglichkeit geben, E -Mails von ihren Bewerbungen zu senden. Unterstützt mehrere bis/cc/bcc -Empfänger und Anhänge ohne Größengrenzen.
GPL-3.0-or-later - libagui - Bibliothek für plattformübergreifende HTTP -Server.
LGPL-3.0-or-later - libuhttpd - Eine sehr flexible, leichte und vollständig asynchrone HTTP -Serverbibliothek basierend auf Libev und HTTP -Parser für eingebettete Linux.
MIT - LibvncServer - plattformübergreifende Bibliotheken zum Implementieren von VNC -Server- und/oder Client -Funktionen.
GPL-2.0-or-later - libwebsock-einfach zu bedienende und leistungsstarke Web-Socket-Bibliothek.
LGPL-3.0-only - LIBZMQ - CORE NERMOMQ -Bibliothek, eine leistungsstarke Asynchron Messaging -Bibliothek, die auf verteilte oder gleichzeitige Anwendungen verwendet wird. C API (Backend C ++)
GPL-3.0-or-later mit statischer Verknüpfungsausnahme - LWAN - Experimenteller, skalierbarer Hochleistungs -HTTP -Server.
GPL-2.0-only - Mongoose - eingebetteter Webserver.
GPL-2.0-only - MQTT -C - Ein tragbarer MQTT C -Client für eingebettete Systeme und PCs gleichermaßen.
MIT - Nanomsg - C -basierte Implementierung von Nulomq.
MIT - NNG - Nanomsg -Next -Generation - Leichtes Brokerless -Nachrichten.
MIT - OSIP - SIP -Implementierung ohne zusätzliche Abhängigkeiten.
LGPL-2.1-or-later - Silgy - Asynchroner HTTP (S) Motor für C/C ++ - Projekte.
MIT - Socket99 - C99 Wrapper für die BSD -Sockets -API.
ISC - Twitc - Mini -Bibliothek für die Interaktion mit der Twitter OAuth -API.
MIT - URIPARSER - Strictly RFC 3986 -konforme URI -Analyse- und Handhabungsbibliothek.
BSD-3-Clause - WSLAY - WebSocket -Bibliothek. Implementiert Version 13 des WebSocket -Protokolls, wie in RFC 6455.
MIT beschrieben - Zyre-Framework für Peer-to-Peer-Anwendungen auf der Proximität.
MPL-2.0
Numerisch
- Apophenie - Bibliothek für statistisches und wissenschaftliches Computer.
GPL-2.0-only - ARB - Bibliothek für willkürliche Präzisionsintervallarithmetik.
LGPL-2.1-or-later - ATLAS - Automatisch abgestimmte lineare Algebra -Software.
BSD-3-Clause - CLBLAs - BLAS -Funktionen, die in OpenCL geschrieben wurden.
Apache-2.0 - CMATHL - Mathematikbibliothek mit einer Vielzahl von mathematischen Funktionen mit CMake Build -Unterstützung. Versucht, in der Nähe von C89/C90 zu sein, um die Portabilität zu konform.
MIT - Kuba - Bibliothek für mehrdimensionale numerische Integration.
LGPL-3.0-only - FFT-C-Eine Hochleistungs-Fourier-Transformation aus Netlibs FFTPack; In ein benutzerfreundliches
MIT eingewickelt - FFTW - die schnellste Fourier -Transformation im Westen; Eine hoch optimierte Fourier -Transformationsroutine.
GPL-2.0-or-later - Flint - Schnelle Bibliothek für die Zahlentheorie; Eine Bibliothek, die Arithmetik mit Zahlen, Polynomen, Power -Serien und Matrizen unterstützt.
GPL-2.0-or-later - GLPK - GNU Linear Programming Kit; a package designed for solving large-scale linear programming, mixed integer programming and other related problems.
GPL-3.0-or-later - GMP - GNU Multple Precision Arithmetic Library; a library for arbitrary-precision arithmetic.
GPL-2.0-only or LGPL-3.0-only - GNU MPC - Library for complex number arithmetic.
LGPL-3.0-or-later - GNU MPFR - Library for arbitrary-precision floating-point arithmetic.
LGPL-3.0-or-later - GNU MPRIA - Portable mathematics library for multi-precision rational interval arithmetic.
GPL-3.0-or-later - GSL - The GNU Scientific Library; a sophisticated numerical library.
GPL-3.0-only . - KISS FFT - Simple fast Fourier transform library.
BSD-3-Clause - LAPACKE - Interface to LAPACK.
BSD-3-Clause - LibTomMath - Portable, number-theoretic, multiple-precision integer library. Supports algebra, digit manipulation, modular reductions, and various number-theoretic routines. Public domain.
- LibTomPoly - Polynomial-related maths library. Public domain.
- PARI/GP - Computer algebra system for number theory; includes a compiler to C.
GPL-2.0-or-later - PETSc - Suite of data structures and routines for scalable parallel solution of scientific applications modelled by partial differential equations.
BSD-2-Clause - SCS - Splitting Conic Solver; a numerical optimization package for solving large-scale convex cone problems.
MIT - SLEPc - Library for the solution of large, sparse eigenvalue problems on parallel computers.
LGPL-3.0-only - TomsFastMath - Set of optimized maths operations (in assembly), suitable for cryptographic use. Public domain.
- Yeppp! - Fast, SIMD-optimized mathematical library.
BSD-3-Clause
Profiling
- gperftools - Collection of utilities for measuring and improving performance.
BSD-3-Clause - gprof - Performance analysis tool. Part of GNU binutils.
GPL-3.0-or-later - OProfile - Statistical profiler for Linux. Can profile any code (including the kernel!) with low overhead and without recompilation.
GPL-2.0-only - perf - Linux kernel-based profiler with a lot of functionality.
GPL-2.0-only
PDF
- pdfio - PDFio is a simple C library for reading and writing PDF files.
Apache-2.0
Regex
- Onigmo - Fork of Oniguruma, supporting more advanced regexps.
BSD-2-Clause - Oniguruma - Regex library supporting a wide range of encodings, and incorporating many security-oriented fixes.
BSD-2-Clause - PCRE - Implementation of regexes identical to that of Perl 5.
BSD-3-Clause - SLRE - Super Light Regular Expression library; a small implementation of a subset of Perl regex syntax.
GPL-2.0-only - TRE - POSIX-compliant, feature-full regex library.
BSD-2-Clause
Serialisierung
- binn - Binary serialization format, meant to be compact, fast and easy-to-use.
Apache-2.0 - c-capnproto - Implementation of the Cap'n Proto serialization protocol.
MIT - cmp - Implementation of the MessagePack serialization protocol.
MIT - flatcc - FlatBuffers compiler and library.
Apache-2.0 - libavro - Implementation of the Avro data serialization system.
Apache-2.0 - mpack - Another implementation of the MessagePack serialization protocol.
MIT - OPIC - Object Persistence in C; a revolutionary serialization framework, with matching on-disk and in-memory representations.
GPL-3.0-or-later - protobuf-c - Implementation of Google Protocol Buffer.
BSD-2-Clause - tpl - Small binary serialization library.
MIT - xdr - External Data Representation; a standard for data serialization. Standard (no license applicable).
- pbtools - Google Protocol Buffers C source code generator.
MIT
Source Code Collections
Collections of small source code. If you want something big and integrated, check the Frameworks section.
- CCAN - Modelled after Perl's CPAN, this is a big collection of code that does stuff. The full list is here. Various licenses, all open source.
- clib - Something of a package manager. Comes with a bunch of libraries of its own.
MIT - gnulib - Collection of common GNU code. Various licenses, all open source.
- libdjb - Collection of libraries doing various things. (Apparently) public domain.
- mmx - Collection of single-header libraries. Various licenses, all open source.
- par - Bunch of single-file libraries.
MIT - Snippets - Useful code snippets and header-only libraries. Public domain.
- stb - Range of single-file libraries. Public domain.
- tinyheaders - Collection of header-only libraries, primarily oriented toward game development.
Zlib - zpl - C99 cross-platform header-only library with many goodies. [
BSD-3-Clause , Unlicense ][BSD-3-Clause, Unlicense]
Standard Libraries
Implementations of the (standard-mandated) C standard library.
- Bionic - Google's standard library, developed for Android.
BSD-3-Clause - cloudlibc - Standard library based on the concept of capability-based security.
BSD-2-Clause - dietlibc - Standard library designed for the smallest possible binaries.
GPL-2.0-only - glibc - The GNU C Library; an implementation of the standard library.
LGPL-2.1-only . - musl - Standard library, compatible with POSIX 2008 and C11. Designed for static linking.
MIT - PDCLib - The Public Domain C Library. Implements most of C99 and some of C11.
CC0-1.0 - uClibc-ng - Small C library for developing embedded systems.
LGPL-2.1-or-later
Template libraries
- CTL - C CONTAINER TEMPLATE LIBRARY (CTL)
MIT
String Manipulation
- bstring - The Better String Library.
BSD-3-Clause - ICU - International Components for Unicode; a library for Unicode support.
ICU - levenstein.c - Levenstein distance algorithm implementation.
MIT . - libunistring - Library for manipulating Unicode strings.
LGPL-3.0-only - libgiconv - Text conversion library.
LGPL-2.1-only - librope - UTF-8 rope ('heavy' string) library.
MIT - SDS - Simple Dynamic Strings; a library for handling strings in a simpler way, but one that is compatible with normal C string functions. Available via clib.
BSD-2-Clause - stmr.c - Porter Stemmer algorithm implementation.
MIT - str - Yet another string library for C language.
BSD-3-Clause - StringZilla - Up to 10x faster SIMD and SWAR-accelerated string search, sort, hashes, edit distances, alignments, and generators.
Apache-2.0 - utf8.h - Single-header UTF-8 library, designed to mimic C-style string functions. Public domain.
- utf8proc - Library for processing UTF-8 data.
MIT
Structured File Processing
This includes libraries for things like XML, JSON, CSV, and other similar formats.
CSV
- libcsv - Simple, streaming CSV parser.
LGPL-2.1-or-later
JSON
- Jansson - Library for encoding, decoding and manipulating JSON.
MIT - jfes - JSON For Embedded Systems; simple JSON engine without any dependencies.
MIT - jsmn - Minimalistic JSON parser.
MIT - json - Simple, low-memory-use JSON parser.
MIT - json-c - Easily work with JSON in C. Comes with a reference-counted object model, and aims for conformance with RFC 7159.
MIT - json.h - Single-file non-streaming JSON parser.
Unlicense - parson - Two-file, C89-compatible JSON parser.
MIT - WJElement - Advanced JSON manipulation library, with support for JSON Schema.
LGPL-2.0-or-later or LGPL-2.1-or-later or LGPL-3.0-or-later - YAJL - Fast streaming JSON parser library.
ISC
INI
- inih - Small and simple INI file parser, good for embedded systems.
BSD-3-Clause - iniparser - Parser for .ini files.
MIT - libconfini - Yet another INI parser.
GPL-3.0-only - minIni - Small and portable INI parser.
Apache-2.0
Andere
- libbson - BSON utility library.
Apache-2.0 - libcbor: CBOR protocol implementation for C and others.
MIT - libconfuse - Small configuration file parser library.
ISC - libelf - Simple library for parsing ELF files.
MIT - libucl - Universal configuration library parser.
BSD-2-Clause - libxo - Allows an application to generate plain text, XML, JSON and HTML output using a common set of function calls. The application decides at runtime what output style should be produced.
BSD-2-Clause
Xml
- Expat - Stream-oriented XML parser. MIT
- libxml2 - Standards-compliant, portable XML parser. MIT
- xml - Simple, low-memory-use XML parser / tokenizer.
MIT
YAML
- libYAML - YAML 1.1 parser and emitter.
MIT
Signal Processing
- libsigrok - signal analysis software suite that supports various device types (such as logic analyzers, oscilloscopes, multimeters, and more). [
GPL ][GPL]
Testen
- CHEAT - Simple unit testing framework.
BSD-2-Clause - Check - Unit testing framework.
LGPL-2.1-only - ciut - A modern minimal hassle unit test framework.
MIT - clar - Clear and simple unit testing framework.
MIT - CMock - Mock/stub generator.
MIT - cmocka - Unit testing framework with support for mock objects.
Apache-2.0 - Criterion - KISS, non-intrusive test framework.
MIT - ctest - Yet another unit testing framework.
Apache-2.0 - CUnit - Another unit testing framework.
LGPL-2.1-or-later - greatest - Unit testing library in one file, with no memory allocation.
ISC - minctest - Unit testing microlibrary.
BSD-3-Clause - munit - Small unit testing framework.
MIT - Nala - A test framework for C projects.
MIT - Rexo - Framework for C89/C++ featuring automatic registration of tests and a polished API.
Unlicense - Tau - A Micro Unit testing framework for C/C++ (~1k lines of code). Includes a rich set of assertion macros, supports automatic test registration and can output to multiple formats, like the TAP format or JUnit XML. Supported on Linux, macOS, FreeBSD, and Windows.
MIT - theft - Property-based testing (similar to Quickcheck).
MIT - Unity - Simple unit testing framework.
MIT - utest - Single-header unit testing library.
Unlicense
Text Editor Extensions
While practically any decent programmer's text editor supports C, there are some extensions that make it more pleasant. These are labelled by editor.
- CCompletion - Notepad++ autocompletion plugin. Works with all identifiers recognized by Ctags. This is a download link.
GPL-2.0-or-later - CEDET - Collection of Emacs Development Environment Tools; designed to provide IDE-like features to Emacs. Built-in.
GPL-3.0-or-later - Flycheck - Modern syntax checking for Emacs. For C, it can use either GCC or Clang as a back-end.
GPL-3.0-or-later - Neomake - Async :make and linting framework for Neovim/Vim.
MIT - Syntastic - Syntax checking and linting for Vim.
WTFPL - YASnippet - Emacs code template system, with C templates for common snippets.
GPL-3.0-or-later - YouCompleteMe - Code completion engine for Vim.
GPL-3.0-only
Werkzeuge
Useful programs to help you write and debug C code which are not editors, libraries or compilers.
- Artistic Style - Fast and small automatic source code formatter that supports C.
LGPL-3.0-only - address-sanitizer - Fast memory error detector.
Apache-2.0 - bcc - A byte array generator to import binary files directy from C in the spirit of xxd.
ISC - c - Compile and execute C "scripts" in one go on the command line. Also has shebang support.
MIT - c99sh - Run C files using hash-bang.
BSD-2-Clause - cdecl - Online service to translate C declarations into English and vice versa. Public domain.
- cinclude2dot - Graphs include dependencies in a project using Graphviz. GPL-1.0-or-later or
GPL-2.0-or-later or GPL-3.0-or-later - ClangCheck - Static analysis tool, designed to work with Clang.
NCSA - conan.io - Something of a package manager for C.
MIT . - Cppcheck - Static analysis tool. Despite the name, works well with C.
GPL-3.0-or-later - Glade - RAD tool to enable quick development of GTK+ GUIs.
GPL-2.0-only - GMSL - GNU Make Standard Library; a collection of additional functionality for GNU Make.
BSD-3-Clause - GNU Global - Source code tagging tool.
GPL-3.0-only - GPP - General-purpose preprocessor. More versatile than the C preprocessor, but more flexible than m4.
LGPL-3.0-or-later - Highlight - Converts source code to formatted text with nice highlighting.
GPL-3.0-only - include-what-you-use - Helps find unecessary inclusions and make suggestions for fixing them. Based on LLVM/Clang (and only works with it).
NCSA - incbin - Include binary files in your C/C++ applications with ease
Unlicense - indent - Formats C source code automatically to make it easier to read. Also converts from one style of source to another.
GPL-3.0-or-later - SMACK - Modular software verification toolchain and a self-contained software verifier. Currently only works with programs compiled using Clang.
MIT - unifdef - Removes #ifdef and #if directives with their delimited text without touching any other part of the file.
BSD-3-Clause or BSD-2-Clause
Utilities
A 'catch-all' category for anything that doesn't fit well anywhere else.
- ApeTagLibs - Library for working with APEv2 tags.
MIT - argparse - Command-line argument parsing library, inspired by Python's argparse module.
MIT - attr - Commands for manipulating filesystem extended attributes.
GPL-2.0-or-later - bfd - Library for manipulating binary object files. Part of GNU binutils.
GPL-3.0-or-later - Caffeine - Library for building daemons and services for Linux and FreeBSD systems.
LGPL-2.1-or-later - CException - Implementation of exceptions.
MIT - CommonMark - Implementation of the CommonMark spec.
- cosmopolitan - fast portable static native textmode containers (build C programs for LinuxMacWindows in one go) Variety of licenses, all open source.
- cpu_features - Get CPU features at runtime.
Apache-2.0 . - CRIU - Checkpoint/Restore In Userspace; a software tool (with a C API) for 'freezing' a running application to disk, then restoring it.
GPL-2.0-only or LGPL-2.1-only - D-Bus - Simple way for applications to talk to one another.
AFL-2.1 or GPL-2.0-or-later - Discount - Simple implementation of a Markdown parser.
BSD-3-Clause - dlx - Implementation of Knuth's Algorithm X, with example solvers.
GPL-3.0-or-later - docopt.c - Implementation of a command-line option parser.
MIT - dyncall - Another foreign function interface library.
MIT - GNU FreeIPMI - In-band and out-of-band IPMI implementation.
GPL-3.0-only - GNU gperf - Perfect hash function generator, given a list of strings. Outputs C code.
GPL-3.0-or-later - GNU Libffcall - Collection of libraries for building foreign function interfaces.
GPL-3.0-or-later - Hoedown - Fully standards-compliant, extension-supporting, UTF-8 aware, fast Markdown parser.
MIT - Kitsune - Efficient, general-purpose framework for dynamic software updating.
LGPL-3.0-or-later - libCello - Library introducing higher-level programming to C.
BSD-3-Clause - libcmark - Library for parsing the CommonMark dialect of Markdown.
BSD-2-Clause - libcoap - Implementation of the Constrained Application Protocol.
GPL-2.0-or-later or BSD-2-Clause - libcox - Library which permits cross-platform system calls and standard utilities across different operating systems.
BSD-2-Clause - libffi - Portable foreign-function interface library.
MIT - libgeohash - Pure C implementation of the Geohash algorithm.
BSD-3-Clause - libgit2 - Portable implementation of the Git core methods, provided as a re-entrant linkable library. Custom license.
- libgss - Generic Security Service.
GPL-3.0-or-later - libimobiledevice - Cross-platform protocol library to communicate with iThings.
LGPL-2.1-or-later - libnfc - Platform-independent Near-Field Communication library.
LGPL-3.0-only - libpostal - Library for parsing and normalization of street addresses around the world. Powered by statistical NLP and open geo data.
MIT - libtrading - Implementation of network protocols for communicating with exchanges, dark pools and other trading venues. Supports FIX, FIX/FAST and many proprietary protocols.
BSD-2-Clause - libusb - Provides generic access to USB devices.
LGPL-2.1-or-later - libuv - Cross-platform asynchronous I/O.
MIT - libvldmail - Your friendly email validation library. No external dependencies (not even regexps).
WTFPL - linenoise - Small, self-contained alternative to readline and libedit.
BSD-2-Clause - libXDGdirs - An implementation of XDG Base Directory Specification
MIT - MegaMimes - Library for getting the MIME types of a file.
MIT - ncurses - Coloured terminal UI library.
MIT - netbsd-curses - Simplified and small version of ncurses, with the same interface.
BSD-3-Clause - nope.c - Ultra-light software platform for scalable server-side and networking applications (think node.js for C programmers).
GPL-2.0-only - obj.h - A single-header supports OOP in pure C.
MIT - parg - A single-file reimplementation of
getopt with better defaults. CC0-1.0 - pbc - Protocol buffers library.
MIT - progressbar - Easy-to-use library for displaying text progress bars.
BSD-3-Clause - rabbitmq-c - Client library for RabbitMQ.
MIT - Ragel - DSL for state machines that compiles to C.
GPL-2.0-only - rmw - safe-remove utility for the command line that can purge items from your waste directories after x number of days.
GPL-3.0-or-later - Rogueutil - Cross-platform library for creating text-based user interfaces (TUI)
Apache-2.0 - sort - Collection of sorting routines, which type-specialize at compile-time with a user-defined type.
MIT - termbox - Library for writing text-based interfaces.
MIT - tinyexpr - Tiny recursive-descent parser, compiler and evaluation engine for simple mathematical expressions.
BSD-3-Clause - tm - ⏱ Timer and Timeline Utils for C.
MIT - Tulip Indicators - Library of functions for technical analysis of financial data.
LGPL-3.0-or-later - whereami - One-file library for locating the current executable on the file system.
WTFPL - XLSX I/O - Cross-platform library for reading and writing .xlsx files.
MIT - xlsx_drone - Fast Microsoft Excel's *.xlsx reader.
MIT - zlog - Reliable, pure C logging library.
LGPL-2.1-only - zproto - Protocol framework for ZeroMQ.
MIT - Metalang99 - Full-blown preprocessor metaprogramming.
MIT - Datatype99 - Algebraic data types for C99.
MIT - EasyLogger - An ultra-lightweight, high-performance C/C++ log library.
MIT
Web Frameworks
Comprehensive and integrated solutions for building the next brilliant web application in C.
- Concord - A Discord API wrapper library written in C.
MIT - facil.io - Mini-framework for web applications. Includes a fast HTTP and Websocket server, and also supports custom protocols.
MIT - kcgi - CGI and FastCGI library for C
ISC . - KLone - Fully featured, multi-platform, web application development framework, targeted especially at embedded systems and appliances.
BSD-3-Clause - Kore - Easy-to-use web application framework for writing scalable web APIs in C.
ISC
Windows Environments
Technologies designed to bring Windows into the 21st century with respect to support for C.
- Cygwin - Designed to emulate a POSIX-compatible environment extensively under Windows. Various licenses, all open source.
- MinGW-w64 - Minimalist environment for C development on Windows with 64 bit support. Various licenses, all open source.
- MSYS2 - Minimal SYStem 2; aims to provide support for a POSIX environment on Windows, with a package manager based on Arch Linux's pacman. Packages have individual licenses, otherwise, as MinGW and Cygwin.