C libraries
Web
- IWNET - Pure C Asynchronous HTTP library with websockets, SSL, routing.
- facil.io - C micro-framework for web applications.
- libart - Adaptive Radix Trees implemented in C.
- httpserver.h - Single header library for writing non-blocking HTTP servers in C. (HN)
- Dyad.c - Asynchronous networking for C.
- ENet - Reliable UDP networking library. (Web)
- CivetWeb - Embedded C/C++ web server.
- Libwebsockets - C library for implementing modern network protocols. (HN)
- PicoHTTPParser - Tiny, primitive, fast HTTP request/response parser.
- picoev - Tiny, lightning fast event loop for network applications.
- Onion - C library to create simple HTTP servers and Web Applications.
- xHTTP - HTTP server library in a single C file. (HN)
GUI
- libui - Portable GUI library for C.
- Nuklear - Minimal-state, immediate-mode graphical user interface toolkit written in ANSI C. (HN) (HN)
- Pugl - Minimal portable API for embeddable GUIs.
- PlutoVG - Standalone 2D vector graphics library in C.
- VUI - Immediate UI library for C, designed to be easy to use & customizable.
- microui - Tiny immediate-mode UI library. (Implementation Overview)
- SDL_gpu - Library for high-performance, modern 2D graphics with SDL written in C.
- Layout - Single-file library for calculating 2D UI layouts using stacking boxes. Compiles as C99 or C++
Graphics
- rawdraw - Fundamental Graphics Library.
- LVGL - Light and Versatile Graphics Library. (Web)
- Kinc - Modern low level game library and hardware abstraction.
- Cairo - Multi-platform 2D graphics library.
- minidraw - Single file 2D graphics library written in C.
- TinyGL - Penultimate portable graphics library.
- raygui - Simple and easy-to-use immediate-mode GUI library. (HN)
- Ferox - Lightweight 2D collision detection and physics library written in C.
- gk - Graphics Kernel: flexible, highly configurable, extensible render engine (real time + offline).
- AssetKit - Modern 2D/3D - Importer • Exporter • Util - Library.
- HAGL - Hardware Agnostic Graphics Library for embedded.
- Adafruit GFX - Graphics library for all our displays, providing a common set of graphics primitives (points, lines, circles, etc.).
- Olive.c - Simple 2D Graphics Library for C. (Demos) (HN)
- Fenster - Most minimal cross-platform GUI library. (Article) (HN)
- SDL - Cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware via OpenGL and Direct3D.
Test
- greatest - C testing library in 1 file. No dependencies, no dynamic allocation.
- Check - Unit testing framework for C.
- CT - Easy Unit Testing for C.
- Unity Test - Simple Unit Testing for C.
- CMock - Mock/stub generator for C.
- CTEST - Unit test framework for software written in C/C++.
- Snow - Testing library for C.
CLI
- Argtable3 - Single-file, ANSI C, command-line parsing library that parses GNU-style command-line options.
DB
- IOWOW - C11 persistent key/value storage based on skip list data structure. (Web)
- hashmap - Templated type-safe hashmap implementation in C using open addressing and linear probing for collision resolution.
- libyang - YANG data modelling language parser and toolkit written (and providing API) in C.
Math
- Calcium - Exact real and complex numbers in C.
- OpenLibm - High quality, portable, standalone C mathematical library.
- FLINT - Fast Library for Number Theory.
Crypto
- libmongocrypt - C library for Client Side Encryption.
- SipHash - Family of pseudorandom functions (PRFs) optimized for speed on short messages.
- curve25519 - Highly efficient implementation of elliptic curve 25519.
- libp11 - Abstract API to perform operations on cryptographic objects such as private keys, without requiring access to the objects themselves.
Other
- jemalloc - General purpose malloc implementation that emphasizes fragmentation avoidance and scalable concurrency support.
- Libtask - Coroutine Library for C and Unix.
- Simple Dynamic Strings
- Cello - Higher level programming in C. (Web) (HN) (HN)
- libdill - Structured concurrency in C.
- Libmill - Go-style concurrency in C. (Web) (HN)
- CRoaring - Roaring bitmaps in C (and C++).
- cr.h - Simple C Hot Reload Header-only Library.
- cgltf - Single-file glTF 2.0 loader and writer written in C99.
- utf8proc - Clean C library for processing UTF-8 Unicode data.
- Sokol - Simple STB-style cross-platform libraries for C and C++, written in C.
- libcsp - Fast C concurrency library influenced by the CSP model. (HN)
- libsrt - C library for writing fast and safe C code, faster.
- sx - Portable base library for C programmers, designed for performance and simplicity.
- poica - ADTs with pattern matching and type introspection for pure C.
- MiniFB - Small cross platform library to create a frame buffer that you can draw pixels in. (HN)
- liblfds - Portable, license-free, lock-free data structure library written in C.
- mlibc - C standard library. (Lobsters)
- miniaudio - Single file audio playback and capture library written in C. (Web)
- libeatmydata - LD_PRELOAD library that disables all forms of writing data safely to disk. fsync() becomes a NO-OP, O_SYNC is removed etc.
- C Smart Pointers - Attempt to bring smart pointer constructs to C programming language. (Article)
- Criterion - Dead-simple, yet extensible, C and C++ unit testing framework.
- PortAudio - Cross-platform, open-source C language library for real-time audio input and output.
- libevent - Event notification library. (Web)
- FlatCC - FlatCC FlatBuffers in C for C.
- libusb - Cross-platform library to access USB devices. (Web)
- GIF encoder - Small C library that can be used to create GIF animations.
- libnfc - Library which allows userspace application access to NFC devices. (Web)
- C Thread Pool - Minimal but advanced threadpool implementation.
- libhv - Like libevent, libev, and libuv, libhv provides event-loop with non-blocking IO and timer, but simpler apis and richer protocols.
- C macros for hash tables and more
- LambdaPP - Anonymous functions in C.
- Metacall - Library for providing inter-language foreign function interface calls. (Web)
- CTL - C Template Library. (Lobsters) (HN)
- libavif - Library for encoding and decoding .avif files.
- libusual - Modern C Environment. (Web)
- bsdiff/bspatch - Libraries for building and applying patches to binary files.
- libbacktrace - C library that may be linked into a C/C++ program to produce symbolic backtraces.
- Datatype99 - C99 with sum types. (HN)
- gridsort - Stable adaptive partitioning comparison sort.
- Common C libraries and data structures (HN) (HN)
- libco - Cooperative multithreading library written in C89.
- HYPRE - Parallel solvers for sparse linear systems featuring multigrid methods. (Web)
- Simple DirectMedia Layer (SDL) - Cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware. (Code)
- TinyExpr - Small recursive descent parser and evaluation engine for math expressions. (Web)
- HIDAPI - Simple library for communicating with USB and Bluetooth HID devices on Linux, Mac and Windows.
- Minicoro - Single-file library for using asymmetric coroutines in C.
- utf8.h - Simple one header solution to supporting utf8 strings in C and C++.
- C-Blosc2 - Fast, compressed and persistent data store library for C.
- Blitsort - Rotate merge sort based on quadsort. (HN)
- Stricks - Managed C strings library.
- Zpoline - Efficient and versatile system call hook mechanism.
- STC - Modern, user friendly, generic, type-safe and fast C99 container library.
- vx32 - Portable, efficient, safe execution of untrusted x86 code.
- Metalang99 - Full-blown preprocessor metaprogramming.
- cmacro - Lisp macros for C. (HN)
- libuvc - Cross-platform library for USB video devices.
- mlib - Library of generic and type safe containers in pure C language (C99 or C11) for a wide collection of container (comparable to the C++ STL).
- TinyUSB - Open source cross-platform USB stack for embedded system.
- HPIPM - High-performance interior-point method solver for dense, optimal control- and tree-structured convex quadratic programs.
- libgrapheme - Suckless Unicode string library. (Lobsters)
- clhash - C library implementing the ridiculously fast CLHash hashing function.
- Gunslinger - C99, header-only framework for games and multimedia applications.
- Capere - Apple Silicon hooking library written in C.
- libcork - Simple, easily embeddable cross-platform C library. (Docs)
- s_task - Awaitable coroutine library for C.
- Trice - Super fast and tiny embedded device C printf-like trace code (works also inside inerrupts) and real-time PC logging (trace ID visualization).
- Hatrack - Collection of hash tables for parallel programming, including lock-free, wait-free tables.
- DeviceTree - Minimal code to deal with Apple's DeviceTree format.
- IRIS - Unified framework across multiple programming platforms.
- NLopt - Library for nonlinear local and global optimization, for functions with and without gradient information.
- base64 - Fast Base64 stream encoder/decoder in C99, with SIMD acceleration.
- cute_headers - Various single-file cross-platform C/C++ headers implementing self-contained libraries.
- js0n - Flexible Zero-Footprint JSON Parser in C.
- librseq - Library for Restartable Sequences.
- argparse - Command-line arguments parsing library.
- NSIMD - Vectorization library that abstracts SIMD programming.
- Buffet - All-inclusive Buffer Type for C.
- clib - Package manager for the C programming language. (Web) (HN) (HN)
- libcbor - CBOR protocol implementation for C.
- Interface99 - Full-featured interfaces for C99.
- SDL_sound - Abstract soundfile decoder.
- musl libc - C standard library implementation for Linux. (Wiki) (Wiki Code)
- PDCLib - Public Domain C Library.
- Shine - Fast fixed-point mp3 encoding.
- Portable Snippets - Collection of miscellaneous portable C snippets.
- Async.h - Stackless Async Subroutines for C.
- libreactor - Extendable event driven high performance C-abstractions.
- Tiny Rust libc - Tiny C library written in Rust.
- Tina - Tiny, header only, coroutine and fiber library.
- Rax - ANSI C radix tree implementation.
- libhelper - Library for parsing Image4 and Mach-O formats, and working with Files and LZFSE/LZSS compression.
- Quiet - Transmit data with sound. Includes binaries for soundcards and .wav files.
- SIMDComp - Simple C library for compressing lists of integers using binary packing.
- libsoundio - C library for cross-platform real-time audio input and output.
- libconcurrent - Concurrent Programming Library (Coroutine) for C11.
- libudx - Reliable, multiplex, and congestion controlled streams over udp.
- Universal Headers - Distributes a set of C headers (.h files) that are compatible with widely used libcs for various targets.
- Serd - Lightweight C library for RDF syntax.
- libpostal - C library for parsing/normalizing street addresses around the world. Powered by statistical NLP and open geo data.
- J40 - Independent, self-contained JPEG XL decoder. (HN)
- nsync - C library that exports various synchronization primitives, such as mutexes.
- GNU C Library - Standard system C library.
- jc_voronoi - Fast C/C++ header only implementation for creating 2D Voronoi diagrams from a point set.
- coroutine - Asymmetric coroutine library for C.
- YAJL - Fast streaming JSON parsing library in C.
- libbloom - Simple and small bloom filter implementation in plain C.
- OpenSlide - C library for reading virtual slide images.
- C23 implications for C libraries (2022)
- Linked Ring Buffer Library
- cauldron - Collection of single-file C libraries and tools with the goal to be portable and modifiable.
- qLibc - Simple and yet powerful C library providing generic data structures and algorithms.
- bloom - Bloom filter implementation.
- Ring-Buffer - Simple ring buffer (circular buffer) designed for embedded systems.
- Nolibc - Minimal C-library replacement shipped with the kernel. (HN)
- BlueRetro - Multiplayer Bluetooth controllers adapter for retro video game consoles.
- PhysicsFS - Portable, flexible file i/o abstraction.
- My review of the C standard library in practice (2023) (HN) (Lobsters) (HN)
- Bunki - Simple C cororoutine library.
- json.c - Fast little JSON library for C.
- STR - C String handling library.
- Json Parser
- Growable Memory Buffers for C99
- Neverflow - Set of C macros that guard against buffer overflows. (HN)
- libhamt - Hash array-mapped trie implementation in C. (HN)
- Because I can't ever remember SDL (2023)