A curated list of C good stuff. This list contains only free software for code, and sellers who aren't evil for physical resources.
This is released under the GNU Free Documentation License - its text is provided in the LICENSE file.
This list was previously maintained by @kozross. He decided to switch the list to a new platform, so I've decided to fork it so we could keep it on GitHub.
Your contributions are highly welcome.
For more awesome lists, see awesome.
- Build Systems
- Compilers
- Crypto
- Database
- Deep Learning
- Documentation Generation
- Editors
- Environments
- Frameworks
- Game Programming
- Generic Programming
- Graphics
- Graphical User Interface
- Image Processing
- JSON
- Learning, Reference and Tutorials
- Multimedia
- Networking and Internet
- Numerical
- Parallel Programming
- Regex
- Serialization
- Source Code Collections
- Standard Libraries
- String Manipulation
- Testing
- Text Editor Extensions
- Tools
- Utilities
- XML
These are tools to automate the building and testing of projects in C.
- aimake - A build tool designed to avoid complex configurations. GNU GPL3 or later.
- Autoconf - An extensible package of M4 macros that produce shell scripts to automatically configure software source code packages. Part of the Autotools. GNU GPL3 or later.
- Automake - A tool for automatically generating
Makefile.in
files compliant with the GNU Coding Standards. Requires the use of Autoconf. Part of the Autotools. GNU GPL3 or later. - Jam - A build system, designed to be easier than make. Understands C build rules implicitly. Jam License.
- Libtool - A generic library support script. Part of the Autotools. GNU GPL3 or later.
- Meson - An extremely fast, user-friendly build system. Based on Ninja. Apache2.0.
- Clang - A C compiler for LLVM. Supports C11. NCSA.
- CompCert - A fully-verified C compiler. Supports almost all of C89. GNU GPL2.1 or later.
- GCC - Provides a C compiler as part of its compiler set. Supports C11 and OpenMP. GNU GPL3 or later.
- PCC - A venerable C compiler. Supports C99. Various licenses, all free.
- TCC - Tiny C Compiler; a small, fast C compiler. Supports C99 (except complex types). GNU LGPL2.1 only.
- GnuTLS - A secure communication library, implementing SSL, TLS and DTLS. GNU LGPL2.1 or later.
- libgcrypt - A general-purpose cryptography library, with a range of available ciphers. GNU LGPL2.1 or later (code), GNU GPL2.1 or later (manual and tools).
- OpenSSL - Implementation of the SSL and TLS protocols, and also includes a cryptography library. Dual Licensed under the OpenSSL License and the SSLeay License.
- libsodium - A modern and easy-to-use crypto library. Expat.
- libtomcrypt - A fairly comprehensive, modular and portable cryptographic toolkit. Public domain.
- mbed TLS - Another crypto implementation for C. Apache2.0.
This lists databases and data stores with C APIs.
- BerkeleyDB - A library for a high-performance embedded database for key-value data. GNU AGPLv3 only.
- Hiredis - A minimalistic client library for Redis. 3-clause BSD.
- LMDB - An ultra-fast, ultra-compact key-value embedded data store. newOpenLDAP.
- MariaDB - A robust, scalable and reliable SQL server, designed to be a drop-in replacement for MySQL. 3-clause BSD.
- mongo-c-driver - A high-performance client library for MongoDB. Apache2.0.
- PostgreSQL - A powerful object-relational database system. PostgreSQL licence.
- recutils - A set of tools and a C library for accessing human-editable, plaintext database files called recfiles. GNU GPL3 or later.
- Redis - An advanced key-value store. 3-clause BSD.
- sophia - A modern, embeddable key-value database. FreeBSD.
- SQLite - A self-contained, serverless, zero-configuration, transactional SQL database engine with a C interface. Public domain.
- UnQLite - A self-contained, serverless, zero-configuration, transactional NoSQL engine with a C interface. FreeBSD.
- Darknet - An open source neural network framework written in C and CUDA. It is fast, easy to install, and supports CPU and GPU computation.
- Cxref - Generates documentation of C programs in either LaTeX, HTML, RTF or SGML. GNU GPL2.1 only.
- DocOnce - A modestly-tagged markup language that can be used to generate a range of formats. 3-clause BSD.
- Doxygen - The de-facto standard tool for generating C documentation from annotated sources. Can generate a large range of formats. GNU GPL2.1 only.
- GTK-Doc - A tool for generating C documentation from annotated sources. Has support for the Autotools. GNU GPL2.1 only (code), GNU FDL1.1 only.
These are specifically fancier, IDE-type editors. If you want a programmer's text editor, look elsewhere. Besides, whatever choice you make most likely supports C anyway.
- Anjuta DevStudio - The GNOME IDE. GNU GPL2.1 only.
- Code::Blocks - An extensible, configurable IDE supporting C. GNU GPL3 only.
- CodeLite - A cross-platform IDE. GNU GPL2.1 only.
- Eclipse - An IDE written in Java. EPL.
- Geany - A very small and fast IDE. GNU GPL2.1 or later.
- KDevelop - The KDE IDE. GNU GPL2.1 only.
- Qt Creator - A cross-platform IDE written with C++ and Qt, part of the Qt SDK. Supports Clang Code Model. GNU GPL3 with Qt exception only.
This is a list of 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 free.
- MinGW-w64 - A minimalist environment for C development on Windows with 64 bit support. Various licenses, all free.
This section has big libraries that provide data structures and other stuff you expect of a 'modern' standard library.
- APR - Apache Portable Runtime; another library of cross-platform utility functions. Apache2.0.
- C Algorithms - A collection of common algorithms and data structures for C. ISC.
- CPL - The Common Pipeline Library; a set of libraries designed to be a comprehensive, efficient and robust software toolkit. GNU GPL2.1 only.
- EFL - A large collection of useful data structures and functions. Various licenses, all free.
- GLib - A library of utility functions and structures, designed to be portable, efficient and powerful. GNU LGPL2.1 only.
- GIO - A modern and easy-to-use VFS API. GNU LGPL2.1 only.
- GObject - An object-oriented system and object model for C. GNU LGPL2.1 only.
- libnih - A lightweight library of C functions and structures. GNU GPL2.1 only.
- libU - A small library of basic utilities, including memory allocation, string manipulation and logging. 3-clause BSD.
- PBL - A large library of utilities, featuring data structures, among other things. GNU LGPL2.1 or later (library), GNU GPL2.1 or later (test code).
- qlibc - A simple and powerful C library, designed as a replacement for GLib while focusing on being small and light. qLib license (similar to FreeBSD).
- stb - A range of single-file libraries for C. Public domain.
These are provided as examples of C game programming code.
- Corange - A game engine in pure C. FreeBSD.
- Darkplaces - A modified version of the Quake2 engine. GNU GPL2.1 only.
- ioquake3 - The Quake3 engine, freed at last. GNU GPL2.1 only.
- Orx - A portable, lightweight, plugin-based, data-driven, 2D-oriented game engine. zlib.
- Quake - The Quake engine. GNU GPL2.1 only.
- Quake2 - The Quake2 engine. GNU GPL2.1 only.
- Spearmint - An engine designed for FPS games. GNU GPL3 or later.
These are libraries of all sorts that are useful for game programming.
- Allegro - A cross-platform, video game development and multimedia library. zlib.
- Chipmunk2D - A fast and lightweight 2D game physics library. Expat.
- CSFML - A binding for SFML in C. zlib.
- FreeGLUT - An alternative to the OpenGL Utility Toolkit. Allows the creation and management of windows with OpenGL contexts. X11.
- GLFW - A multi-platform library for creating windows with OpenGL contexts. zlib.
- libao - A cross-platform audio library with a wide variety of outputs. GNU GPL2.1 or later.
- RetroArch - The reference frontend for libretro. GNU GPL3 only.
- SDL - A cross-platform library designed to provide low-level access to audio, keyboard, mouse, joystick and graphics hardware via OpenGL. zlib.
- SDL2- A a cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware via OpenGL. This is the most current version. zlib
- Cairo - A 2D graphics library. GNU LGPL2.1 only or MPLv1.1.
- Cogl - A GPU graphics and utilities API. Expat (dependent on 3-clause BSD and possibly LGPLv2.1 only libs).
- Clutter - A UI library based on OpenGL. GNU LGPL2.1 only.
- heman - A tiny library of image utilities dealing with height maps, normal maps, distance fields and the like. Expat.
- libcaca - An ASCII renderer for terminal-based interfaces. WTFPLv2.
- libimagequant - Small, portable library for high-quality conversion of RGBA images to 8-bit indexed colour images. FreeBSD.
- libjpeg-turbo - A faster library for reading and writing JPEG files. Various licences.
- libpng - The official PNG reference library. libpng license.
- libxmi - A function library for rasterizing 2D vector graphics. GNU GPL3 or later.
- mozjpeg - An improved JPEG encoder. 3-clause BSD.
- OpenGL - The industry standard for high-performance graphics, with a native C binding. Various licenses.
These are specifically widget toolkits.
- GTK+ - A cross-platform widget toolkit. GNU LGPL2.1 only.
- IUP - Another cross-platform widget toolkit. Expat.
- Tk - A basic widget toolkit. Part of Tcl/Tk. Tcl/Tk License.
- XForms Toolkit - A widget toolkit designed for the XWindow system. GNU LGPL2.1 only.
- libccv - A Modern Computer Vision Library. 3-clause BSD.
- Jansson - A C library for encoding, decoding and manipulating JSON. Expat.
- jsmn - A minimalistic JSON parser. Expat.
- json-c - A library for working with JSON. Expat.
- WJElement - Advanced JSON manipulation library, with support for JSON Schema. LGPL, any version.
- YAJL - A fast C JSON streaming parser library. ISC
This is a list of resources for learning C programming in general, or something useful relating to C programming.
- SEI CERT C Coding Standard
- C FAQ - comp.lang.c Frequently Asked Questions
- Comparison of C/POSIX standard library implementations for GNU/Linux
- Draft C11 standard
- GNU C Reference Manual
- Robert Pike's notes on programming in C
- A tutorial on pointers
- Building C Projects
- C Programming Wikibook
- Introduction to 'fun' C
- Learning C with GDB
- 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
- 8 gdb tricks you should know
- 10 C99 tricks
- Diving into concurrency: trying out mutexes and atomics
- Introduction to OpenMP (video)
- OpenMP tutorial (for the OpenMP3 standard)
- memcpy vs memmove
- MPI tutorial
- Some unknown features or tricks in C language
- The lost art of C structure packing
- What a C programmer should know about memory
- What every C programmer should know about undefined behaviour
- Advanced metaprogramming in C
- A quick tutorial on implementing and debugging malloc, free, calloc, and realloc
- Bit twiddling hacks
- I do not know C
- 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
- C: A Reference Manual 5E - A full reference book for C99.
- C Pocket Reference - A concise reference book for C99.
- The C Programming Language 2E - The original book on C, by its creators.
- C Primer Plus 6E - A complete tutorial on programming in C11.
- C Programming: A Modern Approach - An excellent book to learn the basics from C from.
- Head First C - A 'head-first' style book for learning C.
- 21st Century C - A very good second programming book on C.
- Understanding and Using C Pointers - An in-depth resource on pointers in C.
- ZeroMQ - A book for using ZeroMQ with C.
- Expert C Programming: Deep C Secrets - An interesting, in-depth and entertaining look at the innards of C.
- FFMPEG - A complete, cross-platform solution to record, convert and stream audio and video. GNU LGPL2.1 or later, with some parts under GNU GPL2.1 or later.
- GStreamer - A framework for audio and visual media. GNU LGPL2.1 only.
- lodepng - A simple PNG image decoder and encoder, requiring no other dependencies. 3-clause BSD.
- asnlc - A compiler of ASN.1 specifications into C source code. FreeBSD.
- czmq - A high-level binding for ZeroMQ. MPL2.0
- GNU adns - An advanced, easy-to-use, asynch-capable DNS client library and utilities. GNU GPL3 or later.
- GNU SASL - An implementation of the Simple Authentication and Security Layer and a few common SASL mechanism. GNU GPL3 or later.
- GnuTLS - A secure communication library, implementing SSL, TLS and DTLS. GNU LGPL2.1 or later.
- gumbo-parser - An HTML5 parsing library in C99. Apache2.0.
- http-parser - An HTTP request/response parser. Expat.
- ldns - A library to simplify DNS programming. 3-clause BSD.
- libcurl - A client-side URL transfer library, supporting a wide range of formats. curl license
- LibEtPan - A mail library providing an efficient network for IMAP, SMTP, POP and NNTP. 3-clause BSD.
- libev - Yet another event loop. FreeBSD.
- libevent - An event loop replacement for network servers. 3-clause BSD.
- libgss - Generic Security Service. GNU GPL3 or later.
- libhttpd - A library to add basic web server capabilities to an application or embedded device. GNU GPL2 only.
- libidn - An implementation of the Stringprep, Punycode and IDNA specifications. GNU GPL3 or later.
- libmicrohttpd - A small C library that makes it easy to run an HTTP server as part of another application. GNU LGPL2.1 or later.
- libsoup - A GNOME HTTP client/server library. Uses GObject. GNU LGPL2.1 only.
- lwan - An experimental, scalable, high-performance HTTP server. GNU GPL2.1 only.
- mongoose - Embedded web server for C. GNU GPL2.1 only.
- nanomsg - A C-based implementation of ZeroMQ. Expat.
- onion - HTTP server library, designed to be easy to use. Apache2.0.
- OpenSSL - Implementation of the SSL and TLS protocols, and also includes a cryptography library. Dual Licensed under the OpenSSL License and the SSLeay License
- oSip - A SIP implementation in C without additional dependencies. GNU LGPLv2.1 or later.
- pig - A Linux packet crafting tool. GPL2.
- s2n - A C99 implementation of the TLS/SSL protocols, designed to be simple, fast and with security as a priority. Apache2.0.
- socket99 - A C99 wrapper for the BSD sockets API. ISC.
- Tox - A communication platform, designed to be a Skype-killer. GNU GPL3 only.
- twitc - A mini C library for interacting with the Twitter OAuth API. Expat.
- balde - A microframework for C based on GLib. GNU LGPLv2.1 only.
- apophenia - A library for statistical and scientific computing. GNU GPL2.1 only.
- ATLAS - Automatically Tuned Linear Algebra Software. 3-clause BSD.
- BLAS - Basic Linear Algebra Subprograms; a set of routines that provide vector and matrix operations. BLAS license
- Cuba - A library for multidimensional numerical integration. GNU LGPLv3 only.
- FFTW - The Fastest Fourier Transform in the West; a highly-optimized fast Fourier transform routine. GNU GPL2.1 or later.
- FLINT - Fast Library for Number Theory; a library supporting arithmetic with numbers, polynomials, power series and matrices, among others. GNU GPL2.1 or later.
- GLPK - GNU Linear Programming Kit; a package designed for solving large-scale linear programming, mixed integer programming and other related problems. GNU GPL3 or later.
- GMP - GNU Multple Precision Arithmetic Library; a library for arbitrary-precision arithmetic. Dual-licensed GNU GPL2.1 only and GNU LGPLv3 only.
- GNU MPC - A library for complex number arithmetic. GNU LGPL3 or later.
- GNU MPFR - A library for arbitrary-precision floating-point arithmetic. GNU LGPL3 or later (most recent versions), GNU LGPL2.1 or later (until version 2.4.x).
- GNU MPRIA - A portable mathematics library for multi-precision rational interval arithmetic. GNU GPL3 or later.
- GSL - The GNU Scientific Library; a sophisticated numerical library. GNU GPL3 only.
- KISS FFT - A very simple fast Fourier transform library. 3-clause BSD.
- LAPACKE - A C interface to LAPACK. 3-clause BSD.
- PARI/GP - A computer algebra system for number theory; includes a compiler to C. GNU GPL2.1 or later.
- PETSc - A suite of data structures and routines for scalable parallel solution of scientific applications modelled by partial differential equations. FreeBSD.
- SLEPc - A software library for the solution of large, sparse eigenvalue problems on parallel computers. GNU LGPL3 only.
- Yeppp! - Very fast, SIMD-optimized mathematical library. 3-clause BSD.
- cchan - A small library for channel constructs for inter-thread communication. Public domain.
- ck - Concurrency primitives, safe memory reclamation mechanisms and non-blocking data structures. FreeBSD.
- mill - Go-style concurrency in C. X11.
- MPICH - Another implementation of MPI. MPICH licence.
- OpenMP - A set of C pragmas designed to allow for easy parallelization of code. Standard (licensing not applicable).
- OpenMPI - A message passing interface implementation. 3-clause BSD.
- PETSc - A suite of data structures and routines for scalable parallel solution of scientific applications modelled by partial differential equations. FreeBSD.
- pth - A portable implementation for non-preemptive priority-based scheduling for multiple threads of execution. GNU GPL3 or later.
- pthreads - The POSIX thread library. Standard (no license applicable).
- SLEPc - A software library for the solution of large, sparse eigenvalue problems on parallel computers. GNU LGPL3 only.
- TinyCThread - A portable, small implementation of the C11 threads API. zlib.
"Some people, when confronted with a problem, think 'I know, I'll use regular expressions'. Now they have two problems." - Jamie Zawinski.
- PCRE - An implementation of regexes identical to that of Perl 5. 3-clause BSD.
- SLRE - Super Light Regular Expression library; a very small implementation of a subset of Perl regex syntax. GNU GPL2.1 only.
- TRE - A POSIX-compliant, feature-full regex library. FreeBSD.
- c-capnproto - An implementation of the Cap'n Proto serialization protocol. Expat.
- cmp - An implementation of the MessagePack serialization protocol. Expat.
- libavro - A C implementation of the Avro data serialization system. Apache2.0.
- mpack - Another implementation of the MessagePack serialization protocol. Expat.
- protobuf-c - An implementation of Google Protocol Buffer in C. FreeBSD.
- xdr - External Data Representation; a standard for data serialization. Standard (no license applicable).
This contains 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 C code that does stuff. The full list is here. Various licenses (all free software).
- clib - Something of a package manager for C. Comes with a bunch of libraries of its own. Expat.
- gnulib - A collection of common GNU code. Various licenses, all free.
- libdjb - A collection of libraries doing various things. (Apparently) public domain.
This contains standard C libraries.
- Bionic - Google's C standard library, developed for Android. 3-clause BSD.
- dietlibc - A C standard library designed for the smallest possible binaries. GNU GPL2.1 only.
- glibc - The GNU C Library; an implementation of the C standard library. GNU LGPL2.1 only.
- musl - A standard C library, compatible with POSIX 2008 and C11. Designed for static linking. Expat.
- bstrlib - The Better String Library. Dual-licensed under 3-clause BSD or GNU GPL2.1 only.
- ICU - International Components for Unicode; a library for Unicode support. ICU license.
- libunistring - A library for manipulating Unicode strings in C. GNU LGPL3 only.
- libgiconv - A text conversion library. GNU LGPL2.1 only (library), GNU GPL3 only (iconv program).
- SDS - Simple Dynamic Strings; a library for handling C strings in a simpler way, but one that is compatible with normal C string functions. Available via clib. FreeBSD.
- shoco - A compressor for small text strings. Expat.
- smaz - An efficient string compression library. 3-clause BSD.
- CHEAT - A very simple unit testing framework. FreeBSD.
- Check - A unit testing framework for C. GNU LGPL2.1 only.
- CMock - A mock/stub generator for C. Expat.
- cmocka - A unit testing framework with support for mock objects. Apache2.0.
- Criterion - A KISS, non-intrusive C test framework. Expat.
- CUnit - Another unit testing framework for C. GNU LGPL2.0 only.
- Cutest - Library for unit testing with memory leak detection (Linux, freeBSD and Windows). GPL2.
- minunit - Minimal unit testing framework for C. Expat.
- Unity - A simple unit testing framework for C. Expat.
While practically any decent programmer's text editor supports C, there are some extensions that make it more pleasant. This is categorized by editor.
- CEDET - Collection of Emacs Development Environment Tools; designed to provide IDE-like features to Emacs. Built-in. GNU GPL3 or later.
- Flycheck - Modern syntax checking. For C, it can use either GCC or Clang as a back-end. GNU GPL3 or later.
- Yasnippet - A template system, with C templates for common code snippets. GNU GPL3 or later.
- Syntastic - Syntax checking and linting. Do What The Fuck You Want To license.
- YouCompleteMe - A code completion engine for Vim. GNU GPL3 only.
This is a list of useful programs to help you write and debug C code which are not editors, libraries or compilers.
- Artistic Style - A fast and small automatic source code formatter that supports C. GNU LGPL3 only.
- address-sanitizer - A fast memory error detector. Apache2.0.
- biicode - A modern dependency manager for C. Expat.
- c - Compile and execute C "scripts" in one go on the command line. Also has shebang support. Expat.
- c99sh - Run C files using hash-bang. FreeBSD.
- CBMC - C Bounded Model Checker; a tool for verification of array bounds, pointer safety and user-specified assertions. Original BSD.
- cdecl - An online service to translate C declarations into English and vice versa. Public domain.
- cinclude2dot - Graphs include dependencies in a C project using Graphviz. Any GNU GPL version (due to underspecification in the file).
- Complexity - A tool for measuring the complexity of C source code. GNU GPL3 or later.
- CScout - a source code analyzer and refactoring browser for collections of C programs. GNU GPL3 only.
- DDD - A graphical front-end for a range of command-line debuggers. GNU GPL3 or later.
- GDB - The GNU Project debugger; a debugger for C. GNU GPL3 or later.
- Glade - A RAD tool to enable quick development of GTK+ GUIs. GNU GPL2.1 only.
- GMSL - GNU Make Standard Library; a collection of additional functionality for GNU Make. 3-clause BSD.
- GNU Global - A source code tagging tool which works with C. GNU GPL3 only.
- gprof - A performance analysis tool. Part of GNU binutils. GNU GPL3 or later.
- Highlight - Converts source code to formatted text with nice highlighting. GNU GPL3 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.
- indent - Formats C source code automatically to make it easier to read. Also converts from one style of source to another. GNU GPLv3 or later.
- Make - A tool which controls the generation of executables and other non-source files of a program. GNU GPL3 or later (link to the GNU implementation).
- qo - A build system that works without a separate config file. Expat.
- rr - A debugger that records non-deterministic executions to allow for deterministic debugging. FreeBSD.
- tup - A very fast, file-based, cross-platform build system. GNU GPL2.1 only.
- unifdef - Removes #ifdef and #if directives with their delimited text without touching any other part of the file. 3-clause BSD and FreeBSD.
- Valgrind - A range of dynamic analysis tools, including a leak checker. GNU GPL2.1 only.
This is a 'catch-all' category for anything that doesn't fit well anywhere else.
- ApeTagLibs - A C library for working with APEv2 tags. Expat.
- bfd - A library for manipulating binary object files. Part of GNU binutils. GNU GPL3 or later.
- ccv - C-based/Cached/Core Computer Vision library; modern computer vision. 3-clause BSD.
- cf4ocl - The C Framework for OpenCL; a cross-platform object-oriented framework for developing and benchmarking OpenCL projects. GNU LGPL3 only (library), GNU GPL3 (other code).
- CommonMark - A C implementation of the CommonMark spec. Variety of licenses, all free.
- CException - A C implementation of exceptions. Expat.
- docopt.c - A C implementation of a command-line option parser. Expat.
- dyncall - Another foreign function interface library. Expat.
- FANN - Fast Artifical Neural Network library; an implementation of neural networks. GNU GPL2.1 only.
- Firm - A C 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. GNU LGPLv2.1 only.
- gjrand - A library of random-number generation routines. GNU GPL2.1 or GNU GPLv3 (user's choice).
- GNU FreeIPMI - An in-band and out-of-band IPMI implementation. GNU GPL3 only.
- GNU gperf - A perfect hash function generator, given a list of strings. Outputs C code. GNU GPL3 or later.
- GNU Libffcall - A collection of libraries for building foreign function interfaces. GNU GPL3 or later.
- gperftools - A collection of utilities for measuring and improving performance. 3-clause BSD.
- hammer - Parser combinators for binary formats. GNU GPL2.1 only.
- Hans Boehm GC - Garbage collection for C? Don't mind if I do! Various licenses, all free.
- huffandpuff - A minimal Huffman encoder and decoder. Public domain.
- iniparser - A parser for .ini files. Expat.
- jemalloc - A malloc implementation that emphasizes avoidance of fragmentation and scalable concurrency support. FreeBSD.
- jwHash - A fast hashtable implementation. Apache2.0.
- kdtree - A simple library for working with KD-trees. 3-clause BSD.
- Kitsune - An efficient, general-purpose framework for dynamic software updating. GNU LGPL3 or later.
- libavl - A library containing a range of self-balancing binary trees. GNU GPL3 or later.
- libbson - A BSON utility library. Apache2.0.
- libCello - A library introducing higher-level programming to C. 3-clause BSD.
- libcox - A library which permits cross-platform system calls and standard utilities across different operating systems. FreeBSD.
- libffi - A portable foreign-function interface library. Expat.
- libgit2 - Pure C implementation of Git. GNU GPL2 only, with a linking exception.
- libimobiledevice - A cross-platform protocol library to communicate with iThings. GNU LGPLv2.1 or later (library), GNU GPL2.1 or later (tools).
- libmpv - A music-playing library. Compile with
./waf configure --disable-cplayer --enable-libmpv-shared
to not have the music player. GNU GPL2.1 or later. - libnfc - A platform-independent Near-Field Communication library. GNU LGPL3 only.
- libPhenom - An eventing framework for building high-scalability and high-performance systems. Apache2.0.
- libsoundio - A library for cross-platform, real-time audio input and output. Has a range of back-ends. Expat.
- libucl - A universal configuration library parser. FreeBSD.
- libuv - Cross-platform asynchronous I/O. Expat.
- libYAML - A YAML 1.1 parser and emitter. Expat.
- lzo - A very fast data compression library. GNU GPL2.1.
- mpc - A parser combinator library. FreeBSD.
- ncurses - Coloured terminal UI library. GNU GPL3 or later.
- nope.c - A C-language-based, ultra-light software platform for scalable server-side and networking applications (think node.js for C programmers). GNU GPL2.1 only.
- pbc - A protocol buffers library. Expat.
- rabbitmq-c - A client library for RabbitMQ. Expat.
- Ragel - A DSL for state machines that compiles to C. GNU GPL2.1 only.
- uthash - A hash table implementation, allowing existing structures to be stored in a hash table easily. 1-clause BSD
- Viola - A simplification of libCello. Expat.
- zlib - A massively-spiffy yet delicately-unobtrusive compression library. 3-clause BSD.
"XML is crap. Really. There are no excuses. XML is nasty to parse for humans, and it's a disaster to parse even for computers. There's just no reason for that horrible crap to exist." - Linus Torvalds