awesome-c

C dev toolkit

A curated collection of C libraries and tools for various aspects of software development

A curated list of awesome C frameworks, libraries, resources and other shiny things. Inspired by all the other awesome-... projects out there.

GitHub

9k stars
285 watching
831 forks
last commit: 4 months ago
Linked from 5 awesome lists

awesomeawesome-listclist

Awesome C / AI

ccv C-based/Cached/Core Computer Vision library; modern computer vision
Cranium Portable, header-only ANN library in C99
FANN 1,594 7 months ago Fast Artifical Neural Network library; an implementation of neural networks
Genann Simple ANN in C89, without additional dependencies
KANN 686 almost 3 years ago Two-file ANN library
LibDEEP 23 over 5 years ago Deep learning library
m2cgen 2,816 4 months ago A CLI tool to transpile trained classic ML models into a native C code with zero dependencies
sod An Embedded Computer Vision & Machine Learning Library

Awesome C / Benchmarking

b63 56 almost 2 years ago Light-weight micro-benchmarking tool for C

Awesome C / Build Systems

Autotools Also known as the GNU build system (automake, autoconf, libtool...) is one of the most widely used build systems (configure && make)
Autotools project skeleton 22 4 months ago A simple autotools skeleton (template) to quickly bootstrap new projects
CMake Cross-platform family of tools designed to build, package and test software
GNU Make Tool which controls the generation of executables and other non-source files of a program
Meson Extremely fast, user-friendly build system. Based on Ninja
Premake Command-line utility which reads a scripted definition of a software project and uses it to generate project files for Visual Studio and GNU Make. Other targets are also being worked on
SCons Software construction tool using Python
xmake Cross-platform build utility
zproject 149 4 months ago Project generator and build system support tool

Awesome C / Compilers

ccache Compiler cache designed to speed up recompilation
Clang Compiler for LLVM. Supports C11
cproc A C11 compiler using QBE as a backend
distcc 2,078 about 1 month ago Program that allows builds to be distributed among several machines
Firm Library that provides a graph-based intermediate representation, optimizations and assembly code generation suitable for use in compilers. Comes with an example C front-end under the same license
GCC Provides a C compiler as part of its compiler set. Supports C11
PCC Venerable compiler. Supports C99. , all open source

Awesome C / Compression

blosc Extremely fast, multi-threaded, meta-compressor library. Various licenses, all open source
Brotli 13,586 6 days ago General-purpose lossless compression algorithm library. Has speeds comparable to DEFLATE, but much higher compression ratios.
clzip C version of the high-quality data compressor (LZMA implementation)
CRoaring 1,573 10 days ago C implementation of
FiniteStateEntropy 1,340 8 months ago Two highly efficient compression codecs optimized for modern CPUs
DENSITY 1,017 12 days ago Super-fast compression library
heatshrink 1,333 6 months ago Data compression/decompression library for embedded and real-time systems
fast_zlib 133 about 2 years ago Improved zlib, which runs 2 to 10 times faster
fastLZ 439 4 months ago Lightning-fast lossless compression library (LZ77 type). Embbedable on small target like ARM Cortex-M families. Source code directly embbedable on your project ( a pair of h/c files), no dynamic memory allocation
huffandpuff 98 over 11 years ago Minimal Huffman encoder and decoder. Public domain
libzip 307 23 days ago C library for reading, creating and modifying zip archives
libbzip2 Patent-free, high-quality data compression library
Lizard 655 almost 4 years ago Formerly LZ5; an efficient compressor with fast decompression. Achieves compression ratios comparable with zip and zlib at decompression speeds of 1000MB/s and faster
lz4 Library for an extremely fast compression algorithm
lzo Fast data compression library
pixz 711 5 months ago Parallel, indexed xz compressor
shoco Compressor for small text strings
SIMDComp 490 over 1 year ago Simple library for compressing lists of integers using binary packing. Makes use of SIMD instructions on x86
smaz 1,172 about 5 years ago Efficient string compression library
squash 405 over 4 years ago Compression abstraction library, complete with some utilities
TurboPFor 772 9 months ago Fastest integer compression
TurboRLE 284 over 1 year ago Most efficient run-length encoding
zip 1,420 3 months ago Really really small zip archive processing library
Zlib Massively spiffy yet delicately unobtrusive compression library
libarchive 3,050 4 days ago libarchive is a portable, efficient C library that can read and write streaming archives in a variety of formats
zlib-ng 15 over 3 years ago Zlib replacement with optimizations for 'next-generation' systems
Zstandard Fast, lossless compression algorithm, targeting real-time compression scenarios at zlib-level or better compression ratios

Awesome C / Concurrency and Parallelism

