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