Files
awesome-awesomeness/html/c.html
2024-04-20 19:22:54 +02:00

2118 lines
118 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<h1 id="awesome-c">Awesome C</h1>
<p>A curated list of C good stuff. This list contains <em>only</em> <a
href="https://opensource.org/osd">open source</a> code (as defined by
the linked Open Source Definition), and sellers who arent evil for
physical resources.</p>
<p>This is released under a Creative Commons-Attribution-ShareAlike
license, version 4 (SPDX code <code>CC-BY-SA-4.0</code>). You can find
its text in the LICENSE file.</p>
<p><strong>An important note:</strong> This project does <em>not</em>
index anything C++-related; only pure C stuff is considered.</p>
<p><strong>Note for contributors:</strong> If you want to make a pull
request, please read CONTRIBUTING.md first.</p>
<h2 id="contents">Contents</h2>
<ul>
<li><a href="#ai">AI</a></li>
<li><a href="#benchmarking">Benchmarking</a></li>
<li><a href="#build-systems">Build Systems</a></li>
<li><a href="#compilers">Compilers</a></li>
<li><a href="#compression">Compression</a></li>
<li><a href="#concurrency-and-parallelism">Concurrency and
Parallelism</a></li>
<li><a href="#crypto">Crypto</a></li>
<li><a href="#database">Database</a></li>
<li><a href="#data-structures">Data Structures</a></li>
<li><a href="#debugging">Debugging</a></li>
<li><a href="#documentation-generation">Documentation
Generation</a></li>
<li><a href="#editors">Editors</a></li>
<li><a href="#embeddable-scripting-engines">Embeddable Scripting
Engines</a></li>
<li><a href="#frameworks">Frameworks</a></li>
<li><a href="#game-programming">Game Programming</a></li>
<li><a href="#graphics">Graphics</a></li>
<li><a href="#graphical-user-interface">Graphical User
Interface</a></li>
<li><a href="#hashing">Hashing</a></li>
<li><a href="#learning-reference-and-tutorials">Learning, Reference and
Tutorials</a>
<ul>
<li><a href="#reference-resources-online">Reference resources
online</a></li>
<li><a href="#beginner-resources-online">Beginner resources
online</a></li>
<li><a href="#intermediate-resources-online">Intermediate resources
online</a></li>
<li><a href="#advanced-resources-online">Advanced resources
online</a></li>
<li><a href="#reference-books">Reference books</a></li>
<li><a href="#beginner-books">Beginner books</a></li>
<li><a href="#intermediate-books">Intermediate books</a></li>
<li><a href="#advanced-books">Advanced books</a></li>
</ul></li>
<li><a href="#lexing-and-parsing">Lexing and Parsing</a></li>
<li><a href="#memory-management">Memory Management</a></li>
<li><a href="#multimedia">Multimedia</a></li>
<li><a href="#networking-and-internet">Networking and Internet</a></li>
<li><a href="#numerical">Numerical</a></li>
<li><a href="#profiling">Profiling</a></li>
<li><a href="#regex">Regex</a></li>
<li><a href="#serialization">Serialization</a></li>
<li><a href="#source-code-collections">Source Code Collections</a></li>
<li><a href="#standard-libraries">Standard Libraries</a>
<ul>
<li><a href="#template-libraries">Template Libraries</a></li>
</ul></li>
<li><a href="#string-manipulation">String Manipulation</a></li>
<li><a href="#structured-file-processing">Structured File Processing</a>
<ul>
<li><a href="#csv">CSV</a></li>
<li><a href="#json">JSON</a></li>
<li><a href="#ini">INI</a></li>
<li><a href="#others">Others</a></li>
<li><a href="#xml">XML</a></li>
<li><a href="#yaml">YAML</a></li>
</ul></li>
<li><a href="#testing">Testing</a></li>
<li><a href="#text-editor-extensions">Text Editor Extensions</a></li>
<li><a href="#tools">Tools</a></li>
<li><a href="#utilities">Utilities</a></li>
<li><a href="#web-frameworks">Web Frameworks</a></li>
<li><a href="#windows-environments">Windows Environments</a></li>
</ul>
<h2 id="ai">AI</h2>
<p>Computer vision, neural nets, machine learning, and other similar
things. Basically, if your university calls it AI, it lives here.</p>
<ul>
<li><a href="http://libccv.org/">ccv</a> - C-based/Cached/Core Computer
Vision library; modern computer vision. <a
href="https://spdx.org/licenses/BSD-3-Clause.html"><code>BSD-3-Clause</code></a></li>
<li><a href="https://100.github.io/Cranium/">Cranium</a> - Portable,
header-only ANN library in C99. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/libfann/fann">FANN</a> - Fast Artifical
Neural Network library; an implementation of neural networks. <a
href="https://spdx.org/licenses/GPL-2.0-only.html"><code>GPL-2.0-only</code></a></li>
<li><a href="https://codeplea.com/genann">Genann</a> - Simple ANN in
C89, without additional dependencies. <a
href="https://spdx.org/licenses/Zlib.html"><code>Zlib</code></a></li>
<li><a href="https://github.com/attractivechaos/kann">KANN</a> -
Two-file ANN library. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/jppbsi/LibDEEP">LibDEEP</a> - Deep
learning library. <a
href="https://spdx.org/licenses/BSD-3-Clause.html"><code>BSD-3-Clause</code></a></li>
<li><a href="https://github.com/BayesWitnesses/m2cgen">m2cgen</a> - A
CLI tool to transpile trained classic ML models into a native C code
with zero dependencies. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://sod.pixlab.io/">sod</a> - An Embedded Computer
Vision &amp; Machine Learning Library [<code>GPL-3</code>][GPL-3]</li>
</ul>
<h2 id="benchmarking">Benchmarking</h2>
<p>Comparing the performance of various subsystems across different
chip/system architectures.</p>
<ul>
<li><a href="https://github.com/okuvshynov/b63">b63</a> - Light-weight
micro-benchmarking tool for C. <a
href="https://spdx.org/licenses/Apache-2.0.html"><code>Apache-2.0</code></a></li>
</ul>
<h2 id="build-systems">Build Systems</h2>
<p>Tools that automate the building and testing of projects in C.</p>
<ul>
<li><a
href="https://www.gnu.org/software/automake/manual/html_node/GNU-Build-System.html">Autotools</a>
- Also known as the GNU build system (automake, autoconf, libtool…) is
one of the most widely used build systems (configure &amp;&amp; make).
<a
href="https://spdx.org/licenses/GPL-1.0.html">GPL-1.0-or-later</a></li>
<li><a href="https://github.com/msune/autotools-skeleton">Autotools
project skeleton</a> - A simple autotools skeleton (template) to quickly
bootstrap new projects. <a
href="https://spdx.org/licenses/BSD-2-Clause.html"><code>BSD-2-Clause</code></a></li>
<li><a href="https://cmake.org/">CMake</a> - Cross-platform family of
tools designed to build, package and test software. <a
href="https://spdx.org/licenses/BSD-3-Clause.html"><code>BSD-3-Clause</code></a></li>
<li><a href="https://www.gnu.org/software/make/">GNU Make</a> - Tool
which controls the generation of executables and other non-source files
of a program. <a
href="https://spdx.org/licenses/GPL-3.0-or-later.html"><code>GPL-3.0-or-later</code></a></li>
<li><a href="https://mesonbuild.com/">Meson</a> - Extremely fast,
user-friendly build system. Based on Ninja. <a
href="https://spdx.org/licenses/Apache-2.0.html"><code>Apache-2.0</code></a></li>
<li><a href="https://premake.github.io/">Premake</a> - 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. <a
href="https://spdx.org/licenses/BSD-3-Clause.html"><code>BSD-3-Clause</code></a></li>
<li><a href="https://www.scons.org/">SCons</a> - Software construction
tool using Python. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://xmake.io/">xmake</a> - Cross-platform build
utility. <a
href="https://spdx.org/licenses/Apache-2.0.html"><code>Apache-2.0</code></a></li>
<li><a href="https://github.com/zeromq/zproject">zproject</a> - Project
generator and build system support tool. <a
href="https://spdx.org/licenses/MPL-2.0.html"><code>MPL-2.0</code></a></li>
</ul>
<h2 id="compilers">Compilers</h2>
<p>Compilers, as well as compiler- and compilation-related tooling.</p>
<ul>
<li><a href="https://ccache.dev/">ccache</a> - Compiler cache designed
to speed up recompilation. <a
href="https://spdx.org/licenses/GPL-3.0-or-later.html"><code>GPL-3.0-or-later</code></a></li>
<li><a href="https://clang.llvm.org/">Clang</a> - Compiler for LLVM.
Supports C11. <a
href="https://spdx.org/licenses/NCSA.html"><code>NCSA</code></a></li>
<li><a href="https://git.sr.ht/~mcf/cproc">cproc</a> - A C11 compiler
using QBE as a backend. <a
href="https://spdx.org/licenses/ISC.html"><code>ISC</code></a></li>
<li><a href="https://github.com/distcc/distcc">distcc</a> - Program that
allows builds to be distributed among several machines. <a
href="https://spdx.org/licenses/GPL-2.0-or-later.html"><code>GPL-2.0-or-later</code></a></li>
<li><a href="https://pp.ipd.kit.edu/firm/">Firm</a> - 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. <a
href="https://spdx.org/licenses/LGPL-2.1-only.html"><code>LGPL-2.1-only</code></a></li>
<li><a href="https://gcc.gnu.org/">GCC</a> - Provides a C compiler as
part of its compiler set. Supports C11. <a
href="https://spdx.org/licenses/GPL-3.0-or-later.html"><code>GPL-3.0-or-later</code></a></li>
<li><a href="http://pcc.ludd.ltu.se/">PCC</a> - Venerable compiler.
Supports C99. <a href="http://pcc.ludd.ltu.se/licenses/">Various
licenses</a>, all open source.</li>
</ul>
<h2 id="compression">Compression</h2>
<ul>
<li><a href="http://blosc.org/pages/blosc-in-depth">blosc</a> -
Extremely fast, multi-threaded, meta-compressor library. Various
licenses, all open source.</li>
<li><a href="https://github.com/google/brotli">Brotli</a> -
General-purpose lossless compression algorithm library. Has speeds
comparable to DEFLATE, but much higher compression ratios. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a>.</li>
<li><a href="http://lzip.nongnu.org/clzip.html">clzip</a> - C version of
the high-quality data compressor <a
href="http://lzip.nongnu.org/lzip.html">Lzip</a> (LZMA implementation).
<a
href="https://spdx.org/licenses/GPL-2.0-or-later.html"><code>GPL-2.0-or-later</code></a></li>
<li><a href="https://github.com/RoaringBitmap/CRoaring">CRoaring</a> - C
implementation of <a href="http://roaringbitmap.org/">Roaring
bitmaps</a>. <a
href="https://spdx.org/licenses/Apache-2.0.html"><code>Apache-2.0</code></a></li>
<li><a
href="https://github.com/Cyan4973/FiniteStateEntropy">FiniteStateEntropy</a>
- Two highly efficient compression codecs optimized for modern CPUs. <a
href="https://spdx.org/licenses/BSD-2-Clause.html"><code>BSD-2-Clause</code></a></li>
<li><a href="https://github.com/centaurean/density">DENSITY</a> -
Super-fast compression library. <a
href="https://spdx.org/licenses/BSD-3-Clause.html"><code>BSD-3-Clause</code></a></li>
<li><a href="https://github.com/atomicobject/heatshrink">heatshrink</a>
- Data compression/decompression library for embedded and real-time
systems. <a
href="https://spdx.org/licenses/ISC.html"><code>ISC</code></a></li>
<li><a href="https://github.com/gildor2/fast_zlib">fast_zlib</a> -
Improved zlib, which runs 2 to 10 times faster. <a
href="https://spdx.org/licenses/BSD-3-Clause.html"><code>BSD-3-Clause</code></a></li>
<li><a href="https://github.com/ariya/fastlz">fastLZ</a> -
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. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a
href="https://github.com/adamierymenko/huffandpuff">huffandpuff</a> -
Minimal Huffman encoder and decoder. Public domain.</li>
<li><a href="https://github.com/maxim2266/str">libzip</a> - C library
for reading, creating and modifying zip archives. <a
href="https://spdx.org/licenses/BSD-3-Clause.html"><code>BSD-3-Clause</code></a></li>
<li><a href="http://www.bzip.org/">libbzip2</a> - Patent-free,
high-quality data compression library. <a
href="https://spdx.org/licenses/BSD-4-Clause.html"><code>BSD-4-Clause</code></a></li>
<li><a href="https://github.com/inikep/lizard">Lizard</a> - Formerly
LZ5; an efficient compressor with fast decompression. Achieves
compression ratios comparable with zip and zlib at decompression speeds
of 1000MB/s and faster. <a
href="https://spdx.org/licenses/BSD-2-Clause.html"><code>BSD-2-Clause</code></a></li>
<li><a href="http://lz4.github.io/lz4/">lz4</a> - Library for an
extremely fast compression algorithm. <a
href="https://spdx.org/licenses/BSD-2-Clause.html"><code>BSD-2-Clause</code></a></li>
<li><a href="http://www.oberhumer.com/opensource/lzo/">lzo</a> - Fast
data compression library. <a
href="https://spdx.org/licenses/GPL-2.0-or-later.html"><code>GPL-2.0-or-later</code></a></li>
<li><a href="https://github.com/vasi/pixz">pixz</a> - Parallel, indexed
xz compressor. <a
href="https://spdx.org/licenses/BSD-2-Clause.html"><code>BSD-2-Clause</code></a></li>
<li><a href="http://ed-von-schleck.github.io/shoco">shoco</a> -
Compressor for small text strings. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/lemire/simdcomp">SIMDComp</a> - Simple
library for compressing lists of integers using binary packing. Makes
use of SIMD instructions on x86. <a
href="https://spdx.org/licenses/BSD-3-Clause.html"><code>BSD-3-Clause</code></a></li>
<li><a href="https://github.com/antirez/smaz">smaz</a> - Efficient
string compression library. <a
href="https://spdx.org/licenses/BSD-3-Clause.html"><code>BSD-3-Clause</code></a></li>
<li><a href="https://github.com/quixdb/squash">squash</a> - Compression
abstraction library, complete with some utilities. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/powturbo/TurboPFor">TurboPFor</a> -
Fastest integer compression. <a
href="https://spdx.org/licenses/GPL-2.0-or-later.html"><code>GPL-2.0-or-later</code></a></li>
<li><a href="https://github.com/powturbo/TurboRLE">TurboRLE</a> - Most
efficient run-length encoding. <a
href="https://spdx.org/licenses/GPL-2.0-or-later.html"><code>GPL-2.0-or-later</code></a></li>
<li><a href="https://github.com/kuba--/zip">zip</a> - Really really
small zip archive processing library. <a
href="https://spdx.org/licenses/Unlicense.html"><code>Unlicense</code></a></li>
<li><a href="http://zlib.net">Zlib</a> - Massively spiffy yet delicately
unobtrusive compression library. <a
href="https://spdx.org/licenses/BSD-3-Clause.html"><code>BSD-3-Clause</code></a></li>
<li><a href="https://github.com/libarchive/libarchive">libarchive</a> -
libarchive is a portable, efficient C library that can read and write
streaming archives in a variety of formats. <a
href="https://spdx.org/licenses/BSD-3-Clause.html"><code>BSD-3-Clause</code></a></li>
<li><a href="https://github.com/Dead2/zlib-ng">zlib-ng</a> - Zlib
replacement with optimizations for next-generation systems. <a
href="https://spdx.org/licenses/BSD-3-Clause.html"><code>BSD-3-Clause</code></a></li>
<li><a href="http://facebook.github.io/zstd/">Zstandard</a> - Fast,
lossless compression algorithm, targeting real-time compression
scenarios at zlib-level or better compression ratios. <a
href="https://spdx.org/licenses/BSD-3-Clause.html"><code>BSD-3-Clause</code></a></li>
</ul>
<h2 id="concurrency-and-parallelism">Concurrency and Parallelism</h2>
<ul>
<li><a href="http://repo.hu/projects/cchan/">cchan</a> - Small library
for channel constructs for inter-thread communication. Public
domain.</li>
<li><a
href="https://github.com/yosefk/checkedthreads">checkedthreads</a> - A
simple library for parallelism, with built-in checking for race
conditions. <a
href="https://spdx.org/licenses/BSD-2-Clause.html"><code>BSD-2-Clause</code></a></li>
<li><a href="http://concurrencykit.org">ck</a> - Concurrency primitives,
safe memory reclamation mechanisms and non-blocking data structures. <a
href="https://spdx.org/licenses/BSD-2-Clause.html"><code>BSD-2-Clause</code></a></li>
<li><a href="http://www.shlomifish.org/rwlock/">FCFS RWLock</a> -
First-come first-served Readers/Writers lock for POSIX threads. <a
href="https://spdx.org/licenses/CC0-1.0.html"><code>CC0-1.0</code></a></li>
<li><a href="https://github.com/hnes/libaco">Libaco</a> - A blazing fast
and lightweight C asymmetric coroutine library. <a
href="https://spdx.org/licenses/Apache-2.0.html"><code>Apache-2.0</code></a></li>
<li><a href="https://github.com/sharow/libconcurrent">libconcurrent</a>
- Concurrent programming library, using coroutines, for C11. <a
href="https://spdx.org/licenses/BSD-3-Clause.html"><code>BSD-3-Clause</code></a></li>
<li><a href="https://github.com/shiyanhui/libcsp">libcsp</a> - High
performance concurrency C library influenced by the CSP model. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="http://libdill.org/">libdill</a> - Library which makes
structured concurrent programming easy. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/xant/libhl">libhl</a> - 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. <a
href="https://spdx.org/licenses/LGPL-3.0-only.html"><code>LGPL-3.0-only</code></a></li>
<li><a href="http://liburcu.org/">liburcu</a> - Data synchronization
library, which scales linearly with the number of cores. <a
href="https://spdx.org/licenses/LGPL-2.1-or-later.html"><code>LGPL-2.1-or-later</code></a></li>
<li><a href="http://libmill.org/">mill</a> - Go-style concurrency. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/matze/oclkit">oclkit</a> - Two-file
OpenCL wrapper. <a
href="https://spdx.org/licenses/GPL-3.0-or-later.html"><code>GPL-3.0-or-later</code></a></li>
<li><a href="http://tuxfan.github.io/ocl-mla/">OCL-MLA</a> - OpenCL
Mid-Level Abstractions. <a
href="https://spdx.org/licenses/BSD-3-Clause.html"><code>BSD-3-Clause</code></a></li>
<li><a href="https://www.openmp.org/">OpenMP</a> - Set of pragmas
designed to allow for easy parallelization of code. Standard (licensing
not applicable).</li>
<li><a href="https://github.com/open-mpi/ompi">Open MPI</a> - Message
passing interface implementation. <a
href="https://spdx.org/licenses/BSD-3-Clause.html"><code>BSD-3-Clause</code></a></li>
<li><a href="https://github.com/parallella/pal">pal</a> - Optimized
library for maths, parallel processing and data movement. <a
href="https://spdx.org/licenses/Apache-2.0.html"><code>Apache-2.0</code></a></li>
<li><a href="https://gnu.org/software/pth/">pth</a> - Portable
implementation for non-preemptive priority-based scheduling for multiple
threads of execution. <a
href="https://spdx.org/licenses/GPL-3.0-or-later.html"><code>GPL-3.0-or-later</code></a></li>
<li><a href="https://en.wikipedia.org/wiki/POSIX_Threads">pthreads</a> -
POSIX thread library. Standard (no license applicable).</li>
<li><a href="https://tinycthread.github.io/">TinyCThread</a> - Portable,
small implementation of the C11 threads API. <a
href="https://spdx.org/licenses/Zlib.html"><code>Zlib</code></a></li>
</ul>
<h2 id="crypto">Crypto</h2>
<p>Mostly library implementations of well-known cryptographic algorithms
or protocols.</p>
<ul>
<li><a href="https://gnu.org/software/gsasl/">GNU SASL</a> -
Implementation of the Simple Authentication and Security Layer and a few
common SASL mechanism. <a
href="https://spdx.org/licenses/GPL-3.0-or-later.html"><code>GPL-3.0-or-later</code></a></li>
<li><a href="http://www.gnutls.org/">GnuTLS</a> - Secure communication
library, implementing SSL, TLS and DTLS. <a
href="https://spdx.org/licenses/LGPL-2.1-or-later.html"><code>LGPL-2.1-or-later</code></a></li>
<li><a href="https://gnupg.org/related_software/libgcrypt">libgcrypt</a>
- General-purpose cryptography library, with a range of available
ciphers. <a
href="https://spdx.org/licenses/LGPL-2.1-or-later.html"><code>LGPL-2.1-or-later</code></a></li>
<li><a href="https://www.openssl.org/">OpenSSL</a> - Implementation of
the SSL and TLS protocols. Also includes a cryptography library. <a
href="https://www.openssl.org/source/license.html">Dual Licensed under
the OpenSSL License and the SSLeay License</a>.</li>
<li><a href="https://openquantumsafe.org/">liboqs</a> - Library for
quantum-resistant cryptographicl algorithms. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://download.libsodium.org/doc">libsodium</a> - Modern
and easy-to-use crypto library. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://www.libtom.net">libtomcrypt</a> - Fairly
comprehensive, modular and portable cryptographic toolkit. Public
domain.</li>
<li><a href="https://tls.mbed.org/">mbed TLS</a> - Another crypto
implementation. <a
href="https://spdx.org/licenses/Apache-2.0.html"><code>Apache-2.0</code></a></li>
<li><a href="https://github.com/miracl/MIRACL">MIRACL</a> -
Multiprecision Integer and Rational Arithmetic Cryptographic Library; an
SDK for elliptic curve cryptography. <a
href="https://spdx.org/licenses/AGPL-3.0-or-later.html"><code>AGPL-3.0-or-later</code></a></li>
<li><a href="https://maciejczyzewski.github.io/retter">retter</a> -
Collection of hash functions, ciphers, tools, libraries and materials
related to cryptography and security. Public domain.</li>
<li><a href="https://github.com/awslabs/s2n">s2n</a> - C99
implementation of the TLS/SSL protocols, designed to be simple, fast and
with security as a priority. <a
href="https://spdx.org/licenses/Apache-2.0.html"><code>Apache-2.0</code></a></li>
<li><a href="http://www.saphir2.com/sphlib/">sphlib</a> - Set of
implementations of various hash functions, including several
cryptographic ones. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/trezor/trezor-crypto">trezor-crypto</a>
- Heavily optimized crypto algorithms for embedded devices. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/cjwagenius/bfish">bfish</a> - A single
include ANSI-C Blowfish ECB crypto library. Public domain.</li>
</ul>
<h2 id="database">Database</h2>
<p>Databases and data stores with C APIs.</p>
<ul>
<li><a
href="http://www.oracle.com/us/products/database/berkeley-db">BerkeleyDB</a>
- Library for a high-performance embedded database for key-value data.
<a
href="https://spdx.org/licenses/AGPL-3.0-only.html"><code>AGPL-3.0-only</code></a></li>
<li><a href="https://duckdb.org/">DuckDB</a> - Fast in-process
analytical database, with C API. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a><br />
</li>
<li><a href="https://ejdb.org/">EJDB2</a> - Embeddable JSON Database
engine. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/groonga/groonga">Groonga</a> - Columnar
store with full-text search. <a
href="https://spdx.org/licenses/LGPL-2.1-only.html"><code>LGPL-2.1-only</code></a></li>
<li><a href="https://github.com/redis/hiredis">Hiredis</a> -
Minimalistic client library for Redis. <a
href="https://spdx.org/licenses/BSD-3-Clause.html"><code>BSD-3-Clause</code></a></li>
<li><a href="http://mongoc.org/">libmongoc</a> - High-performance client
library for <a href="https://www.mongodb.org/">MongoDB</a>. <a
href="https://spdx.org/licenses/Apache-2.0.html"><code>Apache-2.0</code></a></li>
<li><a href="https://www.symas.com/lmdb">LMDB</a> - Ultra-fast,
ultra-compact key-value embedded data store. <a
href="https://spdx.org/licenses/OLDAP-2.8.html"><code>OLDAP-2.8</code></a></li>
<li><a href="https://github.com/mysql/mysql-server">MySQL</a> - The
worlds most popular open source database. <a
href="https://spdx.org/licenses/GPL-2.0-only.html"><code>GPL-2.0-only</code></a></li>
<li><a href="https://www.postgresql.org/">PostgreSQL</a> - Powerful
object-relational database system. <a
href="https://spdx.org/licenses/PostgreSQL.html"><code>PostgreSQL</code></a></li>
<li><a href="https://redis.io/">Redis</a> - Advanced key-value store. <a
href="https://spdx.org/licenses/BSD-3-Clause.html"><code>BSD-3-Clause</code></a></li>
<li><a href="http://sophia.systems">sophia</a> - Modern, embeddable
key-value database. <a
href="https://spdx.org/licenses/BSD-2-Clause.html"><code>BSD-2-Clause</code></a></li>
<li><a href="https://github.com/spotify/sparkey">sparkey</a> - Simple
constant key/value storage library. Designed for read-heavy loads with
infrequent, large bulk inserts. <a
href="https://spdx.org/licenses/Apache-2.0.html"><code>Apache-2.0</code></a></li>
<li><a href="https://www.sqlite.org/">SQLite</a> - Self-contained,
serverless, zero-configuration, transactional SQL database engine.
Public domain.</li>
<li><a href="https://unqlite.org/">UnQLite</a> - Self-contained,
serverless, zero-configuration, transactional NoSQL engine. <a
href="https://spdx.org/licenses/BSD-2-Clause.html"><code>BSD-2-Clause</code></a></li>
<li><a href="https://github.com/priitj/whitedb">WhiteDB</a> -
Lightweight database library, operating entirely in main memory. <a
href="https://spdx.org/licenses/GPL-3.0-or-later.html"><code>GPL-3.0-or-later</code></a></li>
</ul>
<h2 id="data-structures">Data Structures</h2>
<ul>
<li><a
href="https://github.com/LeoVen/C-Macro-Collections">C-Macro-Collections</a>
- Generate simple and generic data structures using macros. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/AlexanderAgd/CLIST">CLIST</a> - Simple
and lightweight <a
href="https://en.wikipedia.org/wiki/Dynamic_array">dynamic array</a>
implementation. <a
href="https://spdx.org/licenses/BSD-2-Clause.html"><code>BSD-2-Clause</code></a></li>
<li><a href="https://github.com/srdja/Collections-C">Collections-C</a> -
Library of generic data structures. <a
href="https://spdx.org/licenses/LGPL-3.0-or-later.html"><code>LGPL-3.0-or-later</code></a></li>
<li><a href="https://github.com/recp/ds">ds</a> - Common Data Structures
and Algorithms. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://igraph.org/">igraph</a> - A graph processing
library. <a
href="https://spdx.org/licenses/GPL-2.0-or-later.html"><code>GPL-2.0-or-later</code></a></li>
<li><a href="https://github.com/jtsiomb/kdtree">kdtree</a> - Simple
library for working with KD-trees. <a
href="https://spdx.org/licenses/BSD-3-Clause.html"><code>BSD-3-Clause</code></a></li>
<li><a href="http://adtinfo.org/libavl.html/index.html">libavl</a> -
Library containing a range of self-balancing binary trees. <a
href="https://spdx.org/licenses/GPL-3.0-or-later.html"><code>GPL-3.0-or-later</code></a></li>
<li><a href="https://msune.github.io/libcdada/">libcdada</a> - A small,
portable, MACRO-less library for basic data structures (list, set, map,
queue…) in C (C++ backend). <a
href="https://spdx.org/licenses/BSD-2-Clause.html"><code>BSD-2-Clause</code></a></li>
<li><a href="https://liblfds.org/">liblfds</a> - Portable lock-free data
structure library. Public domain (more exactly, whatever license you
want).</li>
<li><a href="https://faragon.github.io/libsrt.html">libsrt</a> - Soft
and hard real-time data structures. <a
href="https://spdx.org/licenses/BSD-3-Clause.html"><code>BSD-3-Clause</code></a>.</li>
<li><a href="https://github.com/nbulischeck/list.h">list.h</a> -
Implementations for singly linked and doubly linked list functions. <a
href="https://spdx.org/licenses/GPL-3.0-only.html"><code>GPL-3.0-only</code></a></li>
<li><a href="https://github.com/P-p-H-d/mlib">M*LIB</a> - Library for
generic, but typesafe C containers. Implemented as header-only. <a
href="https://spdx.org/licenses/BSD-2-Clause.html"><code>BSD-2-Clause</code></a></li>
<li><a href="https://github.com/theck01/offbrand_lib">offbrand</a> -
Collection of generic, reference-counted data structures. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/gpakosz/PackedArray">PackedArray</a> -
Random-access array of tightly packed unsigned integers of any desired
width. Has a SIMD-optimized implementation. <a
href="https://spdx.org/licenses/WTFPL.html"><code>WTFPL</code></a></li>
<li><a href="http://jstimpfle.de/projects/rb3ptr/rb3ptr.html">rb3ptr</a>
- Red-Black tree. Exposes almost all implementation primitives, so can
be used for scenarios like augmentation, multiple compatible ordering
functions, and more. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="http://troydhanson.github.io/uthash/">uthash</a> -
Single-file hash table implementation. <a
href="https://spdx.org/licenses/BSD-1-Clause.html"><code>BSD-1-Clause</code></a></li>
<li><a href="https://github.com/swenson/vector.h">vector.h</a> - Header
library for typed lists. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
</ul>
<h2 id="debugging">Debugging</h2>
<p>Because we all have to do it sometimes. Various tools for making
debugging easier or better, as well as libraries or code that allows
better debugging work.</p>
<ul>
<li><a href="https://embed.cs.utah.edu/creduce/">C-Reduce</a> - 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. <a
href="https://spdx.org/licenses/BSD-3-Clause.html"><code>BSD-3-Clause</code></a></li>
<li><a href="https://www.cprover.org/cbmc/">CBMC</a> - C Bounded Model
Checker; a tool for verification of array bounds, pointer safety and
user-specified assertions. <a
href="https://spdx.org/licenses/BSD-4-Clause.html"><code>BSD-4-Clause</code></a></li>
<li><a href="http://www.gnu.org/software/cflow/">cflow</a> - Analyzes a
collection of source files and prints a graph charting control flow in
the program. <a
href="https://spdx.org/licenses/GPL-3.0-or-later.html"><code>GPL-3.0-or-later</code></a></li>
<li><a href="https://www.gnu.org/software/complexity/">Complexity</a> -
Tool for measuring the complexity of source code. <a
href="https://spdx.org/licenses/GPL-3.0-or-later.html"><code>GPL-3.0-or-later</code></a></li>
<li><a href="https://www.spinellis.gr/cscout/">CScout</a> - Source code
analyzer and refactoring browser for C programs. <a
href="https://spdx.org/licenses/GPL-3.0-only.html"><code>GPL-3.0-only</code></a></li>
<li><a href="https://www.gnu.org/software/ddd/ddd.html">DDD</a> -
Graphical front-end for a range of command-line debuggers. <a
href="https://spdx.org/licenses/GPL-3.0-or-later.html"><code>GPL-3.0-or-later</code></a></li>
<li><a href="https://github.com/esneider/debug">debug</a> - One-header
library for easier printf debugging. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="http://esbmc.org/">ESBMC</a> - Efficient SMT-based Bounded
Model Checker; a tool for verification of single and multithread
programs, user assertions, overflow, and pointer/memory safety. <a
href="https://spdx.org/licenses/Apache-2.0.html"><code>Apache-2.0</code></a></li>
<li><a href="https://www.gnu.org/software/gdb/">GDB</a> - GNU Project
debugger. <a
href="https://spdx.org/licenses/GPL-3.0-or-later.html"><code>GPL-3.0-or-later</code></a></li>
<li><a href="https://lldb.llvm.org/">lldb</a> - LLVM debugger. <a
href="https://spdx.org/licenses/NCSA.html"><code>NCSA</code></a></li>
<li><a href="https://rr-project.org/">rr</a> - Debugger that records
non-deterministic executions to allow for deterministic debugging. <a
href="https://spdx.org/licenses/BSD-2-Clause.html"><code>BSD-2-Clause</code></a></li>
<li><a href="http://www.valgrind.org/">Valgrind</a> - Range of dynamic
analysis tools, including a leak checker. <a
href="https://spdx.org/licenses/GPL-2.0-only.html"><code>GPL-2.0-only</code></a></li>
</ul>
<h2 id="documentation-generation">Documentation Generation</h2>
<ul>
<li><a href="http://www.gedanken.org.uk/software/cxref/">Cxref</a> -
Generates documentation in either LaTeX, HTML, RTF or SGML. <a
href="https://spdx.org/licenses/GPL-2.0-only.html"><code>GPL-2.0-only</code></a></li>
<li><a
href="https://hplgit.github.io/doconce/doc/web/index.html">DocOnce</a> -
Modestly tagged markup language that can be used to generate a range of
formats. <a
href="https://spdx.org/licenses/BSD-3-Clause.html"><code>BSD-3-Clause</code></a></li>
<li><a href="http://www.doxygen.nl/">Doxygen</a> - De-facto standard
tool for generating documentation from annotated sources. Can generate a
large range of formats. <a
href="https://spdx.org/licenses/GPL-2.0-only.html"><code>GPL-2.0-only</code></a></li>
</ul>
<h2 id="editors">Editors</h2>
<p>Fancier, IDE-type editors. If you want a programmers text editor,
look elsewhere. Besides, whatever you use most likely supports C
anyway.</p>
<ul>
<li><a href="http://anjuta.org/">Anjuta DevStudio</a> - GNOME IDE. <a
href="https://spdx.org/licenses/GPL-2.0-only.html"><code>GPL-2.0-only</code></a></li>
<li><a href="http://www.codeblocks.org/">Code::Blocks</a> - Extendable,
configurable IDE supporting C. <a
href="https://spdx.org/licenses/GPL-3.0-only.html"><code>GPL-3.0-only</code></a></li>
<li><a href="https://www.codelite.org/">CodeLite</a> - Cross-platform
IDE. <a
href="https://spdx.org/licenses/GPL-2.0-only.html"><code>GPL-2.0-only</code></a></li>
<li><a href="https://www.geany.org/">Geany</a> - Small and fast IDE. <a
href="https://spdx.org/licenses/GPL-2.0-or-later.html"><code>GPL-2.0-or-later</code></a></li>
<li><a href="https://www.kdevelop.org/">KDevelop</a> - KDE IDE. <a
href="https://spdx.org/licenses/GPL-2.0-only.html"><code>GPL-2.0-only</code></a></li>
<li><a href="http://zinjai.sourceforge.net/">zinjaI</a> - Simple,
lightweight and feature-rich IDE. <a
href="https://spdx.org/licenses/GPL-3.0-only.html"><code>GPL-3.0-only</code></a></li>
</ul>
<h2 id="embeddable-scripting-engines">Embeddable Scripting Engines</h2>
<p>When C isnt the right solution, or when you need a more dynamic
configration engine:</p>
<ul>
<li><a href="https://duktape.org/">Duktape</a> - Embeddable Javascript
engine with a focus on portability and compact footprint <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a>.</li>
<li><a href="https://github.com/metacall/core">MetaCall</a> -
Cross-platform Polyglot Runtime which supports NodeJS, JavaScript,
TypeScript, Python, Ruby, C#, Wasm, Java, Cobol and more. <a
href="https://spdx.org/licenses/Apache-2.0.html"><code>Apache-2.0</code></a></li>
</ul>
<h2 id="frameworks">Frameworks</h2>
<p>Big libraries that provide data structures and other stuff you expect
of a modern standard library.</p>
<ul>
<li><a href="http://apr.apache.org/">APR</a> - Apache Portable Runtime;
another library of cross-platform utility functions. <a
href="https://spdx.org/licenses/Apache-2.0.html"><code>Apache-2.0</code></a></li>
<li><a href="https://fragglet.github.io/c-algorithms">C Algorithms</a> -
Collection of common algorithms and data structures. <a
href="https://spdx.org/licenses/ISC.html"><code>ISC</code></a></li>
<li><a href="http://www.eso.org/sci/software/cpl/">CPL</a> - The Common
Pipeline Library; a set of libraries designed to be a comprehensive,
efficient and robust software toolkit. <a
href="https://spdx.org/licenses/GPL-2.0-only.html"><code>GPL-2.0-only</code></a></li>
<li><a href="https://www.enlightenment.org">EFL</a> - Large collection
of useful data structures and functions. Various licenses, all open
source.</li>
<li><a href="https://wiki.gnome.org/Projects/GLib">GLib</a> - Library of
utility functions and structures, designed to be portable, efficient and
powerful. <a
href="https://spdx.org/licenses/LGPL-2.1-only.html"><code>LGPL-2.1-only</code></a></li>
<li><a href="http://attractivechaos.github.io/klib/#About">klib</a> -
Small and lightweight implementations of common algorithms and data
structures. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="http://libcork.readthedocs.io/en/0.14.0/">libcork</a> -
Utility functions and structures, designed for resource-constrained
systems. Can be embedded. <a
href="https://spdx.org/licenses/BSD-3-Clause.html"><code>BSD-3-Clause</code></a></li>
<li><a href="https://github.com/keybuk/libnih">libnih</a> - Lightweight
library of functions and structures. <a
href="https://spdx.org/licenses/GPL-2.0-only.html"><code>GPL-2.0-only</code></a></li>
<li><a href="http://www.koanlogic.com/libu/">libU</a> - Small library of
basic utilities, including memory allocation, string manipulation and
logging. <a
href="https://spdx.org/licenses/BSD-3-Clause.html"><code>BSD-3-Clause</code></a></li>
<li><a href="http://www.mission-base.com/peter/source/">PBL</a> - Large
library of utilities, featuring data structures, among other things. <a
href="https://spdx.org/licenses/LGPL-2.1-or-later.html"><code>LGPL-2.1-or-later</code></a></li>
<li><a href="https://github.com/saprykin/plibsys">plibsys</a> -
Cross-platform system C library. Zero third-party dependencies, uses
only native system calls. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="http://wolkykim.github.io/qlibc">qlibc</a> - Simple and
powerful library, designed as a replacement for GLib while focusing on
being small and light. <a
href="https://spdx.org/licenses/BSD-2-Clause.html"><code>BSD-2-Clause</code></a></li>
<li><a href="https://github.com/tezc/sc">sc</a> - Common libraries and
data structures for C. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/waruqi/tbox">TBOX</a> - Multi-platform
library with a large number of capabilities. <a
href="https://spdx.org/licenses/Apache-2.0.html"><code>Apache-2.0</code></a></li>
<li><a href="https://github.com/pspdev/pspsdk">pspsdk</a> - An
open-source SDK for PSP homebrew development. <a
href="https://github.com/pspdev/pspsdk/blob/master/LICENSE">Various
licences</a>.</li>
</ul>
<h2 id="game-programming">Game Programming</h2>
<p>Engines, libraries and other helpful things specifically for making
games.</p>
<ul>
<li><a href="https://liballeg.org">Allegro</a> - Cross-platform, video
game development and multimedia library. <a
href="https://spdx.org/licenses/Zlib.html"><code>Zlib</code></a></li>
<li><a href="https://github.com/recp/AssetKit">AssetKit</a> 🎨 3D asset
importer/exporter/util library based on COLLADA/glTF specs <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/tek256/astera">astera</a> - C99 Cross
Platform 2D Game Library <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/recp/cglm">cglm</a> - 📽 Optimized
OpenGL/Graphics Math (glm) for C. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="http://chipmunk-physics.net">Chipmunk2D</a> - Fast and
lightweight 2D game physics library. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/recp/cmt">cmt</a> - 🎮 C
Bindings/Wrappers for Apples METAL Graphics Framework. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/orangeduck/Corange">Corange</a> - Game
engine in pure C. <a
href="https://spdx.org/licenses/BSD-2-Clause.html"><code>BSD-2-Clause</code></a></li>
<li><a href="https://www.sfml-dev.org/download/csfml/">CSFML</a> -
Binding for <a href="https://www.sfml-dev.org/index.php">SFML</a>. <a
href="https://spdx.org/licenses/Zlib.html"><code>Zlib</code></a></li>
<li><a href="https://icculus.org/twilight/darkplaces/">Darkplaces</a> -
Modified version of the Quake2 engine. <a
href="https://spdx.org/licenses/GPL-2.0-only.html"><code>GPL-2.0-only</code></a></li>
<li><a href="https://github.com/anholt/libepoxy">Epoxy</a> - Library for
handling OpenGL function pointer management. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/solenum/exengine">exengine</a> - 3D game
engine in C99 with a starting template. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/SanderMertens/flecs">Flecs</a> - A
Multithreaded Entity Component System written for C89 &amp; C99 <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/shlomif/fc-solve">Freecell Solver</a> -
Set of libraries and command-line programs for automatically solving
FreeCell and some similar variants of card Solitaire. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="http://freeglut.sourceforge.net">FreeGLUT</a> - Alternative
to the OpenGL Utility Toolkit. Allows the creation and management of
windows with OpenGL contexts. <a
href="https://spdx.org/licenses/X11.html"><code>X11</code></a></li>
<li><a href="https://www.glfw.org/">GLFW</a> - Multi-platform library
for creating windows with OpenGL contexts. <a
href="https://spdx.org/licenses/Zlib.html"><code>Zlib</code></a></li>
<li><a href="https://ioquake3.org">ioquake3</a> - Quake3 engine, freed
at last. <a
href="https://spdx.org/licenses/GPL-2.0-only.html"><code>GPL-2.0-only</code></a></li>
<li><a href="https://github.com/Kazade/kazmath">kazmath</a> - Maths
library for games. <a
href="https://spdx.org/licenses/BSD-2-Clause.html"><code>BSD-2-Clause</code></a></li>
<li><a href="https://xiph.org/ao/">libao</a> - Cross-platform audio
library with a wide variety of outputs. <a
href="https://spdx.org/licenses/GPL-2.0-or-later.html"><code>GPL-2.0-or-later</code></a></li>
<li><a href="https://github.com/librg/librg">librg</a> - Pure C99 game
networking library for building simple and elegant cross-platform
multiplayer client-server solutions. <a
href="https://spdx.org/licenses/Apache-2.0.html"><code>Apache-2.0</code></a></li>
<li><a href="https://github.com/ferreiradaselva/mathc">MATHC</a> - Math
library for 2D and 3D programming. <a
href="https://spdx.org/licenses/Zlib.html"><code>ZLib</code></a></li>
<li><a href="http://orx-project.org">Orx</a> - Portable, lightweight,
plugin-based, data-driven, 2D-oriented game engine. <a
href="https://spdx.org/licenses/Zlib.html"><code>Zlib</code></a></li>
<li><a href="https://github.com/id-Software/Quake">Quake</a> - Quake
engine. <a
href="https://spdx.org/licenses/GPL-2.0-only.html"><code>GPL-2.0-only</code></a></li>
<li><a href="https://github.com/id-Software/Quake-2">Quake2</a> - Quake2
engine. <a
href="https://spdx.org/licenses/GPL-2.0-only.html"><code>GPL-2.0-only</code></a></li>
<li><a href="https://www.raylib.com">raylib</a> - Simple and easy-to-use
library to learn video game programming. <a
href="https://spdx.org/licenses/Zlib.html"><code>Zlib</code></a></li>
<li><a href="https://github.com/libretro/RetroArch">RetroArch</a> -
Reference frontend for <a href="https://www.libretro.com/">libretro</a>.
<a
href="https://spdx.org/licenses/GPL-3.0-only.html"><code>GPL-3.0-only</code></a></li>
<li><a href="https://www.libsdl.org/">SDL2</a> - Cross-platform library
designed to provide low-level access to audio, keyboard, mouse, joystick
and graphics hardware via OpenGL. <a
href="https://spdx.org/licenses/Zlib.html"><code>Zlib</code></a></li>
<li><a href="https://github.com/grimfang4/sdl-gpu">sdl-gpu</a> - Library
for high-performance, modern 2D graphics. Based on SDL. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="http://www.libsigil.com/">SIGIL</a> - Sound, Input and
Graphics Integration Library; a simple alternative to other libraries
for doing all those things. Various licenses, all open source.</li>
<li><a href="https://github.com/ferreiradaselva/uastar">uastar</a> -
Minimal A* implementation. <a
href="https://spdx.org/licenses/Zlib.html"><code>ZLib</code></a></li>
</ul>
<h2 id="graphics">Graphics</h2>
<p>Programmatic manipulation of graphics in C; if you want to make a
GUI, the Graphical User Interface section has what you need.</p>
<ul>
<li><a href="https://github.com/recp/AssetKit">AssetKit</a> 🎨 3D asset
importer/exporter/util library based on COLLADA/glTF specs <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="http://cairographics.org/">Cairo</a> - 2D graphics library.
<a
href="https://spdx.org/licenses/LGPL-2.1-only.html"><code>LGPL-2.1-only</code></a>
or <a
href="https://spdx.org/licenses/MPL-1.1.html"><code>MPL-1.1</code></a>.</li>
<li><a href="https://github.com/recp/cmt">cmt</a> - 🎮 C
Bindings/Wrappers for Apples METAL Graphics Framework. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://sourceforge.net/projects/giflib/">giflib</a> -
Library for reading and writing gif images. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="http://ebassi.github.io/graphene/">graphene</a> - Thin
layer of graphical data types. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/prideout/heman">heman</a> - Tiny library
of image utilities dealing with height maps, normal maps, distance
fields and the like. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/cacalabs/libcaca">libcaca</a> - ASCII
renderer for terminal-based interfaces. <a
href="https://spdx.org/licenses/WTFPL.html"><code>WTFPL</code></a></li>
<li><a href="https://github.com/libgd/libgd">libgd</a> - Library for the
dynamic creation of images by programmers. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://pngquant.org/lib/">libimagequant</a> - Small,
portable library for high-quality conversion of RGBA images to 8-bit
indexed colour images. <a
href="https://spdx.org/licenses/GPL-3.0-or-later.html"><code>GPL-3.0-or-later</code></a></li>
<li><a href="https://libjpeg-turbo.virtualgl.org/">libjpeg-turbo</a> -
Faster library for reading and writing JPEG files. <a
href="https://www.libjpeg-turbo.org/About/License">Various
licences</a>.</li>
<li><a href="http://www.libpng.org/">libpng</a> - Official PNG reference
library. <a
href="https://spdx.org/licenses/Libpng.html"><code>Libpng</code></a></li>
<li><a
href="https://wiki.gnome.org/action/show/Projects/LibRsvg?action=show&amp;redirect=LibRsvg">libRSVG</a>
- Library to render SVG files using Cairo. <a
href="https://spdx.org/licenses/LGPL-2.1-or-later.html"><code>LGPL-2.1-or-later</code></a></li>
<li><a href="https://github.com/saitoha/libsixel">libsixel</a> - Library
implementing the SIXEL protocol, allowing beautiful graphics in your
terminal. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://libspng.org/">libspng</a> - A simpler interface for
reading and writing PNG files. <a
href="https://spdx.org/licenses/BSD-2-Clause.html"><code>BSD-2-Clause</code></a></li>
<li><a href="https://libvips.github.io/libvips/">libvips</a> - Image
processing library. <a
href="https://spdx.org/licenses/LGPL-2.1-or-later.html"><code>LGPL-2.1-or-later</code></a></li>
<li><a href="https://gnu.org/software/libxmi/">libxmi</a> - Function
library for rasterizing 2D vector graphics. <a
href="https://spdx.org/licenses/GPL-3.0-or-later.html"><code>GPL-3.0-or-later</code></a></li>
<li><a href="https://github.com/ands/lightmapper">lightmapper</a> -
Single-file library for lightmap baking, using an existing OpenGL
renderer. Public domain.</li>
<li><a href="www.littlecms.com">little CMS</a> - A Color Management
System. It provides fast transforms between ICC profiles. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/mozilla/mozjpeg">mozjpeg</a> - Improved
JPEG encoder. <a
href="https://spdx.org/licenses/BSD-3-Clause.html"><code>BSD-3-Clause</code></a></li>
<li><a href="https://github.com/memononen/nanovg">nanovg</a> -
Anti-aliased 2D vector drawing library on top of OpenGL, for UI and
visualizations. <a
href="https://spdx.org/licenses/Zlib.html"><code>Zlib</code></a></li>
<li><a href="https://www.opengl.org/">OpenGL</a> - Industry standard for
high-performance graphics, with a native C binding. <a
href="http://www.sgi.com/tech/opengl/?/license.html">Various
licenses</a>.</li>
<li><a href="https://github.com/sammycage/plutovg">PlutoVG</a> - A
standalone 2D vector graphics library in C <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://sigrok.org/wiki/Libsigrok">SAIL</a> - ⛵ The
missing small and fast image decoding library for humans (not for
machines) <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
</ul>
<h2 id="graphical-user-interface">Graphical User Interface</h2>
<p>Widget toolkits, or things meant to be used in a similar way to
them.</p>
<ul>
<li><a href="https://www.gtk.org/">GTK+</a> - Cross-platform widget
toolkit. <a
href="https://spdx.org/licenses/LGPL-2.1-only.html"><code>LGPL-2.1-only</code></a></li>
<li><a href="http://webserver2.tecgraf.puc-rio.br/iup/">IUP</a> -
Another cross-platform widget toolkit. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/rxi/microui">microui</a> - Tiny
immediate-mode UI library written in portable ANSI C. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/Immediate-Mode-UI/Nuklear">nuklear</a> -
Small, C89, single-header widget toolkit. Public domain.</li>
<li><a
href="https://sourceforge.net/projects/tinyfiledialogs/">tinyfiledialogs</a>
- Single-file library for simple dialogs. Compatible with many other
toolkits and OSes. <a
href="https://spdx.org/licenses/Zlib.html"><code>Zlib</code></a></li>
<li><a href="http://www.tcl.tk/">Tk</a> - Basic widget toolkit. Part of
Tcl/Tk. <a
href="https://spdx.org/licenses/TCL.html"><code>TCL</code></a></li>
<li><a href="http://xforms-toolkit.org/">XForms Toolkit</a> - Widget
toolkit designed for the XWindow system. <a
href="https://spdx.org/licenses/LGPL-2.1-only.html"><code>LGPL-2.1-only</code></a></li>
<li><a href="https://lvgl.io/">LVGL</a> - embedded GUI with easy-to-use
graphical elements, beautiful visuals and a low memory footprint. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/nakst/luigi">luigi</a> - A barebones
single-header GUI library for Win32, X11 and Essence. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
</ul>
<h2 id="hashing">Hashing</h2>
<p>Hash function implementations for <em>non</em>-crypto purposes.
Cryptographic hashes can be found in the Crypto section.</p>
<ul>
<li><a href="https://github.com/lemire/clhash">CLHash</a> - Library
implementing the ridiculously fast CLHash hashing function. Only works
on Intel Haswell or newer. <a
href="https://spdx.org/licenses/Apache-2.0.html"><code>Apache-2.0</code></a></li>
<li><a href="https://github.com/google/highwayhash">HighwayHash</a> -
Fast, strong, SIMD-using hash function. Also contains an implementation
of SipHash (although this is slower). <a
href="https://spdx.org/licenses/Apache-2.0.html"><code>Apache-2.0</code></a></li>
<li><a href="https://github.com/centaurean/spookyhash">SpookyHash</a> -
Extremely fast hash function. <a
href="https://spdx.org/licenses/BSD-3-Clause.html"><code>BSD-3-Clause</code></a></li>
<li><a href="https://github.com/leo-yuriev/t1ha">t1ha</a> - Fast
Positive Hash - a portable, fast hash function. <a
href="https://spdx.org/licenses/BSD-3-Clause.html"><code>BSD-3-Clause</code></a></li>
<li><a href="http://cyan4973.github.io/xxHash">xxHash</a> - Extremely
fast hashing algorithm. Comes in 32 and 64-bit varieties. <a
href="https://spdx.org/licenses/BSD-2-Clause.html"><code>BSD-2-Clause</code></a></li>
</ul>
<h2 id="learning-reference-and-tutorials">Learning, Reference and
Tutorials</h2>
<p>Resources for learning C programming in general, or something useful
relating to C programming.</p>
<h3 id="reference-resources-online">Reference resources online</h3>
<ul>
<li><a
href="https://locklessinc.com/benchmarks_allocator.shtml">Benchmarks of
the Lockless Memory Allocator</a></li>
<li><a href="http://c-faq.com/">C FAQ - comp.lang.c Frequently Asked
Questions</a></li>
<li><a href="http://www.etalabs.net/compare_libcs.html">Comparison of
C/POSIX standard library implementations for Linux</a></li>
<li><a href="https://port70.net/~nsz/c/c89/c89-draft.html">Draft C89
standard</a></li>
<li><a href="https://port70.net/~nsz/c/c99/n1256.html">Draft C99
standard</a></li>
<li><a href="https://port70.net/~nsz/c/c11/n1570.html">Draft C11
standard</a></li>
<li><a href="http://nullprogram.com/blog/2017/09/21/">Finding the best
64-bit simulation PRNG</a></li>
<li><a
href="https://wiki.sei.cmu.edu/confluence/display/c/SEI+CERT+C+Coding+Standard">SEI
CERT C Coding Standard</a></li>
<li><a href="https://github.com/superjer/tinyc.games">tinyc.game</a> -
Tiny C games you can compile and run RIGHT NOW http://tinyc.games <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
</ul>
<h3 id="beginner-resources-online">Beginner resources online</h3>
<ul>
<li><a
href="https://pdos.csail.mit.edu/6.828/2017/readings/pointers.pdf">A
tutorial on pointers</a></li>
<li><a href="http://nullprogram.com/blog/2017/08/20/">A tutorial on
portable Makefiles</a></li>
<li><a href="http://nethack4.org/blog/building-c.html">Building C
Projects</a></li>
<li><a href="https://en.wikibooks.org/wiki/C_Programming">C Programming
Wikibook</a></li>
<li><a
href="https://gist.github.com/eatonphil/21b3d6569f24ad164365">Introduction
to `fun C</a></li>
<li><a
href="https://www.recurse.com/blog/5-learning-c-with-gdb">Learning C
with GDB</a></li>
<li><a
href="https://web.archive.org/web/20170620131430/https://www.tedunangst.com/flak/post/memcpy-vs-memmove">memcpy
vs memmove</a></li>
<li><a href="https://computing.llnl.gov/tutorials/pthreads/">POSIX
Threads Programming tutorial</a> (a little dated, but most of it is
still valid and useful)</li>
<li><a href="http://www.crasseux.com/books/ctut.pdf">The GNU C
Programming Tutorial</a> (online PDF)</li>
<li><a href="http://blog.pkh.me/p/20-templating-in-c.html">Templating in
C</a></li>
<li><a href="https://marek.vavrusa.com/memory/">What a C programmer
should know about memory</a></li>
<li><a
href="https://codeforwin.org/2015/09/singly-linked-list-data-structure-in-c.html">CodeforWin:
Learn C Programming, Data Structures Tutorials and Exercises
online</a></li>
<li><a href="https://www.learn-c.org">Learn C: Free and Open-Source
Interactive C Tutorial</a></li>
<li><a href="https://github.com/helderman/htpataic">How to program a
text adventure in C</a></li>
</ul>
<h3 id="intermediate-resources-online">Intermediate resources
online</h3>
<ul>
<li><a
href="https://blogs.oracle.com/linux/8-gdb-tricks-you-should-know-v2">8
gdb tricks you should know</a></li>
<li><a href="http://blog.noctua-software.com/c-tricks.html">10 C99
tricks</a></li>
<li><a href="http://mpitutorial.com/">A comprehensive MPI tutorial
resource</a></li>
<li><a href="https://viewsourcecode.org/snaptoken/kilo/">Build Your Own
Text Editor</a></li>
<li><a href="https://jvns.ca/blog/2014/12/14/fun-with-threads/">Diving
into concurrency: trying out mutexes and atomics</a></li>
<li><a href="https://nullprogram.com/blog/2015/02/17">Generic C
reference counting</a></li>
<li><a href="https://nullprogram.com/blog/2017/03/30">How to write
portable C without complicating your build</a></li>
<li><a
href="https://www.youtube.com/playlist?list=PLLX-Q6B8xqZ8n8bwjGdzBJ25X2utwnoEG">Introduction
to OpenMP</a> (video)</li>
<li><a href="https://computing.llnl.gov/tutorials/openMP/">OpenMP
tutorial</a> (for the OpenMP3 standard)</li>
<li><a href="https://computing.llnl.gov/tutorials/mpi/">MPI
tutorial</a></li>
<li><a
href="https://hintjens.gitbooks.io/scalable-c/content/index.html">Scalable
C - Writing Large-Scale Distributed C</a></li>
<li><a
href="https://proprogramming.org/some-unknown-features-or-tricks-in-c-language/">Some
unknown features or tricks in C language</a></li>
<li><a
href="http://blog.llvm.org/2011/05/what-every-c-programmer-should-know.html">What
every C programmer should know about undefined behaviour</a></li>
</ul>
<h3 id="advanced-resources-online">Advanced resources online</h3>
<ul>
<li><a href="http://250bpm.com/blog:56">Advanced metaprogramming in
C</a></li>
<li><a href="http://danluu.com/malloc-tutorial/">A quick tutorial on
implementing and debugging malloc, free, calloc, and realloc</a></li>
<li><a href="https://graphics.stanford.edu/~seander/bithacks.html">Bit
twiddling hacks</a></li>
<li><a href="http://snaipe.me/c/c-smart-pointers/">Implementing smart
pointers for the C programming language</a></li>
<li><a href="http://www.greenend.org.uk/rjk/tech/inline.html">Inline
functions in C</a></li>
<li><a
href="https://www.chiark.greenend.org.uk/~sgtatham/mp/">Metaprogramming
custom control structures in C</a></li>
<li><a
href="https://web.archive.org/web/20170429175803/http://www.samnip.ps/thought/macro-storage-for-inverse-comma">Solving
the temporary storage problem of C macros</a></li>
<li><a
href="https://docs.google.com/presentation/d/1h49gY3TSiayLMXYmRMaAEMl05FaJ-Z6jDOWOz3EsqqQ/edit?pli=1#slide=id.gaf50702c_0153">Some
dark corners of C</a></li>
<li><a
href="https://www.codeproject.com/Articles/6154/Writing-Efficient-C-and-C-Code-Optimization">Writing
efficient C and C code optimization</a></li>
<li><a
href="https://hirrolot.github.io/posts/compiling-algebraic-data-types-in-pure-c99.html">Compiling
Algebraic Data Types in Pure C99</a></li>
</ul>
<h3 id="reference-books">Reference books</h3>
<ul>
<li><a
href="https://savedparadigms.files.wordpress.com/2014/09/harbison-s-p-steele-g-l-c-a-reference-manual-5th-ed.pdf">C:
A Reference Manual 5E</a> - Full reference book for C99.</li>
<li><a href="http://shop.oreilly.com/product/0636920033844.do">C in a
Nutshell 2E</a> - Concise reference book for C11.</li>
<li><a href="http://shop.oreilly.com/product/9780596004361.do">C Pocket
Reference</a> - Concise reference book for C99.</li>
<li><a
href="https://en.wikipedia.org/wiki/The_C_Programming_Language">The C
Programming Language 2E</a> - Original book on C, by its creators.</li>
</ul>
<h3 id="beginner-books">Beginner books</h3>
<ul>
<li><a
href="https://www.pearson.com/us/higher-education/program/Prata-C-Primer-Plus-6th-Edition/PGM4399.html">C
Primer Plus 6E</a> - Complete tutorial on programming in C11.</li>
<li><a href="http://knking.com/books/c2/index.html">C Programming: A
Modern Approach</a> - Excellent book to learn the basics of C.</li>
<li><a href="http://shop.oreilly.com/product/0636920015482.do">Head
First C</a> - Head-first style book for learning C.</li>
</ul>
<h3 id="intermediate-books">Intermediate books</h3>
<ul>
<li><a href="http://shop.oreilly.com/product/0636920033677.do">21st
Century C</a> - Good <em>second</em> programming book on C.</li>
<li><a
href="http://shop.oreilly.com/product/0636920028000.do">Understanding
and Using C Pointers</a> - In-depth resource on pointers in
<ol start="3" type="A">
<li></li>
</ol></li>
<li><a
href="http://shop.oreilly.com/product/0636920026136.do">ZeroMQ</a> -
Book for using ZeroMQ with C.</li>
</ul>
<h3 id="advanced-books">Advanced books</h3>
<ul>
<li><a href="https://dl.acm.org/citation.cfm?id=179241">Expert C
Programming: Deep C Secrets</a> - Interesting, in-depth and entertaining
look at the innards of C.</li>
<li><a href="http://savannah.nongnu.org/projects/attr/">Modern C, Third
Edition: Covers the C23 standard</a> - In Modern C, Third Edition youll
learn to harness Cs full potential using the latest tools and
techniques.</li>
</ul>
<h2 id="lexing-and-parsing">Lexing and Parsing</h2>
<p>Libraries specifically for lexical analysis (or lexing) and syntactic
analysis (or parsing).</p>
<ul>
<li><a href="https://github.com/westes/flex">flex</a> - Fast lexical
analyzer generator. <a
href="https://spdx.org/licenses/BSD-2-Clause.html"><code>BSD-2-Clause</code></a></li>
<li><a href="https://www.gnu.org/software/bison/">GNU Bison</a> -
General-purpose parser generator that converts an annotated context-free
grammar into a range of parsers. <a
href="https://spdx.org/licenses/GPL-3.0-or-later.html"><code>GPL-3.0-or-later</code></a></li>
<li><a href="https://github.com/abiggerhammer/hammer">hammer</a> -
Parser combinators for binary formats. <a
href="https://spdx.org/licenses/GPL-2.0-only.html"><code>GPL-2.0-only</code></a></li>
<li><a href="https://github.com/orangeduck/mpc">mpc</a> - Parser
combinator library. <a
href="https://spdx.org/licenses/BSD-2-Clause.html"><code>BSD-2-Clause</code></a></li>
<li><a href="https://github.com/ianh/owl">owl</a> - A parser generator
for visibly pushdown languages. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="http://re2c.org/index.html">re2c</a> - Lexer generator,
producing fast lexers, with access to its internals. Public domain.</li>
</ul>
<h2 id="memory-management">Memory Management</h2>
<p>Whether a different, faster malloc or outright garbage collection,
anything to do with managing C memory lives here.</p>
<ul>
<li><a href="https://www.hboehm.info/gc/">Boehm GC</a> - Garbage
collection for C. Various licenses, all open source.</li>
<li><a href="http://jemalloc.net">jemalloc</a> - Malloc implementation
that emphasizes avoidance of fragmentation and scalable concurrency
support. <a
href="https://spdx.org/licenses/BSD-2-Clause.html"><code>BSD-2-Clause</code></a></li>
<li><a href="https://locklessinc.com/">Lockless Memory Allocator</a> -
Efficient memory allocator. <a
href="https://spdx.org/licenses/GPL-3.0-or-later.html"><code>GPL-3.0-or-later</code></a></li>
<li><a href="https://github.com/Snaipe/libcsptr">libcsptr</a> - Smart
pointers for C. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/rampantpixels/rpmalloc">rpmalloc</a> -
Thread-caching, fast memory allocator, naturally aligned on 32-byte
boundaries. Public domain.</li>
<li><a
href="https://talloc.samba.org/talloc/doc/html/index.html">talloc</a> -
Hierarchical, reference-counted memory pool system with destructors. <a
href="https://spdx.org/licenses/LGPL-3.0-or-later.html"><code>LGPL-3.0-or-later</code></a></li>
<li><a href="http://www.gii.upv.es/tlsf/">tlsf</a> - Two-Level
Segregated Fit allocator; a general-purpose, dynamic memory allocator
designed to meet real-time requirements. <a
href="https://github.com/minad/tlsf">Up-to-date implementation</a>. <a
href="https://spdx.org/licenses/BSD-3-Clause.html"><code>BSD-3-Clause</code></a></li>
</ul>
<h2 id="multimedia">Multimedia</h2>
<ul>
<li><a href="https://github.com/aubio/aubio">aubio</a> - Library for
audio and music analysis. <a
href="https://spdx.org/licenses/GPL-3.0-or-later.html"><code>GPL-3.0-or-later</code></a></li>
<li><a href="https://www.ffmpeg.org/">FFMPEG</a> - Complete,
cross-platform solution to record, convert and stream audio and video.
<a
href="https://spdx.org/licenses/LGPL-2.1-or-later.html"><code>LGPL-2.1-or-later</code></a></li>
<li><a href="https://gstreamer.freedesktop.org/">GStreamer</a> -
Framework for audio and visual media. <a
href="https://spdx.org/licenses/LGPL-2.1-or-later.html"><code>LGPL-2.1-or-later</code></a></li>
<li><a href="https://mpv.io">libmpv</a> - Music-playing library. <a
href="https://spdx.org/licenses/GPL-2.0-or-later.html"><code>GPL-2.0-or-later</code></a></li>
<li><a href="http://www.mega-nerd.com/libsndfile/">libsndfile</a> -
Library for reading and writing sound files. Supports many formats. <a
href="https://spdx.org/licenses/LGPL-2.1-only.html"><code>LGPL-2.1-only</code></a>
or <a
href="https://spdx.org/licenses/LGPL-3.0-only.html"><code>LGPL-3.0-only</code></a></li>
<li><a href="http://libsound.io">libsoundio</a> - Library for
cross-platform, real-time audio input and output. Has a range of
back-ends. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://wiki.videolan.org/LibVLC">libVLC</a> - Complete
multimedia library for audio and video encoding, decoding, playing and
streaming. <a
href="https://spdx.org/licenses/GPL-2.0-only.html"><code>GPL-2.0-only</code></a></li>
<li><a href="https://lodev.org/lodepng/">lodepng</a> - Simple PNG image
decoder and encoder, requiring no other dependencies. <a
href="https://spdx.org/licenses/BSD-3-Clause.html"><code>BSD-3-Clause</code></a></li>
<li><a href="https://github.com/lieff/minimp3">minimp3</a> - Lightweight
MP3 decoder single header library. <a
href="https://spdx.org/licenses/CC0-1.0.html"><code>CC0-1.0</code></a></li>
<li><a
href="http://paulbatchelor.github.io/proj/soundpipe.html">Soundpipe</a>
- Lightweight music DSP library. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
</ul>
<h2 id="networking-and-internet">Networking and Internet</h2>
<p>Low-level networking and internet-related stuff. If you want
something more comprehensive and high-level, you may want the Web
Frameworks section.</p>
<ul>
<li><a href="http://lionet.info/asn1c/compiler.html">asnlc</a> -
Compiler of ASN.1 specifications into C source code. <a
href="https://spdx.org/licenses/BSD-2-Clause.html"><code>BSD-2-Clause</code></a></li>
<li><a href="https://github.com/it4e/CHL">CHL</a> - C Hypertext Library
- A library for writing web applications in C. <a
href="https://spdx.org/licenses/GPL-3.0-only.html"><code>GPL-3.0-only</code></a></li>
<li><a href="http://czmq.zeromq.org">czmq</a> - High-level binding for
ZeroMQ. <a
href="https://spdx.org/licenses/MPL-2.0.html"><code>MPL-2.0</code></a></li>
<li><a href="https://github.com/rxi/dyad">Dyad.c</a> - Lightweight,
easy, asynchronous networking library. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://www.gnu.org/software/adns/">GNU adns</a> -
Advanced, easy-to-use, asynch-capable DNS client library and utilities.
<a
href="https://spdx.org/licenses/GPL-3.0-or-later.html"><code>GPL-3.0-or-later</code></a></li>
<li><a href="https://github.com/google/gumbo-parser">gumbo-parser</a> -
HTML5 parsing library in C99. <a
href="https://spdx.org/licenses/Apache-2.0.html"><code>Apache-2.0</code></a></li>
<li><a href="https://h2o.examp1e.net/">H20</a> - A new-generation HTTP
server. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://llhttp.org">llhttp</a> - HTTP request/response
parser. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="http://www.nlnetlabs.nl/projects/ldns/index.html">ldns</a>
- Library to simplify DNS programming. <a
href="https://spdx.org/licenses/BSD-3-Clause.html"><code>BSD-3-Clause</code></a></li>
<li><a href="https://curl.haxx.se/libcurl/">libcurl</a> - Client-side
URL transfer library, supporting a wide range of formats. <a
href="https://spdx.org/licenses/curl.html"><code>curl</code></a></li>
<li><a href="http://www.etpan.org">LibEtPan</a> - Mail library providing
an efficient network for IMAP, SMTP, POP and NNTP. <a
href="https://spdx.org/licenses/BSD-3-Clause.html"><code>BSD-3-Clause</code></a></li>
<li><a href="http://software.schmorp.de/pkg/libev.html">libev</a> - Yet
another event loop. <a
href="https://spdx.org/licenses/BSD-2-Clause.html"><code>BSD-2-Clause</code></a></li>
<li><a href="http://libevent.org/">libevent</a> - Event loop replacement
for network servers. <a
href="https://spdx.org/licenses/BSD-3-Clause.html"><code>BSD-3-Clause</code></a></li>
<li><a href="https://www.hughes.com.au/products/libhttpd/">libhttpd</a>
- Library to add basic web server capabilities to an application or
embedded device. <a
href="https://spdx.org/licenses/GPL-2.0-only.html"><code>GPL-2.0-only</code></a></li>
<li><a href="https://github.com/ithewei/libhv">libhv</a> - Cross
platform event loop library. <a
href="https://spdx.org/licenses/BSD-3-Clause.html"><code>BSD-3-Clause</code></a></li>
<li><a href="https://gnu.org/software/libidn/">libidn</a> -
Implementation of the Stringprep, Punycode and IDNA specifications. <a
href="https://spdx.org/licenses/GPL-3.0-or-later.html"><code>GPL-3.0-or-later</code></a></li>
<li><a href="https://gnu.org/software/libmicrohttpd/">libmicrohttpd</a>
- Small library that makes it easy to run an HTTP server as part of
another application. <a
href="https://spdx.org/licenses/LGPL-2.1-or-later.html"><code>LGPL-2.1-or-later</code></a></li>
<li><a href="https://www.infradead.org/~tgr/libnl/">libnl</a> -
<code>libnl</code> is a collection of libraries to provie APIs to the
Netlink protocol (replacement for ioctl). Its primary use is to
communicate with the Linux kernel, to modify networking state
(interfaces, routing etc…). <a
href="https://spdx.org/licenses/LGPL-2.1-only.html"><code>LGPL-2.1-only</code></a></li>
<li><a href="https://www.coralbits.com/libonion/">libonion</a> - HTTP
server library, designed to be easy to use. <a
href="https://spdx.org/licenses/Apache-2.0.html"><code>Apache-2.0</code></a></li>
<li><a href="https://github.com/the-tcpdump-group/libpcap">libpcap</a> -
API provides to various kernel packet capture mechanism. <a
href="https://spdx.org/licenses/BSD-3-Clause.html"><code>BSD-3-Clause</code></a></li>
<li><a
href="http://sourceforge.net/projects/libquickmail/">libquickmail</a> -
Library intended to give developers a way to send email from their
applications. Supports multiple To/Cc/Bcc recipients and attachments
without size limits. <a
href="https://spdx.org/licenses/GPL-3.0-or-later.html"><code>GPL-3.0-or-later</code></a></li>
<li><a href="https://risoflora.github.io/libsagui/">libsagui</a> -
Library for cross-platform HTTP servers. <a
href="https://spdx.org/licenses/LGPL-3.0-or-later.html"><code>LGPL-3.0-or-later</code></a></li>
<li><a href="https://github.com/zhaojh329/libuhttpd">libuhttpd</a> - A
very flexible, lightweight and fully asynchronous HTTP server library
based on libev and http-parser for Embedded Linux. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/LibVNC/libvncserver">LibVNCServer</a> -
Cross-platform libraries to implement VNC server and/or client
functionality. <a
href="https://spdx.org/licenses/GPL-2.0-or-later.html"><code>GPL-2.0-or-later</code></a></li>
<li><a
href="https://github.com/JonnyWhatshisface/libwebsock">libwebsock</a> -
Easy-to-use and powerful web socket library. <a
href="https://spdx.org/licenses/LGPL-3.0-only.html"><code>LGPL-3.0-only</code></a></li>
<li><a href="https://github.com/zeromq/libzmq">libzmq</a> - Core ZeroMQ
library, a high-performance asynchronous messaging library, aimed at use
in distributed or concurrent applications. C API (backend C++) <a
href="https://spdx.org/licenses/GPL-3.0-or-later.html"><code>GPL-3.0-or-later</code></a>
with static linking exception</li>
<li><a href="https://lwan.ws">lwan</a> - Experimental, scalable,
high-performance HTTP server. <a
href="https://spdx.org/licenses/GPL-2.0-only.html"><code>GPL-2.0-only</code></a></li>
<li><a href="https://cesanta.com">mongoose</a> - Embedded web server. <a
href="https://spdx.org/licenses/GPL-2.0-only.html"><code>GPL-2.0-only</code></a></li>
<li><a href="https://github.com/LiamBindle/MQTT-C">MQTT-C</a> - A
portable MQTT C client for embedded systems and PCs alike. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/nanomsg/nanomsg">nanomsg</a> - C-based
implementation of ZeroMQ. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://nanomsg.github.io/nng/">NNG</a> -
nanomsg-next-generation - lightweight brokerless messaging. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://gnu.org/software/osip/">oSip</a> - SIP
implementation without additional dependencies. <a
href="https://spdx.org/licenses/LGPL-2.1-or-later.html"><code>LGPL-2.1-or-later</code></a></li>
<li><a href="https://github.com/silgy/silgy">silgy</a> - Asynchronous
HTTP(S) engine for C/C++ projects. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/silentbicycle/socket99">socket99</a> -
C99 wrapper for the BSD sockets API. <a
href="https://spdx.org/licenses/ISC.html"><code>ISC</code></a></li>
<li><a href="https://github.com/sinemetu1/twitc">twitc</a> - Mini
library for interacting with the Twitter OAuth API. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://uriparser.github.io">uriparser</a> - Strictly RFC
3986-compliant URI parsing and handling library. <a
href="https://spdx.org/licenses/BSD-3-Clause.html"><code>BSD-3-Clause</code></a></li>
<li><a href="https://tatsuhiro-t.github.io/wslay/">Wslay</a> - WebSocket
library. Implements version 13 of the WebSocket protocol, as described
in RFC 6455. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/zeromq/zyre">zyre</a> - Framework for
proximity-based peer-to-peer applications. <a
href="https://spdx.org/licenses/MPL-2.0.html"><code>MPL-2.0</code></a></li>
</ul>
<h2 id="numerical">Numerical</h2>
<ul>
<li><a href="http://apophenia.info">apophenia</a> - Library for
statistical and scientific computing. <a
href="https://spdx.org/licenses/GPL-2.0-only.html"><code>GPL-2.0-only</code></a></li>
<li><a href="https://github.com/fredrik-johansson/arb">Arb</a> - Library
for arbitrary-precision interval arithmetic. <a
href="https://spdx.org/licenses/LGPL-2.1-or-later.html"><code>LGPL-2.1-or-later</code></a></li>
<li><a href="http://math-atlas.sourceforge.net/">ATLAS</a> -
Automatically Tuned Linear Algebra Software. <a
href="https://spdx.org/licenses/BSD-3-Clause.html"><code>BSD-3-Clause</code></a></li>
<li><a href="https://github.com/clMathLibraries/clBLAS">clBLAS</a> -
BLAS functions written in OpenCL. <a
href="https://spdx.org/licenses/Apache-2.0.html"><code>Apache-2.0</code></a></li>
<li><a href="https://scientificc.github.io/cmathl/">cmathl</a> - Math
library with a great variety of mathematical functions with CMake build
support. Seeks to be close to C89/C90 compliant for portability. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="http://www.feynarts.de/cuba/">Cuba</a> - Library for
multidimensional numerical integration. <a
href="https://spdx.org/licenses/LGPL-3.0-only.html"><code>LGPL-3.0-only</code></a></li>
<li><a href="https://github.com/adis300/fft-c">fft-c</a> - A
high-performance Fourier Transform from netlibs fftpack; wrapped in a
user-friendly format <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="http://www.fftw.org/">FFTW</a> - The Fastest Fourier
Transform in the West; a highly optimized fast Fourier transform
routine. <a
href="https://spdx.org/licenses/GPL-2.0-or-later.html"><code>GPL-2.0-or-later</code></a></li>
<li><a href="http://flintlib.org/">FLINT</a> - Fast Library for Number
Theory; a library supporting arithmetic with numbers, polynomials, power
series and matrices, among others. <a
href="https://spdx.org/licenses/GPL-2.0-or-later.html"><code>GPL-2.0-or-later</code></a></li>
<li><a href="https://gnu.org/software/glpk/">GLPK</a> - GNU Linear
Programming Kit; a package designed for solving large-scale linear
programming, mixed integer programming and other related problems. <a
href="https://spdx.org/licenses/GPL-3.0-or-later.html"><code>GPL-3.0-or-later</code></a></li>
<li><a href="https://gmplib.org/">GMP</a> - GNU Multple Precision
Arithmetic Library; a library for arbitrary-precision arithmetic. <a
href="https://spdx.org/licenses/GPL-2.0-only.html"><code>GPL-2.0-only</code></a>
or <a
href="https://spdx.org/licenses/LGPL-3.0-only.html"><code>LGPL-3.0-only</code></a></li>
<li><a href="http://www.multiprecision.org/mpc/">GNU MPC</a> - Library
for complex number arithmetic. <a
href="https://spdx.org/licenses/LGPL-3.0-or-later.html"><code>LGPL-3.0-or-later</code></a></li>
<li><a href="http://mpfr.loria.fr/index.html">GNU MPFR</a> - Library for
arbitrary-precision floating-point arithmetic. <a
href="https://spdx.org/licenses/LGPL-3.0-or-later.html"><code>LGPL-3.0-or-later</code></a></li>
<li><a href="https://gnu.org/software/mpria/">GNU MPRIA</a> - Portable
mathematics library for multi-precision rational interval arithmetic. <a
href="https://spdx.org/licenses/GPL-3.0-or-later.html"><code>GPL-3.0-or-later</code></a></li>
<li><a href="https://www.gnu.org/software/gsl/">GSL</a> - The GNU
Scientific Library; a sophisticated numerical library. <a
href="https://spdx.org/licenses/GPL-3.0-only.html"><code>GPL-3.0-only</code></a>.</li>
<li><a href="https://sourceforge.net/projects/kissfft/">KISS FFT</a> -
Simple fast Fourier transform library. <a
href="https://spdx.org/licenses/BSD-3-Clause.html"><code>BSD-3-Clause</code></a></li>
<li><a href="http://www.netlib.org/lapack/lapacke.html">LAPACKE</a> -
Interface to <a href="http://www.netlib.org/lapack/">LAPACK</a>. <a
href="https://spdx.org/licenses/BSD-3-Clause.html"><code>BSD-3-Clause</code></a></li>
<li><a href="http://www.libtom.net/LibTomMath/">LibTomMath</a> -
Portable, number-theoretic, multiple-precision integer library. Supports
algebra, digit manipulation, modular reductions, and various
number-theoretic routines. Public domain.</li>
<li><a href="http://www.libtom.net/LibTomPoly/">LibTomPoly</a> -
Polynomial-related maths library. Public domain.</li>
<li><a href="http://pari.math.u-bordeaux.fr/">PARI/GP</a> - Computer
algebra system for number theory; includes a compiler to C. <a
href="https://spdx.org/licenses/GPL-2.0-or-later.html"><code>GPL-2.0-or-later</code></a></li>
<li><a href="http://www.mcs.anl.gov/petsc/">PETSc</a> - Suite of data
structures and routines for scalable parallel solution of scientific
applications modelled by partial differential equations. <a
href="https://spdx.org/licenses/BSD-2-Clause.html"><code>BSD-2-Clause</code></a></li>
<li><a href="https://github.com/cvxgrp/scs">SCS</a> - Splitting Conic
Solver; a numerical optimization package for solving large-scale convex
cone problems. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="http://slepc.upv.es/">SLEPc</a> - Library for the solution
of large, sparse eigenvalue problems on parallel computers. <a
href="https://spdx.org/licenses/LGPL-3.0-only.html"><code>LGPL-3.0-only</code></a></li>
<li><a href="http://www.libtom.net/TomsFastMath/">TomsFastMath</a> - Set
of optimized maths operations (in assembly), suitable for cryptographic
use. Public domain.</li>
<li><a href="https://bitbucket.org/MDukhan/yeppp">Yeppp!</a> - Fast,
SIMD-optimized mathematical library. <a
href="https://spdx.org/licenses/BSD-3-Clause.html"><code>BSD-3-Clause</code></a></li>
</ul>
<h2 id="profiling">Profiling</h2>
<ul>
<li><a href="https://github.com/gperftools/gperftools">gperftools</a> -
Collection of utilities for measuring and improving performance. <a
href="https://spdx.org/licenses/BSD-3-Clause.html"><code>BSD-3-Clause</code></a></li>
<li><a href="https://www.gnu.org/software/binutils/">gprof</a> -
Performance analysis tool. Part of GNU binutils. <a
href="https://spdx.org/licenses/GPL-3.0-or-later.html"><code>GPL-3.0-or-later</code></a></li>
<li><a href="http://oprofile.sourceforge.net/news/">OProfile</a> -
Statistical profiler for Linux. Can profile any code (including the
kernel!) with low overhead and without recompilation. <a
href="https://spdx.org/licenses/GPL-2.0-only.html"><code>GPL-2.0-only</code></a></li>
<li><a href="https://perf.wiki.kernel.org/index.php/Main_Page">perf</a>
- Linux kernel-based profiler with a lot of functionality. <a
href="https://spdx.org/licenses/GPL-2.0-only.html"><code>GPL-2.0-only</code></a></li>
</ul>
<h2 id="pdf">PDF</h2>
<ul>
<li><a href="https://github.com/michaelrsweet/pdfio">pdfio</a> - PDFio
is a simple C library for reading and writing PDF files.<a
href="https://spdx.org/licenses/Apache-2.0.html"><code>Apache-2.0</code></a></li>
</ul>
<h2 id="regex">Regex</h2>
<ul>
<li><a href="https://github.com/k-takata/Onigmo">Onigmo</a> - Fork of
Oniguruma, supporting more advanced regexps. <a
href="https://spdx.org/licenses/BSD-2-Clause.html"><code>BSD-2-Clause</code></a></li>
<li><a href="https://github.com/kkos/oniguruma">Oniguruma</a> - Regex
library supporting a wide range of encodings, and incorporating many
security-oriented fixes. <a
href="https://spdx.org/licenses/BSD-2-Clause.html"><code>BSD-2-Clause</code></a></li>
<li><a href="http://www.pcre.org/">PCRE</a> - Implementation of regexes
identical to that of Perl 5. <a
href="https://spdx.org/licenses/BSD-3-Clause.html"><code>BSD-3-Clause</code></a></li>
<li><a href="https://github.com/cesanta/slre">SLRE</a> - Super Light
Regular Expression library; a small implementation of a subset of Perl
regex syntax. <a
href="https://spdx.org/licenses/GPL-2.0-only.html"><code>GPL-2.0-only</code></a></li>
<li><a href="https://github.com/laurikari/tre/">TRE</a> -
POSIX-compliant, feature-full regex library. <a
href="https://spdx.org/licenses/BSD-2-Clause.html"><code>BSD-2-Clause</code></a></li>
</ul>
<h2 id="serialization">Serialization</h2>
<ul>
<li><a href="https://github.com/liteserver/binn">binn</a> - Binary
serialization format, meant to be compact, fast and easy-to-use. <a
href="https://spdx.org/licenses/Apache-2.0.html"><code>Apache-2.0</code></a></li>
<li><a href="https://github.com/jmckaskill/c-capnproto">c-capnproto</a>
- Implementation of the Capn Proto serialization protocol. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/camgunz/cmp">cmp</a> - Implementation of
the <a href="https://msgpack.org/">MessagePack</a> serialization
protocol. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/dvidelabs/flatcc">flatcc</a> - <a
href="https://google.github.io/flatbuffers/">FlatBuffers</a> compiler
and library. <a
href="https://spdx.org/licenses/Apache-2.0.html"><code>Apache-2.0</code></a></li>
<li><a
href="http://avro.apache.org/docs/current/api/c/index.html#_introduction_to_avro_c">libavro</a>
- Implementation of the Avro data serialization system. <a
href="https://spdx.org/licenses/Apache-2.0.html"><code>Apache-2.0</code></a></li>
<li><a href="https://github.com/ludocode/mpack">mpack</a> - Another
implementation of the <a href="https://msgpack.org/">MessagePack</a>
serialization protocol. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="http://opic.rocks/">OPIC</a> - Object Persistence in C; a
revolutionary serialization framework, with matching on-disk and
in-memory representations. <a
href="https://spdx.org/licenses/GPL-3.0-or-later.html"><code>GPL-3.0-or-later</code></a></li>
<li><a href="https://github.com/protobuf-c/protobuf-c">protobuf-c</a> -
Implementation of Google Protocol Buffer. <a
href="https://spdx.org/licenses/BSD-2-Clause.html"><code>BSD-2-Clause</code></a></li>
<li><a href="https://github.com/troydhanson/tpl">tpl</a> - Small binary
serialization library. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a
href="https://en.wikipedia.org/wiki/External_Data_Representation">xdr</a>
- External Data Representation; a standard for data serialization.
Standard (no license applicable).</li>
<li><a href="https://github.com/eerimoq/pbtools">pbtools</a> - Google
Protocol Buffers C source code generator. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
</ul>
<h2 id="source-code-collections">Source Code Collections</h2>
<p>Collections of small source code. If you want something big and
integrated, check the Frameworks section.</p>
<ul>
<li><a href="http://ccodearchive.net/">CCAN</a> - Modelled after Perls
CPAN, this is a big collection of code that does stuff. The full list is
<a href="http://ccodearchive.net/list.html">here</a>. Various licenses,
all open source.</li>
<li><a href="https://github.com/clibs/clib">clib</a> - Something of a
package manager. Comes with a <a
href="https://github.com/clibs/clib/wiki/Packages">bunch of libraries of
its own</a>. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://www.gnu.org/software/gnulib/">gnulib</a> -
Collection of common GNU code. Various licenses, all open source.</li>
<li><a href="http://www.fefe.de/djb/">libdjb</a> - Collection of
libraries doing various things. (Apparently) public domain.</li>
<li><a href="https://github.com/vurtun/mmx">mmx</a> - Collection of
single-header libraries. Various licenses, all open source.</li>
<li><a href="https://github.com/prideout/par">par</a> - Bunch of
single-file libraries. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/DanielGibson/Snippets/">Snippets</a> -
Useful code snippets and header-only libraries. Public domain.</li>
<li><a href="https://github.com/nothings/stb">stb</a> - Range of
single-file libraries. Public domain.</li>
<li><a href="https://github.com/RandyGaul/tinyheaders">tinyheaders</a> -
Collection of header-only libraries, primarily oriented toward game
development. <a
href="https://spdx.org/licenses/Zlib.html"><code>Zlib</code></a></li>
<li><a href="https://github.com/zpl-c/zpl">zpl</a> - C99 cross-platform
header-only library with many goodies. [<code>BSD-3-Clause</code>,
<code>Unlicense</code>][BSD-3-Clause, Unlicense]</li>
</ul>
<h2 id="standard-libraries">Standard Libraries</h2>
<p>Implementations of the (standard-mandated) C standard library.</p>
<ul>
<li><a href="https://github.com/aosp-mirror/platform_bionic">Bionic</a>
- Googles standard library, developed for Android. <a
href="https://spdx.org/licenses/BSD-3-Clause.html"><code>BSD-3-Clause</code></a></li>
<li><a href="https://github.com/NuxiNL/cloudlibc">cloudlibc</a> -
Standard library based on the concept of <a
href="https://en.wikipedia.org/wiki/Capability-based_security">capability-based
security</a>. <a
href="https://spdx.org/licenses/BSD-2-Clause.html"><code>BSD-2-Clause</code></a></li>
<li><a href="https://www.fefe.de/dietlibc/">dietlibc</a> - Standard
library designed for the smallest possible binaries. <a
href="https://spdx.org/licenses/GPL-2.0-only.html"><code>GPL-2.0-only</code></a></li>
<li><a href="https://www.gnu.org/software/libc/">glibc</a> - The GNU C
Library; an implementation of the standard library. <a
href="https://spdx.org/licenses/LGPL-2.1-only.html"><code>LGPL-2.1-only</code></a>.</li>
<li><a href="https://musl.libc.org/">musl</a> - Standard library,
compatible with POSIX 2008 and C11. Designed for static linking. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="http://pdclib.e43.eu/">PDCLib</a> - The Public Domain C
Library. Implements most of C99 and some of C11. <a
href="https://spdx.org/licenses/CC0-1.0.html"><code>CC0-1.0</code></a></li>
<li><a href="https://uclibc-ng.org/">uClibc-ng</a> - Small C library for
developing embedded systems. <a
href="https://spdx.org/licenses/LGPL-2.1-or-later.html"><code>LGPL-2.1-or-later</code></a></li>
</ul>
<h3 id="template-libraries">Template libraries</h3>
<ul>
<li><a href="https://github.com/rurban/ctl">CTL</a> - C CONTAINER
TEMPLATE LIBRARY (CTL) <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
</ul>
<h2 id="string-manipulation">String Manipulation</h2>
<ul>
<li><a href="http://mike.steinert.ca/bstring/">bstring</a> - The Better
String Library. <a
href="https://spdx.org/licenses/BSD-3-Clause.html"><code>BSD-3-Clause</code></a></li>
<li><a href="http://site.icu-project.org/">ICU</a> - International
Components for Unicode; a library for Unicode support. <a
href="https://spdx.org/licenses/ICU.html"><code>ICU</code></a></li>
<li><a href="https://github.com/wooorm/levenshtein.c">levenstein.c</a> -
<a href="https://en.wikipedia.org/wiki/Levenshtein_distance">Levenstein
distance</a> algorithm implementation. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a>.</li>
<li><a href="https://gnu.org/software/libunistring/">libunistring</a> -
Library for manipulating Unicode strings. <a
href="https://spdx.org/licenses/LGPL-3.0-only.html"><code>LGPL-3.0-only</code></a></li>
<li><a href="https://gnu.org/software/libiconv/">libgiconv</a> - Text
conversion library. <a
href="https://spdx.org/licenses/LGPL-2.1-only.html"><code>LGPL-2.1-only</code></a></li>
<li><a href="https://github.com/josephg/librope">librope</a> - UTF-8
rope (heavy string) library. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/antirez/sds">SDS</a> - Simple Dynamic
Strings; a library for handling strings in a simpler way, but one that
is compatible with normal C string functions. Available via <a
href="https://github.com/clibs/clib">clib</a>. <a
href="https://spdx.org/licenses/BSD-2-Clause.html"><code>BSD-2-Clause</code></a></li>
<li><a href="https://github.com/wooorm/stmr.c">stmr.c</a> - <a
href="http://tartarus.org/martin/PorterStemmer/">Porter Stemmer</a>
algorithm implementation. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/maxim2266/str">str</a> - Yet another
string library for C language. <a
href="https://spdx.org/licenses/BSD-3-Clause.html"><code>BSD-3-Clause</code></a></li>
<li><a
href="https://github.com/ashvardanian/StringZilla">StringZilla</a> - Up
to 10x faster SIMD and SWAR-accelerated string search, sort, hashes,
edit distances, alignments, and generators. <a
href="https://spdx.org/licenses/Apache-2.0.html"><code>Apache-2.0</code></a></li>
<li><a href="https://github.com/sheredom/utf8.h">utf8.h</a> -
Single-header UTF-8 library, designed to mimic C-style string functions.
Public domain.</li>
<li><a href="https://github.com/JuliaLang/utf8proc">utf8proc</a> -
Library for processing UTF-8 data. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
</ul>
<h2 id="structured-file-processing">Structured File Processing</h2>
<p>This includes libraries for things like XML, JSON, CSV, and other
similar formats.</p>
<h3 id="csv">CSV</h3>
<ul>
<li><a href="https://github.com/rgamble/libcsv">libcsv</a> - Simple,
streaming CSV parser. <a
href="https://spdx.org/licenses/LGPL-2.1-or-later.html"><code>LGPL-2.1-or-later</code></a></li>
</ul>
<h3 id="json">JSON</h3>
<ul>
<li><a href="http://www.digip.org/jansson/">Jansson</a> - Library for
encoding, decoding and manipulating JSON. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/NeonMercury/jfes">jfes</a> - JSON For
Embedded Systems; simple JSON engine without any dependencies. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://zserge.com/jsmn.html">jsmn</a> - Minimalistic JSON
parser. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/recp/json">json</a> - Simple,
low-memory-use JSON parser. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/json-c/json-c">json-c</a> - Easily work
with JSON in C. Comes with a reference-counted object model, and aims
for conformance with <a href="https://tools.ietf.org/html/rfc7159">RFC
7159</a>. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/sheredom/json.h">json.h</a> -
Single-file non-streaming JSON parser. <a
href="https://spdx.org/licenses/Unlicense.html"><code>Unlicense</code></a></li>
<li><a href="https://github.com/kgabis/parson">parson</a> - Two-file,
C89-compatible JSON parser. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/netmail-open/wjelement/">WJElement</a> -
Advanced JSON manipulation library, with support for JSON Schema. <a
href="https://spdx.org/licenses/LGPL-2.0-or-later.html"><code>LGPL-2.0-or-later</code></a>
or <a
href="https://spdx.org/licenses/LGPL-2.1-or-later.html"><code>LGPL-2.1-or-later</code></a>
or <a
href="https://spdx.org/licenses/LGPL-3.0-or-later.html"><code>LGPL-3.0-or-later</code></a></li>
<li><a href="https://lloyd.github.io/yajl/">YAJL</a> - Fast streaming
JSON parser library. <a
href="https://spdx.org/licenses/ISC.html"><code>ISC</code></a></li>
</ul>
<h3 id="ini">INI</h3>
<ul>
<li><a href="https://github.com/benhoyt/inih">inih</a> - Small and
simple INI file parser, good for embedded systems. <a
href="https://spdx.org/licenses/BSD-3-Clause.html"><code>BSD-3-Clause</code></a></li>
<li><a href="https://github.com/ndevilla/iniparser">iniparser</a> -
Parser for .ini files. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a
href="https://madmurphy.github.io/libconfini/html/index.html">libconfini</a>
- Yet another INI parser. <a
href="https://spdx.org/licenses/GPL-3.0-only.html"><code>GPL-3.0-only</code></a></li>
<li><a href="https://github.com/compuphase/minIni">minIni</a> - Small
and portable INI parser. <a
href="https://spdx.org/licenses/Apache-2.0.html"><code>Apache-2.0</code></a></li>
</ul>
<h3 id="others">Others</h3>
<ul>
<li><a href="https://github.com/mongodb/libbson">libbson</a> - BSON
utility library. <a
href="https://spdx.org/licenses/Apache-2.0.html"><code>Apache-2.0</code></a></li>
<li><a href="https://github.com/PJK/libcbor">libcbor</a>: CBOR protocol
implementation for C and others. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/martinh/libconfuse">libconfuse</a> -
Small configuration file parser library. <a
href="https://spdx.org/licenses/ISC.html"><code>ISC</code></a></li>
<li><a href="https://github.com/0intro/libelf">libelf</a> - Simple
library for parsing ELF files. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/vstakhov/libucl">libucl</a> - Universal
configuration library parser. <a
href="https://spdx.org/licenses/BSD-2-Clause.html"><code>BSD-2-Clause</code></a></li>
<li><a href="https://github.com/Juniper/libxo">libxo</a> - 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. <a
href="https://spdx.org/licenses/BSD-2-Clause.html"><code>BSD-2-Clause</code></a></li>
</ul>
<h3 id="xml">XML</h3>
<ul>
<li><a href="http://expat.sourceforge.net/">Expat</a> - Stream-oriented
XML parser. <a href="https://spdx.org/licenses/MIT.html">MIT</a></li>
<li><a href="http://xmlsoft.org/">libxml2</a> - Standards-compliant,
portable XML parser. <a
href="https://spdx.org/licenses/MIT.html">MIT</a></li>
<li><a href="https://github.com/recp/xml">xml</a> - Simple,
low-memory-use XML parser / tokenizer. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
</ul>
<h3 id="yaml">YAML</h3>
<ul>
<li><a href="https://www.pyyaml.org/wiki/LibYAML">libYAML</a> - YAML 1.1
parser and emitter. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
</ul>
<h2 id="signal-processing">Signal Processing</h2>
<ul>
<li><a href="https://sigrok.org/wiki/Libsigrok">libsigrok</a> - signal
analysis software suite that supports various device types (such as
logic analyzers, oscilloscopes, multimeters, and more).
[<code>GPL</code>][GPL]</li>
</ul>
<h2 id="testing">Testing</h2>
<ul>
<li><a href="https://github.com/Tuplanolla/cheat">CHEAT</a> - Simple
unit testing framework. <a
href="https://spdx.org/licenses/BSD-2-Clause.html"><code>BSD-2-Clause</code></a></li>
<li><a href="https://libcheck.github.io/check">Check</a> - Unit testing
framework. <a
href="https://spdx.org/licenses/LGPL-2.1-only.html"><code>LGPL-2.1-only</code></a></li>
<li><a href="https://github.com/yhfudev/cpp-ci-unit-test.git">ciut</a> -
A modern minimal hassle unit test framework. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/vmg/clar">clar</a> - Clear and simple
unit testing framework. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="http://www.throwtheswitch.org/cmock">CMock</a> - Mock/stub
generator. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://cmocka.org/">cmocka</a> - Unit testing framework
with support for mock objects. <a
href="https://spdx.org/licenses/Apache-2.0.html"><code>Apache-2.0</code></a></li>
<li><a href="https://criterion.readthedocs.io/en/master">Criterion</a> -
KISS, non-intrusive test framework. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/bvdberg/ctest">ctest</a> - Yet another
unit testing framework. <a
href="https://spdx.org/licenses/Apache-2.0.html"><code>Apache-2.0</code></a></li>
<li><a href="http://cunit.sourceforge.net/">CUnit</a> - Another unit
testing framework. <a
href="https://spdx.org/licenses/LGPL-2.1-or-later.html"><code>LGPL-2.1-or-later</code></a></li>
<li><a href="https://github.com/silentbicycle/greatest">greatest</a> -
Unit testing library in one file, with no memory allocation. <a
href="https://spdx.org/licenses/ISC.html"><code>ISC</code></a></li>
<li><a href="https://github.com/codeplea/minctest">minctest</a> - Unit
testing microlibrary. <a
href="https://spdx.org/licenses/BSD-3-Clause.html"><code>BSD-3-Clause</code></a></li>
<li><a href="https://nemequ.github.io/munit">munit</a> - Small unit
testing framework. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/eerimoq/nala">Nala</a> - A test
framework for C projects. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/christophercrouzet/rexo">Rexo</a> -
Framework for C89/C++ featuring automatic registration of tests and a
polished API. <a
href="https://spdx.org/licenses/Unlicense.html"><code>Unlicense</code></a></li>
<li><a href="https://github.com/jasmcaus/tau">Tau</a> - 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. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/silentbicycle/theft">theft</a> -
Property-based testing (similar to <a
href="https://wiki.haskell.org/Introduction_to_QuickCheck2">Quickcheck</a>).
<a href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="http://www.throwtheswitch.org/unity">Unity</a> - Simple
unit testing framework. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/evolutional/utest">utest</a> -
Single-header unit testing library. <a
href="https://spdx.org/licenses/Unlicense.html"><code>Unlicense</code></a></li>
</ul>
<h2 id="text-editor-extensions">Text Editor Extensions</h2>
<p>While practically any decent programmers text editor supports C,
there are some extensions that make it more pleasant. These are labelled
by editor.</p>
<ul>
<li><a
href="http://freeweb.siol.net/rmihor/NppCCompletionPlugin.zip">CCompletion</a>
- Notepad++ autocompletion plugin. Works with all identifiers recognized
by Ctags. This is a download link. <a
href="https://spdx.org/licenses/GPL-2.0-or-later.html"><code>GPL-2.0-or-later</code></a></li>
<li><a href="http://cedet.sourceforge.net/">CEDET</a> - Collection of
Emacs Development Environment Tools; designed to provide IDE-like
features to Emacs. Built-in. <a
href="https://spdx.org/licenses/GPL-3.0-or-later.html"><code>GPL-3.0-or-later</code></a></li>
<li><a href="https://github.com/flycheck/flycheck">Flycheck</a> - Modern
syntax checking for Emacs. For C, it can use either GCC or Clang as a
back-end. <a
href="https://spdx.org/licenses/GPL-3.0-or-later.html"><code>GPL-3.0-or-later</code></a></li>
<li><a href="https://github.com/neomake/neomake">Neomake</a> - Async
:make and linting framework for Neovim/Vim. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/vim-syntastic/syntastic">Syntastic</a> -
Syntax checking and linting for Vim. <a
href="https://spdx.org/licenses/WTFPL.html"><code>WTFPL</code></a></li>
<li><a href="http://joaotavora.github.io/yasnippet/">YASnippet</a> -
Emacs code template system, with C templates for common snippets. <a
href="https://spdx.org/licenses/GPL-3.0-or-later.html"><code>GPL-3.0-or-later</code></a></li>
<li><a
href="https://github.com/ycm-core/YouCompleteMe">YouCompleteMe</a> -
Code completion engine for Vim. <a
href="https://spdx.org/licenses/GPL-3.0-only.html"><code>GPL-3.0-only</code></a></li>
</ul>
<h2 id="tools">Tools</h2>
<p>Useful programs to help you write and debug C code which are
<em>not</em> editors, libraries or compilers.</p>
<ul>
<li><a href="http://astyle.sourceforge.net/">Artistic Style</a> - Fast
and small automatic source code formatter that supports C. <a
href="https://spdx.org/licenses/LGPL-3.0-only.html"><code>LGPL-3.0-only</code></a></li>
<li><a href="https://github.com/google/sanitizers">address-sanitizer</a>
- Fast memory error detector. <a
href="https://spdx.org/licenses/Apache-2.0.html"><code>Apache-2.0</code></a></li>
<li><a href="https://projects.malikania.fr/bcc">bcc</a> - A byte array
generator to import binary files directy from C in the spirit of xxd. <a
href="https://spdx.org/licenses/ISC.html"><code>ISC</code></a></li>
<li><a href="https://github.com/ryanmjacobs/c">c</a> - Compile and
execute C “scripts” in one go on the command line. Also has shebang
support. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/RhysU/c99sh">c99sh</a> - Run C files
using hash-bang. <a
href="https://spdx.org/licenses/BSD-2-Clause.html"><code>BSD-2-Clause</code></a></li>
<li><a href="https://cdecl.org/">cdecl</a> - Online service to translate
C declarations into English and vice versa. Public domain.</li>
<li><a href="https://www.flourish.org/cinclude2dot/">cinclude2dot</a> -
Graphs include dependencies in a project using Graphviz. <a
href="https://spdx.org/licenses/GPL-1.0.html">GPL-1.0-or-later</a> or <a
href="https://spdx.org/licenses/GPL-2.0-or-later.html"><code>GPL-2.0-or-later</code></a>
or <a
href="https://spdx.org/licenses/GPL-3.0-or-later.html"><code>GPL-3.0-or-later</code></a></li>
<li><a href="https://clang.llvm.org/docs/ClangCheck.html">ClangCheck</a>
- Static analysis tool, designed to work with Clang. <a
href="https://spdx.org/licenses/NCSA.html"><code>NCSA</code></a></li>
<li><a href="https://conan.io/">conan.io</a> - Something of a package
manager for C. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a>.</li>
<li><a href="http://cppcheck.sourceforge.net/">Cppcheck</a> - Static
analysis tool. Despite the name, works well with C. <a
href="https://spdx.org/licenses/GPL-3.0-or-later.html"><code>GPL-3.0-or-later</code></a></li>
<li><a href="https://glade.gnome.org/">Glade</a> - RAD tool to enable
quick development of GTK+ GUIs. <a
href="https://spdx.org/licenses/GPL-2.0-only.html"><code>GPL-2.0-only</code></a></li>
<li><a href="https://gmsl.sourceforge.net/">GMSL</a> - GNU Make Standard
Library; a collection of additional functionality for GNU Make. <a
href="https://spdx.org/licenses/BSD-3-Clause.html"><code>BSD-3-Clause</code></a></li>
<li><a href="https://www.gnu.org/software/global/">GNU Global</a> -
Source code tagging tool. <a
href="https://spdx.org/licenses/GPL-3.0-only.html"><code>GPL-3.0-only</code></a></li>
<li><a href="https://logological.org/gpp">GPP</a> - General-purpose
preprocessor. More versatile than the C preprocessor, but more flexible
than m4. <a
href="https://spdx.org/licenses/LGPL-3.0-or-later.html"><code>LGPL-3.0-or-later</code></a></li>
<li><a href="http://www.andre-simon.de/index.php">Highlight</a> -
Converts source code to formatted text with nice highlighting. <a
href="https://spdx.org/licenses/GPL-3.0-only.html"><code>GPL-3.0-only</code></a></li>
<li><a
href="https://github.com/include-what-you-use/include-what-you-use">include-what-you-use</a>
- Helps find unecessary inclusions and make suggestions for fixing them.
Based on LLVM/Clang (and only works with it). <a
href="https://spdx.org/licenses/NCSA.html"><code>NCSA</code></a></li>
<li><a href="https://github.com/graphitemaster/incbin">incbin</a> -
Include binary files in your C/C++ applications with ease <a
href="https://spdx.org/licenses/Unlicense.html"><code>Unlicense</code></a></li>
<li><a href="https://www.gnu.org/software/indent/">indent</a> - Formats
C source code automatically to make it easier to read. Also converts
from one style of source to another. <a
href="https://spdx.org/licenses/GPL-3.0-or-later.html"><code>GPL-3.0-or-later</code></a></li>
<li><a href="https://github.com/smackers/smack">SMACK</a> - Modular
software verification toolchain and a self-contained software verifier.
Currently only works with programs compiled using Clang. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="http://dotat.at/prog/unifdef/">unifdef</a> - Removes #ifdef
and #if directives with their delimited text without touching any other
part of the file. <a
href="https://spdx.org/licenses/BSD-3-Clause.html"><code>BSD-3-Clause</code></a>
or <a
href="https://spdx.org/licenses/BSD-2-Clause.html"><code>BSD-2-Clause</code></a></li>
</ul>
<h2 id="utilities">Utilities</h2>
<p>A catch-all category for anything that doesnt fit well anywhere
else.</p>
<ul>
<li><a
href="https://github.com/jeremyevans/ape_tag_libs/tree/master/c">ApeTagLibs</a>
- Library for working with APEv2 tags. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/cofyc/argparse">argparse</a> -
Command-line argument parsing library, inspired by Pythons argparse
module. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="http://savannah.nongnu.org/projects/attr/">attr</a> -
Commands for manipulating filesystem extended attributes. <a
href="https://spdx.org/licenses/GPL-2.0-or-later.html"><code>GPL-2.0-or-later</code></a></li>
<li><a href="http://sourceware.org/binutils/docs/bfd/">bfd</a> - Library
for manipulating binary object files. Part of GNU binutils. <a
href="https://spdx.org/licenses/GPL-3.0-or-later.html"><code>GPL-3.0-or-later</code></a></li>
<li><a href="https://github.com/dmw/caffeine">Caffeine</a> - Library for
building daemons and services for Linux and FreeBSD systems. <a
href="https://spdx.org/licenses/LGPL-2.1-or-later.html"><code>LGPL-2.1-or-later</code></a></li>
<li><a href="http://www.throwtheswitch.org/cexception">CException</a> -
Implementation of exceptions. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a
href="https://github.com/commonmark/commonmark-spec">CommonMark</a> -
Implementation of the CommonMark spec.</li>
<li><a href="https://github.com/jart/cosmopolitan">cosmopolitan</a> -
fast portable static native textmode containers (build C programs for
Linuxin one go) <a
href="https://github.com/commonmark/commonmark-spec/blob/master/LICENSE">Variety
of licenses, all open source</a>.</li>
<li><a href="https://github.com/google/cpu_features">cpu_features</a> -
Get CPU features at runtime. <a
href="https://spdx.org/licenses/Apache-2.0.html"><code>Apache-2.0</code></a>.</li>
<li><a href="https://criu.org/Main_Page">CRIU</a> - Checkpoint/Restore
In Userspace; a software tool (with a C API) for freezing a running
application to disk, then restoring it. <a
href="https://spdx.org/licenses/GPL-2.0-only.html"><code>GPL-2.0-only</code></a>
or <a
href="https://spdx.org/licenses/LGPL-2.1-only.html"><code>LGPL-2.1-only</code></a></li>
<li><a href="https://www.freedesktop.org/wiki/Software/dbus/">D-Bus</a>
- Simple way for applications to talk to one another. <a
href="https://spdx.org/licenses/AFL-2.1.html"><code>AFL-2.1</code></a>
or <a
href="https://spdx.org/licenses/GPL-2.0-or-later.html"><code>GPL-2.0-or-later</code></a></li>
<li><a
href="http://www.pell.portland.or.us/~orc/Code/discount/">Discount</a> -
Simple implementation of a Markdown parser. <a
href="https://spdx.org/licenses/BSD-3-Clause.html"><code>BSD-3-Clause</code></a></li>
<li><a href="https://github.com/blynn/dlx">dlx</a> - Implementation of
<a href="https://en.wikipedia.org/wiki/Knuth&#39;s_Algorithm_X">Knuths
Algorithm X</a>, with example solvers. <a
href="https://spdx.org/licenses/GPL-3.0-or-later.html"><code>GPL-3.0-or-later</code></a></li>
<li><a href="https://github.com/docopt/docopt.c">docopt.c</a> -
Implementation of a command-line option parser. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="http://www.dyncall.org/">dyncall</a> - Another foreign
function interface library. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://gnu.org/software/freeipmi/index.html">GNU
FreeIPMI</a> - In-band and out-of-band IPMI implementation. <a
href="https://spdx.org/licenses/GPL-3.0-only.html"><code>GPL-3.0-only</code></a></li>
<li><a href="https://www.gnu.org/software/gperf/">GNU gperf</a> -
Perfect hash function generator, given a list of strings. Outputs C
code. <a
href="https://spdx.org/licenses/GPL-3.0-or-later.html"><code>GPL-3.0-or-later</code></a></li>
<li><a href="https://gnu.org/software/libffcall/">GNU Libffcall</a> -
Collection of libraries for building foreign function interfaces. <a
href="https://spdx.org/licenses/GPL-3.0-or-later.html"><code>GPL-3.0-or-later</code></a></li>
<li><a href="https://github.com/hoedown/hoedown">Hoedown</a> - Fully
standards-compliant, extension-supporting, UTF-8 aware, fast Markdown
parser. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="http://kitsune-dsu.com/">Kitsune</a> - Efficient,
general-purpose framework for dynamic software updating. <a
href="https://spdx.org/licenses/LGPL-3.0-or-later.html"><code>LGPL-3.0-or-later</code></a></li>
<li><a href="http://libcello.org/">libCello</a> - Library introducing
higher-level programming to C. <a
href="https://spdx.org/licenses/BSD-3-Clause.html"><code>BSD-3-Clause</code></a></li>
<li><a href="https://github.com/jgm/cmark">libcmark</a> - Library for
parsing the CommonMark dialect of Markdown. <a
href="https://spdx.org/licenses/BSD-2-Clause.html"><code>BSD-2-Clause</code></a></li>
<li><a href="https://github.com/obgm/libcoap">libcoap</a> -
Implementation of the <a href="http://coap.technology/">Constrained
Application Protocol</a>. <a
href="https://spdx.org/licenses/GPL-2.0-or-later.html"><code>GPL-2.0-or-later</code></a>
or <a
href="https://spdx.org/licenses/BSD-2-Clause.html"><code>BSD-2-Clause</code></a></li>
<li><a href="http://libcox.symisc.net/">libcox</a> - Library which
permits cross-platform system calls and standard utilities across
different operating systems. <a
href="https://spdx.org/licenses/BSD-2-Clause.html"><code>BSD-2-Clause</code></a></li>
<li><a href="https://github.com/atgreen/libffi">libffi</a> - Portable
foreign-function interface library. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/simplegeo/libgeohash">libgeohash</a> -
Pure C implementation of the Geohash algorithm. <a
href="https://spdx.org/licenses/BSD-3-Clause.html"><code>BSD-3-Clause</code></a></li>
<li><a href="https://libgit2.org/">libgit2</a> - Portable implementation
of the Git core methods, provided as a re-entrant linkable library. <a
href="https://github.com/libgit2/libgit2/blob/master/COPYING">Custom
license</a>.</li>
<li><a href="https://gnu.org/software/gss/">libgss</a> - Generic
Security Service. <a
href="https://spdx.org/licenses/GPL-3.0-or-later.html"><code>GPL-3.0-or-later</code></a></li>
<li><a
href="https://github.com/libimobiledevice/libimobiledevice">libimobiledevice</a>
- Cross-platform protocol library to communicate with iThings. <a
href="https://spdx.org/licenses/LGPL-2.1-or-later.html"><code>LGPL-2.1-or-later</code></a></li>
<li><a href="https://github.com/nfc-tools/libnfc">libnfc</a> -
Platform-independent Near-Field Communication library. <a
href="https://spdx.org/licenses/LGPL-3.0-only.html"><code>LGPL-3.0-only</code></a></li>
<li><a href="https://github.com/openvenues/libpostal">libpostal</a> -
Library for parsing and normalization of street addresses around the
world. Powered by statistical NLP and open geo data. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="http://libtrading.org/">libtrading</a> - Implementation of
network protocols for communicating with exchanges, dark pools and other
trading venues. Supports FIX, FIX/FAST and many proprietary protocols.
<a
href="https://spdx.org/licenses/BSD-2-Clause.html"><code>BSD-2-Clause</code></a></li>
<li><a href="https://libusb.info/">libusb</a> - Provides generic access
to USB devices. <a
href="https://spdx.org/licenses/LGPL-2.1-or-later.html"><code>LGPL-2.1-or-later</code></a></li>
<li><a href="http://libuv.org">libuv</a> - Cross-platform asynchronous
I/O. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a
href="https://github.com/dertuxmalwieder/libvldmail">libvldmail</a> -
Your friendly email validation library. No external dependencies (not
even regexps). <a
href="https://spdx.org/licenses/WTFPL.html"><code>WTFPL</code></a></li>
<li><a href="https://github.com/antirez/linenoise">linenoise</a> -
Small, self-contained alternative to readline and libedit. <a
href="https://spdx.org/licenses/BSD-2-Clause.html"><code>BSD-2-Clause</code></a></li>
<li><a href="https://github.com/Jorengarenar/libXDGdirs">libXDGdirs</a>
- An implementation of XDG Base Directory Specification <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://trumpowen.github.io/MegaMimes">MegaMimes</a> -
Library for getting the <a
href="https://en.wikipedia.org/wiki/MIME">MIME</a> types of a file. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://gnu.org/software/ncurses/">ncurses</a> - Coloured
terminal UI library. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a
href="https://github.com/sabotage-linux/netbsd-curses">netbsd-curses</a>
- Simplified and small version of ncurses, with the same interface. <a
href="https://spdx.org/licenses/BSD-3-Clause.html"><code>BSD-3-Clause</code></a></li>
<li><a href="https://github.com/riolet/WAFer">nope.c</a> - Ultra-light
software platform for scalable server-side and networking applications
(think node.js for C programmers). <a
href="https://spdx.org/licenses/GPL-2.0-only.html"><code>GPL-2.0-only</code></a></li>
<li><a href="https://github.com/small-c/obj.h">obj.h</a> - A
single-header supports OOP in pure C. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/jibsen/parg">parg</a> - A single-file
reimplementation of <code>getopt</code> with better defaults. <a
href="https://spdx.org/licenses/CC0-1.0.html"><code>CC0-1.0</code></a></li>
<li><a href="https://github.com/cloudwu/pbc">pbc</a> - Protocol buffers
library. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/doches/progressbar">progressbar</a> -
Easy-to-use library for displaying text progress bars. <a
href="https://spdx.org/licenses/BSD-3-Clause.html"><code>BSD-3-Clause</code></a></li>
<li><a href="https://github.com/alanxz/rabbitmq-c">rabbitmq-c</a> -
Client library for <a href="http://www.rabbitmq.com/">RabbitMQ</a>. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="http://www.colm.net/open-source/ragel/">Ragel</a> - DSL for
state machines that compiles to C. <a
href="https://spdx.org/licenses/GPL-2.0-only.html"><code>GPL-2.0-only</code></a></li>
<li><a href="https://remove-to-waste.info">rmw</a> - safe-remove utility
for the command line that can purge items from your waste directories
after x number of days. <a
href="https://spdx.org/licenses/GPL-3.0-or-later.html"><code>GPL-3.0-or-later</code></a></li>
<li><a href="https://github.com/sakhmatd/rogueutil">Rogueutil</a> -
Cross-platform library for creating text-based user interfaces (TUI) <a
href="https://spdx.org/licenses/Apache-2.0.html"><code>Apache-2.0</code></a></li>
<li><a href="https://github.com/swenson/sort">sort</a> - Collection of
sorting routines, which type-specialize at compile-time with a
user-defined type. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/nsf/termbox">termbox</a> - Library for
writing text-based interfaces. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/codeplea/tinyexpr">tinyexpr</a> - Tiny
recursive-descent parser, compiler and evaluation engine for simple
mathematical expressions. <a
href="https://spdx.org/licenses/BSD-3-Clause.html"><code>BSD-3-Clause</code></a></li>
<li><a href="https://github.com/recp/tm">tm</a> - ⏱ Timer and Timeline
Utils for C. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://tulipindicators.org/">Tulip Indicators</a> -
Library of functions for technical analysis of financial data. <a
href="https://spdx.org/licenses/LGPL-3.0-or-later.html"><code>LGPL-3.0-or-later</code></a></li>
<li><a href="https://github.com/gpakosz/whereami">whereami</a> -
One-file library for locating the current executable on the file system.
<a
href="https://spdx.org/licenses/WTFPL.html"><code>WTFPL</code></a></li>
<li><a href="https://brechtsanders.github.io/xlsxio/">XLSX I/O</a> -
Cross-platform library for reading and writing .xlsx files. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/damian-m-g/xlsx_drone">xlsx_drone</a> -
Fast Microsoft Excels *.xlsx reader. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a><br />
</li>
<li><a href="http://hardysimpson.github.io/zlog/">zlog</a> - Reliable,
pure C logging library. <a
href="https://spdx.org/licenses/LGPL-2.1-only.html"><code>LGPL-2.1-only</code></a></li>
<li><a href="https://github.com/zeromq/zproto">zproto</a> - Protocol
framework for ZeroMQ. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/Hirrolot/metalang99">Metalang99</a> -
Full-blown preprocessor metaprogramming. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://github.com/Hirrolot/datatype99">Datatype99</a> -
Algebraic data types for C99. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
</ul>
<h2 id="web-frameworks">Web Frameworks</h2>
<p>Comprehensive and integrated solutions for building the next
brilliant web application in C.</p>
<ul>
<li><a href="https://github.com/Cogmasters/concord">Concord</a> - A
Discord API wrapper library written in C. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="http://facil.io/">facil.io</a> - Mini-framework for web
applications. Includes a fast HTTP and Websocket server, and also
supports custom protocols. <a
href="https://spdx.org/licenses/MIT.html"><code>MIT</code></a></li>
<li><a href="https://kristaps.bsd.lv/kcgi">kcgi</a> - CGI and FastCGI
library for C <a
href="https://spdx.org/licenses/ISC.html"><code>ISC</code></a>.</li>
<li><a href="http://www.koanlogic.com/klone/">KLone</a> - Fully
featured, multi-platform, web application development framework,
targeted especially at embedded systems and appliances. <a
href="https://spdx.org/licenses/BSD-3-Clause.html"><code>BSD-3-Clause</code></a></li>
<li><a href="https://kore.io/">Kore</a> - Easy-to-use web application
framework for writing scalable web APIs in C. <a
href="https://spdx.org/licenses/ISC.html"><code>ISC</code></a></li>
</ul>
<h2 id="windows-environments">Windows Environments</h2>
<p>Technologies designed to bring Windows into the 21st century with
respect to support for C.</p>
<ul>
<li><a href="https://cygwin.com/">Cygwin</a> - Designed to emulate a
POSIX-compatible environment extensively under Windows. <a
href="https://cygwin.com/licensing.html">Various licenses, all open
source</a>.</li>
<li><a href="http://mingw-w64.yaxm.org/doku.php/start">MinGW-w64</a> -
Minimalist environment for C development on Windows with 64 bit support.
<a href="http://mingw.org/license">Various licenses, all open
source</a>.</li>
<li><a href="http://msys2.github.io/">MSYS2</a> - Minimal SYStem 2; aims
to provide support for a POSIX environment on Windows, with a package
manager based on Arch Linuxs pacman. Packages have individual licenses,
otherwise, as MinGW and Cygwin.</li>
</ul>