cchan Small library for channel constructs for inter-thread communication. Public domain
checkedthreads 290 about 11 years ago A simple library for parallelism, with built-in checking for race conditions
ck Concurrency primitives, safe memory reclamation mechanisms and non-blocking data structures
FCFS RWLock First-come first-served Readers/Writers lock for POSIX threads
Libaco 3,516 over 2 years ago A blazing fast and lightweight C asymmetric coroutine library
libconcurrent 361 about 3 years ago Concurrent programming library, using coroutines, for C11
libcsp 1,309 over 1 year ago High performance concurrency C library influenced by the CSP model
libdill Library which makes structured concurrent programming easy
libhl 423 3 months ago Library implementing a thread-safe API to manage a range of data structures. Also provides some supporting functions and structures for concurrent and lockfree programming
liburcu Data synchronization library, which scales linearly with the number of cores
mill Go-style concurrency
oclkit 16 over 7 years ago Two-file OpenCL wrapper
OCL-MLA OpenCL Mid-Level Abstractions
OpenMP Set of pragmas designed to allow for easy parallelization of code. Standard (licensing not applicable)
Open MPI 2,168 6 days ago Message passing interface implementation
pal 302 about 4 years ago Optimized library for maths, parallel processing and data movement
pth Portable implementation for non-preemptive priority-based scheduling for multiple threads of execution
pthreads POSIX thread library. Standard (no license applicable)
TinyCThread Portable, small implementation of the C11 threads API

Awesome C / Crypto

GNU SASL Implementation of the Simple Authentication and Security Layer and a few common SASL mechanism
GnuTLS Secure communication library, implementing SSL, TLS and DTLS
libgcrypt General-purpose cryptography library, with a range of available ciphers
OpenSSL Implementation of the SSL and TLS protocols. Also includes a cryptography library.
liboqs Library for quantum-resistant cryptographicl algorithms
libsodium Modern and easy-to-use crypto library
libtomcrypt Fairly comprehensive, modular and portable cryptographic toolkit. Public domain
mbed TLS Another crypto implementation
MIRACL 652 over 3 years ago Multiprecision Integer and Rational Arithmetic Cryptographic Library; an SDK for elliptic curve cryptography
retter Collection of hash functions, ciphers, tools, libraries and materials related to cryptography and security. Public domain
s2n 4,531 7 days ago C99 implementation of the TLS/SSL protocols, designed to be simple, fast and with security as a priority
sphlib Set of implementations of various hash functions, including several cryptographic ones
trezor-crypto 500 over 4 years ago Heavily optimized crypto algorithms for embedded devices
bfish 3 about 1 year ago A single include ANSI-C Blowfish ECB crypto library. Public domain

Awesome C / Database

BerkeleyDB Library for a high-performance embedded database for key-value data
DuckDB Fast in-process analytical database, with C API
EJDB2 Embeddable JSON Database engine
Groonga 801 6 days ago Columnar store with full-text search
Hiredis 6,258 17 days ago Minimalistic client library for Redis
libmongoc High-performance client library for
LMDB Ultra-fast, ultra-compact key-value embedded data store
MySQL 10,879 about 1 month ago The world's most popular open source database
PostgreSQL Powerful object-relational database system
Redis Advanced key-value store
sophia Modern, embeddable key-value database
sparkey 1,179 over 1 year ago Simple constant key/value storage library. Designed for read-heavy loads with infrequent, large bulk inserts
SQLite Self-contained, serverless, zero-configuration, transactional SQL database engine. Public domain
UnQLite Self-contained, serverless, zero-configuration, transactional NoSQL engine
WhiteDB 608 almost 2 years ago Lightweight database library, operating entirely in main memory
FlashDB 1,914 about 1 month ago An ultra-lightweight database that supports key-value and time series data
TDengine 23,395 6 days ago High-performance, cloud native time-series database

Awesome C / Data Structures

C-Macro-Collections 534 5 months ago Generate simple and generic data structures using macros
CLIST 56 over 2 years ago Simple and lightweight implementation
Collections-C 2,829 6 months ago Library of generic data structures
ds 51 about 1 year ago Common Data Structures and Algorithms
igraph A graph processing library
kdtree 395 over 3 years ago Simple library for working with KD-trees
libavl Library containing a range of self-balancing binary trees
libcdada A small, portable, MACRO-less library for basic data structures (list, set, map, queue...) in C (C++ backend)
liblfds Portable lock-free data structure library. Public domain (more exactly, whatever license you want)
libsrt Soft and hard real-time data structures.
list.h 49 9 months ago Implementations for singly linked and doubly linked list functions
M*LIB 904 10 days ago Library for generic, but typesafe C containers. Implemented as header-only
offbrand 81 about 9 years ago Collection of generic, reference-counted data structures
PackedArray 158 over 2 years ago Random-access array of tightly packed unsigned integers of any desired width. Has a SIMD-optimized implementation
rb3ptr Red-Black tree. Exposes almost all implementation primitives, so can be used for scenarios like augmentation, multiple compatible ordering functions, and more
uthash Single-file hash table implementation
vector.h 44 over 10 years ago Header library for typed lists

Awesome C / Debugging

C-Reduce Tool that takes a large C file with a property of interest and automatically produces a much smaller C file that has the same property. Intended to help create minimal bug-demonstrating cases in complex code
CBMC C Bounded Model Checker; a tool for verification of array bounds, pointer safety and user-specified assertions
cflow Analyzes a collection of source files and prints a graph charting control flow in the program
Complexity Tool for measuring the complexity of source code
CScout Source code analyzer and refactoring browser for C programs
DDD Graphical front-end for a range of command-line debuggers
debug 279 over 9 years ago One-header library for easier 'printf debugging'
ESBMC Efficient SMT-based Bounded Model Checker; a tool for verification of single and multithread programs, user assertions, overflow, and pointer/memory safety
GDB GNU Project debugger
lldb LLVM debugger
rr Debugger that records non-deterministic executions to allow for deterministic debugging
Valgrind Range of dynamic analysis tools, including a leak checker

