Skip to content
Al B edited this page Aug 7, 2025 · 418 revisions

List of available packages. This page is mined to populate clib-search(1).

String manipulation

Utilities

Data structure

Parsing

Encoding/Decoding

Filesystem

Hashing

Encryption

  • veqtrus/vial_aes - AES block cipher with ECB, CBC, CTR, EAX encryption/ decryption and CMAC authentication

Net

Libraries

  • clibs/uv - Cross-platform asychronous I/O
  • clibs/leveldb - LevelDB is a fast key-value storage library written at Google that provides an ordered mapping from string keys to string values
  • clibs/ck - Concurrency primitives, safe memory reclamation mechanisms and non-blocking data structures designed to aid in the research, design and implementation of high performance concurrent systems.
  • beltex/libsmc - Apple System Management Controller (SMC) API
  • brendanashworth/r3 - high-performance path dispatching library for the web
  • qute/qute - AST generation library
  • clibs/sophia - modern embeddable key-value database
  • tzador/gl-matrix - Matrix and Vector library for High Performance OpenGL apps
  • clibs/stb - stb single-file public domain libraries for C/C++
  • daddinuz/option - Mimic Rust's Option type
  • jwerle/libara - a library for constructing random access memory interfaces. Operations are asynchronous and are provided data structures for relaying memory between functions. It is built on top of libuv (libuv >= 1.x.x). It is inspired by Julian Gruber's abstract-random-access.
  • septag/sx - Portable base library for C programmers, tailored for system programmers and game developers. Includes containers, hash-table, memory allocators, fibers, threading, random generator, timer, multi-threaded task scheduler, math (linear algebra/vector/matrix/tweening), etc..
  • jwerle/libnanoresource - A C99 library for creating tiny async resources.
  • jwerle/libram - A C99 library for creating random access memory interfaces.
  • jwerle/libras - A C99 library for creating random access storage interfaces.
  • jwerle/libalru - libalru is a library for creating really fast numeric based LRU caches that leverage an optimized CRC-16-CCITT ported over from @mafintosh's array-lru.
  • andrerenaud/pdfgen - A minimalistic C99 library for creating PDF document.
  • Immediate-Mode-UI/Nuklear - A single-header ANSI C immediate mode cross-platform GUI library.
  • phoenixpinpoint/butterknife - A simple HTML templating system.
  • phoenixpinpoint/fracture - Fracture provides a robust set of tools for developing web applications in C. Build to JS or WASM.

Preprocessor macros

Program flow

  • jlcordeiro/threadpool - A simple thread pool implementation (POSIX)
  • jwerle/async.h - Asynchronous goodies built on libuv
  • stephenmathieson/batch.c - Simple async batch using pthreads
  • ScientificC/errno - This repository contains some error handling modules used in the development of the libraries of SciC
  • clibs/trigger - Simple event handling library.
  • stephenmathieson/emitter.c - Tiny event emitter
  • jwerle/throw.h - Create and throw errors easily
  • 4thel00z/cry.h - Cry about your program (like throw.h) but with colors
  • clibs/coro - Coroutines in C
  • tylertreat/chan - Pure C implementation of Go channels
  • trws/libdefer - Go-style defer in C
  • willemt/uv_multiplex - Let's share one TCP socket across multiple threads
  • willemt/bmon - Batch work from multiple threads
  • guillermocalvo/exceptions4c - An exception handling library for C
  • guillermocalvo/resultlib - Elegant error handling in C
  • Mobiushorizons/closure_module - Standardized callback interface.
  • aperezdc/autocleanup - Utility macros for typesafe RAII-style scoped cleanups for variables.
  • goodcleanfun/threading - cross-platform C11 threads.h implementation that works on Linux, Mac, and Windows, plus a cross-platform read-write lock
  • goodcleanfun/spinlock - simple test-and-test-and-set (TTAS) spinlock implementation using C11 atomics
  • goodcleanfun/seqlock - a cross-platform sequence lock using C11 atomics, an efficient reader-writer synchronization mechanism for updating shared data (but not pointer-based structures) where reads vastly outnumber writes while also avoiding writer starvation.
  • goodcleanfun/random_backoff Exponential backoff strategy with thread-local randomization to avoid contention. Can be used as part of any lock implementation or multi-threaded program.
  • goodcleanfun/mcs_spinlock a Mellor-Crummey Scott queued spinlock using C11 atomics, which requires threads to spin only on their local node, better suited to NUMA architectures.
  • goodcleanfun/ticket_spinlock a ticket lock for fair FIFO locking using C11 atomics where each lock acquisition is assigned a unique ticket number from an atomic counter and requests are served in order of their ticket, with each unlock incrementing the serving counter so that the next ticket can proceed.
  • goodcleanfun/rw_ticket_spinlock small (50x smaller than pthread_rwlock_t), fair, reader-writer ticket-based spinlock which allows many readers to acquire the lock at the same time while allowing only one writer at at time and serves requests in FIFO order to prevent starvation of writers and readers.

Serialization

Testing/Quality Assurance

Timing

Executables

OS Specific

Plugins

Math

  • ScientificC/cmathl - A pure-C math library with a great variety of mathematical functions. Seeks to be close to C89/C90 compliant for portability.
  • jb55/bresenham-line.c - Bresenham's line drawing algorithm
  • MauroMombelli/TrigonomeC - Basic implementation of 3d vector and quaternion
  • MauroMombelli/FreeDCM - An implementation of Direct Cosine Matrix, a fast orientation algorithm
  • willemt/minmax - min and max functions
  • glisy/math - Common linear algebra functions for OpenGL
  • littlstar/clamp - Macro to clamp a value between two other values
  • catb0t/yacbnl - yet another C bignum library for C99
  • erstan/ceval - Parse and evaluate math expressions
  • tochinet/Posit - Posit arithmetic for embedded systems
  • mofosyne/bound_and_clamp.c - Various macros and functions for validating and guarding signals in c (Bounds, Clamps, etc...)
  • goodcleanfun/vectorized - Vectorized operations for numeric arrays using multithreading on larger arrays and SIMD in all cases if compiled with OpenMP. Includes cross-platform (via SIMDe) AVX2 vectorized implementations of exp, log, sin and cos.
  • mofosyne/linmap.h - Lightweight Linear Mapping Library (e.g. ADC Conversion)
  • goodcleanfun/simde_avx2 - pulls latest release from SIMD Everywhere, a well-tested header-only library which implements SIMD instruction sets for systems which don't natively support them e.g. will allow using AVX2 code on any platform and will generate the appropriate instructions, say NEON on Apple's M chips. This clib package only pulls in the necessary headers for supporting AVX2 instructions.
  • goodcleanfun/simde_sse2 - pulls latest release from SIMD Everywhere, a well-tested header-only library which implements SIMD instruction sets for systems which don't natively support them e.g. will allow using SSE2 code on any platform and will generate the appropriate instructions, say NEON on Apple's M chips. This clib package only pulls in the necessary headers for supporting SSE2 instructions.

AVR

OpenGL

Profiling

  • daddinuz/watchdog - A memory tracer useful to analyze memory usage or detect leaks.