Skip to content
On this page

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)