Awesome C / Documentation Generation

Cxref Generates documentation in either LaTeX, HTML, RTF or SGML
DocOnce Modestly tagged markup language that can be used to generate a range of formats
Doxygen De-facto standard tool for generating documentation from annotated sources. Can generate a large range of formats

Awesome C / Editors

Anjuta DevStudio GNOME IDE
Code::Blocks Extendable, configurable IDE supporting C
CodeLite Cross-platform IDE
Geany Small and fast IDE
KDevelop KDE IDE
zinjaI Simple, lightweight and feature-rich IDE

Awesome C / Embeddable Scripting Engines

Duktape Embeddable Javascript engine with a focus on portability and compact footprint
MetaCall 1,575 6 days ago Cross-platform Polyglot Runtime which supports NodeJS, JavaScript, TypeScript, Python, Ruby, C#, Wasm, Java, Cobol and more

Awesome C / Frameworks

APR Apache Portable Runtime; another library of cross-platform utility functions
C Algorithms Collection of common algorithms and data structures
CPL The Common Pipeline Library; a set of libraries designed to be a comprehensive, efficient and robust software toolkit
EFL Large collection of useful data structures and functions. Various licenses, all open source
GLib Library of utility functions and structures, designed to be portable, efficient and powerful
klib Small and lightweight implementations of common algorithms and data structures
libcork Utility functions and structures, designed for resource-constrained systems. Can be embedded
libnih 89 about 3 years ago Lightweight library of functions and structures
libU Small library of basic utilities, including memory allocation, string manipulation and logging
PBL Large library of utilities, featuring data structures, among other things
plibsys 691 4 months ago Cross-platform system C library. Zero third-party dependencies, uses only native system calls
qlibc Simple and powerful library, designed as a replacement for GLib while focusing on being small and light
sc 2,269 2 months ago Common libraries and data structures for C
TBOX 4,880 7 days ago Multi-platform library with a large number of capabilities
pspsdk 874 18 days ago An open-source SDK for PSP homebrew development.

Awesome C / Game Programming

Allegro Cross-platform, video game development and multimedia library
AssetKit 188 3 months ago 🎨 3D asset importer/exporter/util library based on COLLADA/glTF specs
astera 290 4 months ago C99 Cross Platform 2D Game Library
cglm 2,329 2 months ago 📽 Optimized OpenGL/Graphics Math (glm) for C
Chipmunk2D Fast and lightweight 2D game physics library
cmt 173 11 months ago 🎮 C Bindings/Wrappers for Apple's METAL Graphics Framework
Corange 1,828 6 months ago Game engine in pure C
CSFML Binding for
Darkplaces Modified version of the Quake2 engine
Epoxy 679 10 days ago Library for handling OpenGL function pointer management
exengine 556 7 months ago 3D game engine in C99 with a starting template
Flecs 6,463 6 days ago A Multithreaded Entity Component System written for C89 & C99
Freecell Solver 60 6 days ago Set of libraries and command-line programs for automatically solving FreeCell and some similar variants of card Solitaire
FreeGLUT Alternative to the OpenGL Utility Toolkit. Allows the creation and management of windows with OpenGL contexts
GLFW Multi-platform library for creating windows with OpenGL contexts
ioquake3 Quake3 engine, freed at last
kazmath 528 almost 4 years ago Maths library for games
libao Cross-platform audio library with a wide variety of outputs
librg 1,277 8 months ago Pure C99 game networking library for building simple and elegant cross-platform multiplayer client-server solutions
MATHC 713 9 months ago Math library for 2D and 3D programming
Orx Portable, lightweight, plugin-based, data-driven, 2D-oriented game engine
Quake 4,911 5 months ago Quake engine
Quake2 2,830 12 months ago Quake2 engine
raylib Simple and easy-to-use library to learn video game programming
RetroArch 10,332 7 days ago Reference frontend for
SDL2 Cross-platform library designed to provide low-level access to audio, keyboard, mouse, joystick and graphics hardware via OpenGL
sdl-gpu 1,199 about 2 years ago Library for high-performance, modern 2D graphics. Based on SDL
SIGIL Sound, Input and Graphics Integration Library; a simple alternative to other libraries for doing all those things. Various licenses, all open source
uastar 112 7 months ago Minimal A* implementation

Awesome C / Graphics

AssetKit 188 3 months ago 🎨 3D asset importer/exporter/util library based on COLLADA/glTF specs
Cairo 2D graphics library. or
cmt 173 11 months ago 🎮 C Bindings/Wrappers for Apple's METAL Graphics Framework
giflib Library for reading and writing gif images
graphene Thin layer of graphical data types
heman 470 over 3 years ago Tiny library of image utilities dealing with height maps, normal maps, distance fields and the like
libcaca 543 4 months ago ASCII renderer for terminal-based interfaces
libgd 903 about 1 month ago Library for the dynamic creation of images by programmers
libimagequant Small, portable library for high-quality conversion of RGBA images to 8-bit indexed colour images
libjpeg-turbo Faster library for reading and writing JPEG files.
libpng Official PNG reference library
libRSVG Library to render SVG files using Cairo
libsixel 2,505 over 1 year ago Library implementing the SIXEL protocol, allowing beautiful graphics in your terminal
libspng A simpler interface for reading and writing PNG files
libvips Image processing library
libxmi Function library for rasterizing 2D vector graphics
lightmapper 1,448 over 1 year ago Single-file library for lightmap baking, using an existing OpenGL renderer. Public domain
little CMS A Color Management System. It provides fast transforms between ICC profiles
mozjpeg 5,475 4 months ago Improved JPEG encoder
nanovg 5,186 8 months ago Anti-aliased 2D vector drawing library on top of OpenGL, for UI and visualizations
OpenGL Industry standard for high-performance graphics, with a native C binding.
PlutoVG 341 6 days ago A standalone 2D vector graphics library in C
SAIL 311 20 days ago ⛵ The missing small and fast image decoding library for humans (not for machines)

Awesome C / Graphical User Interface

GTK+ Cross-platform widget toolkit
IUP Another cross-platform widget toolkit
microui 3,524 3 months ago Tiny immediate-mode UI library written in portable ANSI C
nappgui Professional SDK to build cross-platform desktop applications using C
nuklear 9,301 14 days ago Small, C89, single-header widget toolkit. Public domain
tinyfiledialogs Single-file library for simple dialogs. Compatible with many other toolkits and OSes
Tk Basic widget toolkit. Part of Tcl/Tk
XForms Toolkit Widget toolkit designed for the XWindow system
LVGL embedded GUI with easy-to-use graphical elements, beautiful visuals and a low memory footprint
luigi 404 5 months ago A barebones single-header GUI library for Win32, X11 and Essence

Awesome C / Hashing

CLHash 266 8 months ago Library implementing the ridiculously fast CLHash hashing function. Only works on Intel Haswell or newer
HighwayHash 1,544 7 months ago Fast, strong, SIMD-using hash function. Also contains an implementation of SipHash (although this is slower)
SpookyHash 65 over 3 years ago Extremely fast hash function
t1ha 343 over 2 years ago Fast Positive Hash - a portable, fast hash function
xxHash Extremely fast hashing algorithm. Comes in 32 and 64-bit varieties

Awesome C / Learning, Reference and Tutorials / Reference resources online

Benchmarks of the Lockless Memory Allocator
C FAQ - comp.lang.c Frequently Asked Questions
Comparison of C/POSIX standard library implementations for Linux
Draft C89 standard
Draft C99 standard
Draft C11 standard
Finding the best 64-bit simulation PRNG
SEI CERT C Coding Standard
tinyc.game 337 about 2 months ago Tiny C games you can compile and run RIGHT NOW

Awesome C / Learning, Reference and Tutorials / Beginner resources online

A tutorial on pointers
A tutorial on portable Makefiles
Building C Projects
C Programming Wikibook
Introduction to `fun' C
Learning C with GDB
memcpy vs memmove
POSIX Threads Programming tutorial (a little dated, but most of it is still valid and useful)
The GNU C Programming Tutorial (online PDF)
Templating in C
What a C programmer should know about memory
CodeforWin: Learn C Programming, Data Structures Tutorials and Exercises online
Learn C: Free and Open-Source Interactive C Tutorial
How to program a text adventure in C 66 over 1 year ago

Awesome C / Learning, Reference and Tutorials / Intermediate resources online

8 gdb tricks you should know
10 C99 tricks
A comprehensive MPI tutorial resource
Build Your Own Text Editor
Diving into concurrency: trying out mutexes and atomics
Generic C reference counting
How to write portable C without complicating your build
Introduction to OpenMP (video)
OpenMP tutorial (for the OpenMP3 standard)
MPI tutorial
Scalable C - Writing Large-Scale Distributed C
Some unknown features or tricks in C language
What every C programmer should know about undefined behaviour

Awesome C / Learning, Reference and Tutorials / Advanced resources online

Advanced metaprogramming in C
A quick tutorial on implementing and debugging malloc, free, calloc, and realloc
Bit twiddling hacks
Implementing smart pointers for the C programming language
Inline functions in C
Metaprogramming custom control structures in C
Solving the temporary storage problem of C macros
Some dark corners of C
Writing efficient C and C code optimization
Compiling Algebraic Data Types in Pure C99

Awesome C / Learning, Reference and Tutorials / Reference books

C: A Reference Manual 5E Full reference book for C99
C in a Nutshell 2E Concise reference book for C11
C Pocket Reference Concise reference book for C99
The C Programming Language 2E Original book on C, by its creators

Awesome C / Learning, Reference and Tutorials / Beginner books

C Primer Plus 6E Complete tutorial on programming in C11
C Programming: A Modern Approach Excellent book to learn the basics of C
Head First C 'Head-first' style book for learning C

Awesome C / Learning, Reference and Tutorials / Intermediate books

21st Century C Good programming book on C
Understanding and Using C Pointers In-depth resource on pointers in C
ZeroMQ Book for using ZeroMQ with C

Awesome C / Learning, Reference and Tutorials / Advanced books

Expert C Programming: Deep C Secrets Interesting, in-depth and entertaining look at the innards of C
Modern C, Third Edition: Covers the C23 standard In Modern C, Third Edition you’ll learn to harness C’s full potential using the latest tools and techniques

Awesome C / Lexing and Parsing

flex 3,626 10 days ago Fast lexical analyzer generator
GNU Bison General-purpose parser generator that converts an annotated context-free grammar into a range of parsers
hammer 284 about 4 years ago Parser combinators for binary formats
mpc 2,685 6 months ago Parser combinator library
owl 746 about 1 year ago A parser generator for visibly pushdown languages
re2c Lexer generator, producing fast lexers, with access to its internals. Public domain

Awesome C / Memory Management

Boehm GC Garbage collection for C. Various licenses, all open source
jemalloc Malloc implementation that emphasizes avoidance of fragmentation and scalable concurrency support
Lockless Memory Allocator Efficient memory allocator
libcsptr 1,594 about 2 years ago Smart pointers for C
rpmalloc 2,164 5 months ago Thread-caching, fast memory allocator, naturally aligned on 32-byte boundaries. Public domain
talloc Hierarchical, reference-counted memory pool system with destructors
tlsf Two-Level Segregated Fit allocator; a general-purpose, dynamic memory allocator designed to meet real-time requirements.

Awesome C / Multimedia

aubio 3,314 4 months ago Library for audio and music analysis
FFMPEG Complete, cross-platform solution to record, convert and stream audio and video
GStreamer Framework for audio and visual media
libmpv Music-playing library
libsndfile Library for reading and writing sound files. Supports many formats. or
libsoundio Library for cross-platform, real-time audio input and output. Has a range of back-ends
libVLC Complete multimedia library for audio and video encoding, decoding, playing and streaming
lodepng Simple PNG image decoder and encoder, requiring no other dependencies
minimp3 1,606 3 months ago Lightweight MP3 decoder single header library
Soundpipe Lightweight music DSP library

Awesome C / Networking and Internet

asnlc Compiler of ASN.1 specifications into C source code
CHL 269 over 2 years ago C Hypertext Library - A library for writing web applications in C
czmq High-level binding for ZeroMQ
Dyad.c 1,438 about 4 years ago Lightweight, easy, asynchronous networking library
GNU adns Advanced, easy-to-use, asynch-capable DNS client library and utilities
gumbo-parser 5,163 almost 2 years ago HTML5 parsing library in C99
H20 A new-generation HTTP server
llhttp HTTP request/response parser
ldns Library to simplify DNS programming
libcurl Client-side URL transfer library, supporting a wide range of formats
LibEtPan Mail library providing an efficient network for IMAP, SMTP, POP and NNTP
libev Yet another event loop
libevent Event loop replacement for network servers
libhttpd Library to add basic web server capabilities to an application or embedded device
libhv 6,831 15 days ago Cross platform event loop library
libidn Implementation of the Stringprep, Punycode and IDNA specifications
libmicrohttpd Small library that makes it easy to run an HTTP server as part of another application
libnl is a collection of libraries to provie APIs to the Netlink protocol (replacement for ioctl). It's primary use is to communicate with the Linux kernel, to modify networking state (interfaces, routing etc...)
libonion HTTP server library, designed to be easy to use
libpcap 2,714 4 days ago API provides to various kernel packet capture mechanism
libquickmail Library intended to give developers a way to send email from their applications. Supports multiple To/Cc/Bcc recipients and attachments without size limits
libsagui Library for cross-platform HTTP servers
libuhttpd 386 26 days ago A very flexible, lightweight and fully asynchronous HTTP server library based on libev and http-parser for Embedded Linux
LibVNCServer 1,133 21 days ago Cross-platform libraries to implement VNC server and/or client functionality
libwebsock Easy-to-use and powerful web socket library
libzmq 9,765 about 2 months ago Core ZeroMQ library, a high-performance asynchronous messaging library, aimed at use in distributed or concurrent applications. C API (backend C++) with static linking exception
lwan Experimental, scalable, high-performance HTTP server
mongoose Embedded web server
MQTT-C 783 6 months ago A portable MQTT C client for embedded systems and PCs alike
nanomsg 6,003 10 months ago C-based implementation of ZeroMQ
NNG nanomsg-next-generation - lightweight brokerless messaging
oSip SIP implementation without additional dependencies
silgy 79 almost 3 years ago Asynchronous HTTP(S) engine for C/C++ projects
socket99 143 over 7 years ago C99 wrapper for the BSD sockets API
twitc 24 about 4 years ago Mini library for interacting with the Twitter OAuth API
uriparser Strictly RFC 3986-compliant URI parsing and handling library
Wslay WebSocket library. Implements version 13 of the WebSocket protocol, as described in RFC 6455
zyre 879 about 2 months ago Framework for proximity-based peer-to-peer applications

Awesome C / Numerical

apophenia Library for statistical and scientific computing
Arb 458 8 months ago Library for arbitrary-precision interval arithmetic
ATLAS Automatically Tuned Linear Algebra Software
clBLAS 843 4 months ago BLAS functions written in OpenCL
cmathl Math library with a great variety of mathematical functions with CMake build support. Seeks to be close to C89/C90 compliant for portability
Cuba Library for multidimensional numerical integration
fft-c 23 almost 3 years ago A high-performance Fourier Transform from netlib's fftpack; wrapped in a user-friendly format [ ][ MIT]
FFTW The Fastest Fourier Transform in the West; a highly optimized fast Fourier transform routine
FLINT Fast Library for Number Theory; a library supporting arithmetic with numbers, polynomials, power series and matrices, among others
GLPK GNU Linear Programming Kit; a package designed for solving large-scale linear programming, mixed integer programming and other related problems
GMP GNU Multple Precision Arithmetic Library; a library for arbitrary-precision arithmetic. or
GNU MPC Library for complex number arithmetic
GNU MPFR Library for arbitrary-precision floating-point arithmetic
GNU MPRIA Portable mathematics library for multi-precision rational interval arithmetic
GSL The GNU Scientific Library; a sophisticated numerical library.
KISS FFT Simple fast Fourier transform library
LAPACKE Interface to
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
PETSc Suite of data structures and routines for scalable parallel solution of scientific applications modelled by partial differential equations
SCS 550 6 days ago Splitting Conic Solver; a numerical optimization package for solving large-scale convex cone problems
SLEPc Library for the solution of large, sparse eigenvalue problems on parallel computers
TomsFastMath Set of optimized maths operations (in assembly), suitable for cryptographic use. Public domain
Yeppp! Fast, SIMD-optimized mathematical library

Awesome C / Profiling

gperftools 8,469 about 1 month ago Collection of utilities for measuring and improving performance
gprof Performance analysis tool. Part of GNU binutils
OProfile Statistical profiler for Linux. Can profile any code (including the kernel!) with low overhead and without recompilation
perf Linux kernel-based profiler with a lot of functionality

Awesome C / PDF

pdfio 198 27 days ago PDFio is a simple C library for reading and writing PDF files

Awesome C / Regex

Onigmo 626 5 months ago Fork of Oniguruma, supporting more advanced regexps
Oniguruma 2,310 4 days ago Regex library supporting a wide range of encodings, and incorporating many security-oriented fixes
PCRE Implementation of regexes identical to that of Perl 5
SLRE 535 about 4 years ago Super Light Regular Expression library; a small implementation of a subset of Perl regex syntax
TRE 804 2 months ago POSIX-compliant, feature-full regex library

Awesome C / Serialization

binn 454 9 months ago Binary serialization format, meant to be compact, fast and easy-to-use
c-capnproto 69 over 1 year ago Implementation of the Cap'n Proto serialization protocol
cmp 340 7 months ago Implementation of the serialization protocol
flatcc 653 23 days ago compiler and library
libavro Implementation of the Avro data serialization system
mpack 545 over 1 year ago Another implementation of the serialization protocol
OPIC Object Persistence in C; a revolutionary serialization framework, with matching on-disk and in-memory representations
protobuf-c 2,692 4 months ago Implementation of Google Protocol Buffer
tpl 372 over 3 years ago Small binary serialization library
xdr External Data Representation; a standard for data serialization. Standard (no license applicable)
pbtools 74 8 months ago Google Protocol Buffers C source code generator

Awesome C / Source Code Collections

CCAN Modelled after Perl's CPAN, this is a big collection of code that does stuff. The full list is . Various licenses, all open source
clib 4,874 3 months ago Something of a package manager. Comes with a
gnulib Collection of common GNU code. Various licenses, all open source
libdjb Collection of libraries doing various things. (Apparently) public domain
mmx 1,272 8 months ago Collection of single-header libraries. Various licenses, all open source
par 865 over 2 years ago Bunch of single-file libraries
Snippets 197 about 2 months ago Useful code snippets and header-only libraries. Public domain
stb 26,900 12 days ago Range of single-file libraries. Public domain
tinyheaders 4,313 about 1 month ago Collection of header-only libraries, primarily oriented toward game development
zpl 993 3 months ago C99 cross-platform header-only library with many goodies. [ , ][BSD-3-Clause, Unlicense]

Awesome C / Standard Libraries

Bionic 605 6 days ago Google's standard library, developed for Android
cloudlibc 296 about 4 years ago Standard library based on the concept of
dietlibc Standard library designed for the smallest possible binaries
glibc The GNU C Library; an implementation of the standard library.
musl Standard library, compatible with POSIX 2008 and C11. Designed for static linking
PDCLib The Public Domain C Library. Implements most of C99 and some of C11
uClibc-ng Small C library for developing embedded systems

Awesome C / Standard Libraries / Template libraries

CTL 171 8 months ago C CONTAINER TEMPLATE LIBRARY (CTL)

Awesome C / String Manipulation

bstring The Better String Library
ICU International Components for Unicode; a library for Unicode support
levenstein.c 82 about 2 years ago algorithm implementation.
libunistring Library for manipulating Unicode strings
libgiconv Text conversion library
librope 274 about 3 years ago UTF-8 rope ('heavy' string) library
SDS 4,938 7 months ago Simple Dynamic Strings; a library for handling strings in a simpler way, but one that is compatible with normal C string functions. Available via
stmr.c 39 over 4 years ago algorithm implementation
str 307 23 days ago Yet another string library for C language
StringZilla 2,223 9 days ago Up to 10x faster SIMD and SWAR-accelerated string search, sort, hashes, edit distances, alignments, and generators
utf8.h 1,746 26 days ago Single-header UTF-8 library, designed to mimic C-style string functions. Public domain
utf8proc 1,058 3 months ago Library for processing UTF-8 data

Awesome C / Structured File Processing / CSV

libcsv 179 over 2 years ago Simple, streaming CSV parser

Awesome C / Structured File Processing / JSON

Jansson Library for encoding, decoding and manipulating JSON
jfes 70 over 5 years ago JSON For Embedded Systems; simple JSON engine without any dependencies
jsmn Minimalistic JSON parser
json 24 7 months ago Simple, low-memory-use JSON parser
json-c 2,977 12 days ago Easily work with JSON in C. Comes with a reference-counted object model, and aims for conformance with
json.h 714 4 months ago Single-file non-streaming JSON parser
parson 1,362 6 months ago Two-file, C89-compatible JSON parser
WJElement 108 9 months ago Advanced JSON manipulation library, with support for JSON Schema. or or
YAJL Fast streaming JSON parser library

Awesome C / Structured File Processing / INI

inih 2,471 25 days ago Small and simple INI file parser, good for embedded systems
iniparser 984 4 months ago Parser for .ini files
libconfini Yet another INI parser
minIni 385 7 months ago Small and portable INI parser

Awesome C / Structured File Processing / Others

libbson 347 about 4 years ago BSON utility library
libcbor 342 12 days ago : CBOR protocol implementation for C and others
libconfuse 476 9 months ago Small configuration file parser library
libelf 48 over 2 years ago Simple library for parsing ELF files
libucl 1,627 7 months ago Universal configuration library parser
libxo 324 7 months ago 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

Awesome C / Structured File Processing / XML

Expat Stream-oriented XML parser
libxml2 Standards-compliant, portable XML parser
xml 12 7 months ago Simple, low-memory-use XML parser / tokenizer

Awesome C / Structured File Processing / YAML

libYAML YAML 1.1 parser and emitter

Awesome C / Signal Processing

libsigrok 311 20 days ago signal analysis software suite that supports various device types (such as logic analyzers, oscilloscopes, multimeters, and more). [ ][GPL]

Awesome C / Testing

CHEAT 169 almost 4 years ago Simple unit testing framework
Check Unit testing framework
ciut A modern minimal hassle unit test framework
clar 203 about 1 month ago Clear and simple unit testing framework
CMock Mock/stub generator
cmocka Unit testing framework with support for mock objects
Criterion KISS, non-intrusive test framework
ctest 230 2 months ago Yet another unit testing framework
CUnit Another unit testing framework
greatest 1,485 over 1 year ago Unit testing library in one file, with no memory allocation
minctest 55 over 3 years ago Unit testing microlibrary
munit Small unit testing framework
Nala 68 over 2 years ago A test framework for C projects
Rexo 28 12 months ago Framework for C89/C++ featuring automatic registration of tests and a polished API
Tau 158 9 days ago 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
theft 612 almost 4 years ago Property-based testing (similar to )
Unity Simple unit testing framework
utest 39 over 7 years ago Single-header unit testing library

Awesome C / Text Editor Extensions

CCompletion Notepad++ autocompletion plugin. Works with all identifiers recognized by Ctags. This is a download link
CEDET Collection of Emacs Development Environment Tools; designed to provide IDE-like features to Emacs. Built-in
Flycheck 2,420 about 1 month ago Modern syntax checking for Emacs. For C, it can use either GCC or Clang as a back-end
Neomake 2,666 8 months ago Async :make and linting framework for Neovim/Vim
Syntastic 11,301 over 2 years ago Syntax checking and linting for Vim
YASnippet Emacs code template system, with C templates for common snippets
YouCompleteMe 25,465 about 1 month ago Code completion engine for Vim

Awesome C / Tools

Artistic Style Fast and small automatic source code formatter that supports C
address-sanitizer 11,517 19 days ago Fast memory error detector
bcc A byte array generator to import binary files directy from C in the spirit of xxd
c 2,096 12 months ago Compile and execute C "scripts" in one go on the command line. Also has shebang support
c99sh 107 about 2 months ago Run C files using hash-bang
cdecl Online service to translate C declarations into English and vice versa. Public domain
cinclude2dot Graphs include dependencies in a project using Graphviz. or or
ClangCheck Static analysis tool, designed to work with Clang
conan.io Something of a package manager for C.
Cppcheck Static analysis tool. Despite the name, works well with C
Glade RAD tool to enable quick development of GTK+ GUIs
GMSL GNU Make Standard Library; a collection of additional functionality for GNU Make
GNU Global Source code tagging tool
GPP General-purpose preprocessor. More versatile than the C preprocessor, but more flexible than m4
Highlight Converts source code to formatted text with nice highlighting
include-what-you-use 4,122 11 days ago Helps find unecessary inclusions and make suggestions for fixing them. Based on LLVM/Clang (and only works with it)
incbin 985 4 months ago Include binary files in your C/C++ applications with ease
indent Formats C source code automatically to make it easier to read. Also converts from one style of source to another
SMACK 431 about 1 month ago Modular software verification toolchain and a self-contained software verifier. Currently only works with programs compiled using Clang
unifdef Removes #ifdef and #if directives with their delimited text without touching any other part of the file. or

Awesome C / Utilities

ApeTagLibs 12 about 1 month ago Library for working with APEv2 tags
argparse 690 4 months ago Command-line argument parsing library, inspired by Python's argparse module
attr Commands for manipulating filesystem extended attributes
bfd Library for manipulating binary object files. Part of GNU binutils
Caffeine 100 about 4 years ago Library for building daemons and services for Linux and FreeBSD systems
CException Implementation of exceptions
CommonMark 4,889 2 months ago Implementation of the CommonMark spec
cosmopolitan 18,408 5 days ago fast portable static native textmode containers (build C programs for Linux\Mac\Windows in one go)
cpu_features 2,463 9 days ago Get CPU features at runtime.
CRIU Checkpoint/Restore In Userspace; a software tool (with a C API) for 'freezing' a running application to disk, then restoring it. or
D-Bus Simple way for applications to talk to one another. or
Discount Simple implementation of a Markdown parser
dlx 50 almost 3 years ago Implementation of , with example solvers
docopt.c 320 6 months ago Implementation of a command-line option parser
dyncall Another foreign function interface library
GNU FreeIPMI In-band and out-of-band IPMI implementation
GNU gperf Perfect hash function generator, given a list of strings. Outputs C code
GNU Libffcall Collection of libraries for building foreign function interfaces
Hoedown 957 over 4 years ago Fully standards-compliant, extension-supporting, UTF-8 aware, fast Markdown parser
Kitsune Efficient, general-purpose framework for dynamic software updating
libCello Library introducing higher-level programming to C
libcmark 1,652 about 2 months ago Library for parsing the CommonMark dialect of Markdown
libcoap 801 19 days ago Implementation of the . or
libcox Library which permits cross-platform system calls and standard utilities across different operating systems
libffi 4 about 2 years ago Portable foreign-function interface library
libgeohash 105 over 5 years ago Pure C implementation of the Geohash algorithm
libgit2 Portable implementation of the Git core methods, provided as a re-entrant linkable library.
libgss Generic Security Service
libimobiledevice 6,676 7 days ago Cross-platform protocol library to communicate with iThings
libnfc 1,713 22 days ago Platform-independent Near-Field Communication library
libpostal 4,076 3 months ago Library for parsing and normalization of street addresses around the world. Powered by statistical NLP and open geo data
libtrading Implementation of network protocols for communicating with exchanges, dark pools and other trading venues. Supports FIX, FIX/FAST and many proprietary protocols
libusb Provides generic access to USB devices
libuv Cross-platform asynchronous I/O
libvldmail 52 3 months ago Your friendly email validation library. No external dependencies (not even regexps)
linenoise 3,805 3 months ago Small, self-contained alternative to readline and libedit
libXDGdirs 14 13 days ago An implementation of XDG Base Directory Specification
MegaMimes Library for getting the types of a file
ncurses Coloured terminal UI library
netbsd-curses 152 10 months ago Simplified and small version of ncurses, with the same interface
nope.c 693 almost 7 years ago Ultra-light software platform for scalable server-side and networking applications (think node.js for C programmers)
obj.h 107 over 2 years ago A single-header supports OOP in pure C
parg 180 about 1 year ago A single-file reimplementation of with better defaults
pbc 1,624 about 2 years ago Protocol buffers library
progressbar 467 over 1 year ago Easy-to-use library for displaying text progress bars
rabbitmq-c 1,771 24 days ago Client library for
Ragel DSL for state machines that compiles to C
rmw safe-remove utility for the command line that can purge items from your waste directories after x number of days
Rogueutil 43 over 1 year ago Cross-platform library for creating text-based user interfaces (TUI)
sort 463 9 months ago Collection of sorting routines, which type-specialize at compile-time with a user-defined type
termbox 1,972 about 4 years ago Library for writing text-based interfaces
tinyexpr 1,600 3 months ago Tiny recursive-descent parser, compiler and evaluation engine for simple mathematical expressions
tm 42 11 months ago ⏱ Timer and Timeline Utils for C
Tulip Indicators Library of functions for technical analysis of financial data
whereami 473 3 months ago One-file library for locating the current executable on the file system
XLSX I/O Cross-platform library for reading and writing .xlsx files
xlsx_drone 15 6 months ago Fast Microsoft Excel's *.xlsx reader
zlog Reliable, pure C logging library
zproto 237 9 months ago Protocol framework for ZeroMQ
Metalang99 872 14 days ago Full-blown preprocessor metaprogramming
Datatype99 1,375 14 days ago Algebraic data types for C99
EasyLogger 3,783 8 months ago An ultra-lightweight, high-performance C/C++ log library

Awesome C / Web Frameworks

Concord 523 25 days ago A Discord API wrapper library written in C
facil.io Mini-framework for web applications. Includes a fast HTTP and Websocket server, and also supports custom protocols
kcgi CGI and FastCGI library for C
KLone Fully featured, multi-platform, web application development framework, targeted especially at embedded systems and appliances
Kore Easy-to-use web application framework for writing scalable web APIs in C

Awesome C / Windows Environments

Cygwin Designed to emulate a POSIX-compatible environment extensively under Windows.
MinGW-w64 Minimalist environment for C development on Windows with 64 bit support.
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

Backlinks from these awesome lists:

More related projects: