# Awesome C #
A curated list of C good stuff. Contributions are welcome.
An important note: first and foremost linked resources are for C, therefore
C++ is an afterthought.
Note: there are several awesome-c lists already, but they are having
somewhat different sets of libraries in them. This list tries to incorporate
them all, and many more other resources. Consider it my personal cheat sheet and
index for easier search instead of github stars. Also, original list categories
are a mess.
Note: all licenses after project descriptions are leading to actual license
text or declaration, if any provided. Source code with no license attached is
considered as automatically copyrighted by law or it is falling under the case
of terms of service of provided source code publication and hosting service, so
keep this in mind. Also, probably sometimes license can be provided or
mentioned, but I've failed to find it.
Incorporated lists:
Index
Meta
Standards
### ^
Standards ###
Tooling
Build Systems
#### ^
Build Systems ####
- aimake - Build tool designed to avoid complex configurations.
GPL 3
- Autoconf - Extensible package of M4 macros that produce shell scripts
to automatically configure software source code packages. Part of the
Autotools.
GPL 2
- Automake - Tool for automatically generating
Makefile.in
files
compliant with the GNU Coding Standards. Requires the use of Autoconf. Part of
the Autotools. GPL 2
- Bazel - Build system for various operating systems and targets.
Apache 2
- Buck - Build system created and used by Facebook.
Apache 2
- CMake - Cross-platform family of tools designed to build, package and
test software. Written in C++11.
BSD 3-Clause
- GNU Make - Tool which controls the generation of executables and
other non-source files of a program.
GPL 3
- jamplus/jamplus - Jamplus is a generic code and data build system
derived from the original Perforce version of Jam.
License
- Libtool - Generic library support script. Part of the Autotools.
GPL 2
- Meson - Build system based on Ninja and Python.
Apache 2
- ninja-build/ninja - Small, simple build system with a focus on speed.
Apache 2
- Premake - Generates project files for Visual Studio, Xcode and GNU
Make. Targets suppport can be extended via modules.
BSD 3-Clause
- Qbs - Modern build tool for software projects.
Licenses
- qmake - Build system included with the Qt Framework.
Licenses
- SCons/scons - Software construction tool based on Python.
License
- gittup/tup - Tup is a file-based build system.
GPL 2
- xmake-io/xmake - Cross-platform build utility based on Lua.
Apache 2
- zeromq/zproject - Project generator and build system support tool
for ZeroMQ project.
MPL 2
- michaelforney/samurai - ninja-compatible build tool written in C.
Licenses
- matricks/bam - Build system with Lua scripting.
License
Compilers
#### ^
Compilers ####
Debugging and Analysis
#### ^
Debugging and Analysis ####
- C-Reduce - Tool that takes a large C file with a property of interest
and automatically produces a much smaller C file that has the same property.
Intended to help create minimal bug-demonstrating cases in complex code.
License
- CBMC - C Bounded Model Checker; a tool for verification of array
bounds, pointer safety and user-specified assertions.
License
- cgdb/cgdb - Console front-end to the GNU debugger.
GPL 2
- GNU cflow - Analyzes a collection of source files and prints a graph
charting control flow in the program.
GPL 3
- ClangCheck - Static analysis tool, designed to work with Clang.
NCSA
- GNU Complexity - Tool for measuring the complexity of source code.
GPL 3
- Cppcheck - Static analysis tool. Despite the name, works well with C.
GPL 3
- CScout - Source code analyzer and refactoring browser for C programs.
GPL 3
- agl/ctgrind - Checking that functions are constant time with
Valgrind.
No license
- GNU DDD - Graphical front-end for a range of command-line debuggers.
Licenses
- GDB - GNU Project debugger.
Licenses
- lldb - LLVM debugger.
NCSA
- rr - Debugger that records non-deterministic executions to allow for
deterministic debugging.
License
- SVF-tools/SVF - Pointer Analysis and Program Dependence Analysis for
C and C++ Programs.
License
- Valgrind - Range of dynamic analysis tools, including a leak
checker.
GPL 2
Documentation Generation
#### ^
Documentation Generation ####
- Cxref - Generates documentation in either LaTeX, HTML, RTF or SGML.
GPL 2
- DocOnce - Modestly tagged markup language that can be used to
generate a range of formats.
BSD 3-Clause
- Doxygen - De-facto standard tool for generating documentation from
annotated sources. Can generate a large range of formats.
GPL 2
- GTK-Doc - Tool for generating C documentation from annotated sources.
Has support for the Autotools.
GPL 2
Editors
#### ^
Editors ####
Microsoft Windows Environment
#### ^
Microsoft Windows Environment ####
- Cygwin - Designed to emulate a POSIX-compatible environment
extensively under Windows.
Licenses
- MinGW-w64 - Minimalist environment for C development on Windows with
64 bit support.
Licenses
- MSYS2 - Minimal SYStem 2; aims to provide support for a POSIX
environment on Windows, with a package manager based on Arch Linux's
pacman. Packages have individual licenses, otherwise, as MinGW and Cygwin.
BSD 3-Clause
- reactos - A free Windows-compatible Operating System.
GPL 2
Profiling
#### ^
Profiling ####
- gperftools - Collection of utilities for measuring and improving
performance.
BSD 3-Clause
- gprof - Performance analysis tool. Part of GNU binutils.
Licenses
- OProfile - Statistical profiler for Linux. Can profile any code
(including the kernel!) with low overhead and without recompilation.
GPL 2
- perf - Linux kernel-based profiler with a lot of functionality.
GPL 2
Text Editor Extensions
#### ^
Text Editor Extensions ####
- CCompletion - Notepad++ autocompletion plugin. Works with all
identifiers recognized by Ctags. This is a download link. [
GPL 2
]
- CEDET - Collection of Emacs Development Environment Tools; designed
to provide IDE-like features to Emacs. Built-in.
GPL 2
- lvzixun/Clang-Complete - an autocomplete plugin for sublimetext3.
No license
- editorconfig-core-c - EditorConfig core library written in C (for
use by plugins supporting EditorConfig parsing).
License
- Flycheck - Modern syntax checking for Emacs. For C, it can use either
GCC or Clang as a back-end.
GPL 3
- AtomLinter/linter-clang - Lint C code in Atom, using Clang.
No license
- hebaishi/linter-gcc - Lint C code in Atom, using GCC.
MIT
- Neomake - make and linting framework for Neovim/Vim.
MIT
- Syntastic - Syntax checking and linting for Vim.
WTFPL
- YASnippet - Emacs code template system, with C templates for common
snippets.
EPLA
- YouCompleteMe - Code completion engine for Vim.
GPL 3
Utilities
#### ^
Utilities ####
Reading Material
Books
#### ^
Books ####
##### Reference Books #####
##### Beginner Books #####
##### Intermediate Books #####
##### Advanced Books #####
Articles and Other Resources
Benchmarks
##### ^
Benchmarks #####
Beginner Level
##### ^
Beginner Level #####
Intermediate Level
##### ^
Intermediate Level #####
Advanced Level
##### ^
Advanced Level #####
Code Examples
Operating Systems
##### ^
Operating Systems #####
Emulators, VMs
##### ^
Emulators, VMs #####
UI, Windowing, Graphics
##### ^
UI, Windowing, Graphics #####
Language Implementations
##### ^
Language Implementations #####
Challenges
##### ^
Challenges #####
Other Examples
##### ^
Other Examples #####
AI
## ^
AI ##
Neural nets, machine learning, pattern recognition etc.
Algoritm Implementations
## ^
Algoritm Implementations ##
Some generic agoritms or ones with no specific attachments.
- dhuertas/AES - AES algorithm implementation in C.
No license
- mischasan/aho-corasick - A-C implementation in "C". Tight-packed
(interleaved) state-transition matrix.
LGPL 3
- davidreynolds/algorithms - A repository of assorted algorithms and
data structures.
No license
- BigZaphod/AStar - C Implementation of the A* Pathfinding Algorithm.
License
- citiususc/BigBWA - Approaching the Burrows-Wheeler Aligner to Big
Data Technologies.
GPL 3
- TheAlgorithms/C - All Algorithms implemented in C
No license
- chaoslawful/ccard-lib - C library for estimating cardinality in
streams for which it is infeasible to store all events in memory.
No license
- agl/curve25519-donna - Implementations of a fast Elliptic-curve
Diffie-Hellman primitive.
License
- aimxhaisse/des - C implementation of DES.
License
- tarequeh/DES - Implementation of Data Encryption Standard in C.
MIT
- blynn/dlx - Implementation of Knuth's Algorithm X, with example
solvers.
GPL 3
- oap/ekf-angles - Extended Kalman Filter for Accelerometer and Gyro
data.
No license
- Cyan4973/FiniteStateEntropy - Finite State Entropy and Huff0.
BSD 2-Clause
- BlackLight/fkmeans - A tiny library in C for managing kmeans
clusterization algorithm over arbitrary data sets, both by manually specifying
the number k of clusters and computing it automatically using Schwarz
criterion.
GPL 3
- kljensen/Gemoda - A generic motif discovery algorithm for
sequential data.
GPL 2
- lacker/ikalman - An iPhone-friendly Kalman filter written in C.
MIT
- tsuraan/Jerasure - C Implementation of Reed-Solomon coding.
License
- jmcejuela/Levenshtein-MySQL-UDF - General Levenshtein algorithm and
k-bounded levenshtein distance in linear time and constant space.
LGPL 3
- CVLearner/Mixture-of-Gaussians - Fit a Gaussian mixture model given
a set of data.
MIT
- richarddurbin/pbwt - Implementation of Positional Burrows-Wheeler
Transform for genetic data.
License
- ntamas/plfit - Fitting power-law distributions to empirical data,
according to the method of Clauset, Shalizi and Newman.
License
- Kevincav/Radix-Sort - Radix Sort with different data types.
MIT
- duckythescientist/obfuscatedLife - Conway's Game of Life in 9 lines
of C.
No license
- kokke/tiny-AES-c - Small portable AES128/192/256 in C.
Unlicense
- kroitor/gjk.c - Gilbert-Johnson-Keerthi (GJK) collision detection
algorithm in 200 lines of clean plain C.
WTFPL
- ai-ku/scode - Sphere embedding (s-code) is a variation of Euclidean
embedding of co-occurence data (code).
MIT
- swenson/sort - Collection of sorting routines, which type-specialize
at compile-time with a user-defined type.
MIT
- msteinbeck/tinyspline - ANSI C library for NURBS, B-Splines, and
Bézier curves with interfaces for C++, C#, D, Java, Lua, Octave, PHP, Python,
R, and Ruby.
MIT
- ferreiradaselva/uastar - Minimal A* implementation.
Zlib
- madler/crcany - CRC calculation library.
Zlib
Argument Parsing
## ^
Argument Parsing ##
Calculations and Math
## ^
Calculations and Math ##
- b-k/apophenia - Library for statistical and scientific computing.
GPL 2
- fredrik-johansson/arb - Library for arbitrary-precision interval
arithmetic.
LGPL 2.1
- ATLAS - Automatically Tuned Linear Algebra Software.
License
- BLAS - Basic Linear Algebra Subprograms; a set of routines that
provide vector and matrix operations.
License
- Lichtso/CCWT - Complex Continuous Wavelet Transformation.
MIT
- CDFLIB - Library with routines to evaluate cumulative density
functions for a variety of standard probability distributions.
Also can compute one parameter of the CDF given the others.
No license
- ScientificC/cmathl - Pure-C Math library with a great variety of
mathematical functions and CMake build support. Seeks to be close to C89/C90
compliant for portability.
MIT
- Cuba - Library for multidimensional numerical integration.
LGPL
- adis300/fft-c - A high-performance Fourier Transform from netlib's
fftpack; wrapped in a user-friendly format.
MIT
- FFTW - The Fastest Fourier Transform in the West; a
highly-optimized fast Fourier transform routine.
GPL 2
- FLINT - Fast Library for Number Theory; a library supporting
arithmetic with numbers, polynomials, power series and matrices, among others.
LGPL 2.1
- gjrand - Library of random-number generation routines.
GPL 2
- GLPK - GNU Linear Programming Kit; a package designed for solving
large-scale linear programming, mixed integer programming and other related
problems.
GPL 3
- GMP - GNU Multple Precision Arithmetic Library; a library for
arbitrary-precision arithmetic.
Licenses
- GNU MPC - Library for complex number arithmetic.
LGPL 3
- GNU MPFR - Library for arbitrary-precision floating-point
arithmetic.
LGPL 3
- GNU MPRIA - Portable mathematics library for multi-precision
rational interval arithmetic.
GPL 3
- GSL - The GNU Scientific Library; a sophisticated numerical
library.
GPL3
- HdrHistogram/HdrHistogram_c - C port of the HdrHistogram.
License
- igraph- Library for creating and manipulating large graphs.
GPL2
- KISS FFT - Very simple fast Fourier transform library.
BSD
- LAPACKE - C interface to LAPACK.
License
- PARI/GP - Computer algebra system for number theory; includes a
compiler to C.
GLP
- PETSc - Suite of data structures and routines for scalable parallel
solution of scientific applications modelled by partial differential
equations.
License
- PROB - Library that handles various discrete and continuous
probability density functions.
LGPL 3
- PetteriAimonen/libfixmatrix - C library for fixed point matrix,
quaternion and vector calculations.
MIT
- canonizer/libgpuvm - library which simplifies host-GPU data
transfer using userspace pagefault handling.
No license
- libtom/libtommath - LibTomMath is a free open source portable
number theoretic multiple-precision integer library written entirely in C.
Unlicense
- JuliaMath/openlibm - High quality system independent, portable,
open source libm implementation.
License
- imneme/pcg-c - PCG — C Implementation.
Apache 2
- imneme/pcg-c-basic - PCG — Minimal C Implementation.
Apache 2
- libtom/tomsfastmath - TomsFastMath is a fast public domain, open
source, large integer arithmetic library written in portable ISO C.
Licenses
- cvxgrp/scs - C package that solves convex cone problems via
operator splitting.
MIT
- SLEPc - Library for the solution of large, sparse eigenvalue
problems on parallel computers.
BSD 2-Clause
- slim-curve/slim-curve - SLIM Curve: a package for exponential curve
fitting of combined spectral lifetime image data.
GPL 3
- tinyexpr - Tiny recursive-descent parser, compiler and evaluation
engine for simple mathematical expressions.
Zlib
- Yeppp! - Very fast, SIMD-optimized mathematical library.
License
- PetteriAimonen/libfixmath - Cross Platform Fixed Point Maths
Library.
MIT
- datenwolf/linmath.h - Linear math as required for computer graphics.
WTFPL
Compression
## ^
Compression ##
- Blosc/bcolz - Fast, multi-threaded, meta-compressor library.
Licenses
- kiyo-masui/bitshuffle - Filter for improving compression of typed
binary data.
License
- google/brotli - Generic lossless compression algorithm based on
LZ77, Huffman coding and 2nd order context modelling.
MIT
- bzip2 - Patent-free, high-quality data compression library.
BSD 4-Clause
- Blosc/c-blosc - A blocking, shuffling and loss-less compression
library that can be faster than memcpy().
Licenses
- clzip - C lzip implementation.
GPL 2
- richox/comprox - An experimental lossless data compression program
with high compression ratio.
BSD 3-Clause
- RoaringBitmap/CRoaring - Roaring bitmaps in C (and C++).
Apache 2
- adnanozsoy/CUDA_Compression - A GPU-based LZSS compression
algorithm, highly tuned for NVIDIA GPGPUs and for streaming data, leveraging
the respective strengths of CPUs and GPUs together.
Apache 2
- centaurean/density - Superfast compression library.
BSD 3-Clause
- gildor2/fast_zlib - Improved zlib, which runs 2 to 10 times faster.
BSD 3-Clause
- Cyan4973/FiniteStateEntropy - Two efficient compression codecs
optimized for modern CPUs.
BSD 2-Clause
- rjsikarwar/gpu_compression - Nine Light weight Schemes to Compress
and Decompress the data of Database Using GPU and also a planer.
No license
- atomicobject/heatshrink - data compression library for
embedded/real-time systems.
ISC
- adamierymenko/huffandpuff - Minimal Huffman encoder and decoder.
Public domain
- libarchive/libarchive - Multi-format archive and compression
library.
Licenses
- nih-at/libzip - A C library for reading, creating, and modifying
zip archives.
BSD 3-Clause
- inikep/lizard - Formerly LZ5. Achieves compression ratios
comparable with zip and zlib at decompression speeds of 1000MB/s and faster.
Licenses
- lz4/lz4 - Extremely Fast Compression algorithm.
Licenses
- lzo - Very fast data compression library.
GPL 2
- richgel999/miniz - Single C source file zlib-replacement library.
License
- moinakg/pcompress - A Parallelized Data Deduplication
and Compression utility.
LGPL 3
- vasi/pixz - Parallel, indexed xz compressor.
BSD 2-Clause
- mist64/pucrunch - pucrunch, an Optimizing Hybrid LZ77 RLE Data
Compression Program for C64/C128/VIC-20/Plus4.
LGPL 2.1
- quicklz - Fast compression library.
Licenses
- Ed-von-Schleck/shoco - Compressor for small text strings.
MIT
- lemire/simdcomp - Simple library for compressing lists of integers
using binary packing. Makes use of SIMD instructions on x86.
BSD 3-Clause
- antirez/smaz - Small strings compression library.
BSD 3-Clause
- andikleen/snappy-c - C port of the snappy compressor.
License
- quixdb/squash - Compression abstraction library, complete with
utilities.
MIT
- powturbo/TurboPFor - Fast integer compression.
GPL 2
- powturbo/TurboRLE - Fastest Run Length Encoding.
GPL 2
- kuba--/zip - A portable, simple zip library written in C.
Unlicense
- madler/zlib - Massively-spiffy yet delicately-unobtrusive
compression library.
Zlib
- zlib-ng/zlib-ng - zlib replacement with optimizations for
"next generation" systems.
Zlib
- facebook/zstd - Fast real-time compression algorithm.
BSD 3-Clause
- jsvennevid/filearchive - File archive library allowing for easy
creation and access to data stored inside a container through a simple API.
MIT
- ariya/FastLZ - Byte-aligned LZ77 compression.
License
Concurrency and Parallelism
## ^
Concurrency and Parallelism ##
- yosefk/checkedthreads - A simple library for parallelism, with
built-in checking for race conditions.
BSD 2-Clause
- FCFS RWLock - First-come first-served Readers/Writers lock for POSIX
threads.
Licenses
- sharow/libconcurrent - Concurrent programming library, using
coroutines, for C11.
Zlib
- liburcu - Data synchronization library, which scales linearly with
the number of cores.
LGPL 2.1
- cchan - Small library for channel constructs for inter-thread
communication.
Public Domain
- pmodels/mpich - Another implementation of MPI.
License
- open-mpi/ompi - Message passing interface implementation.
License
- GNU pth - Portable implementation for non-preemptive priority-based
scheduling for multiple threads of execution.
LGPL 2.1
- POSIX threads - The POSIX thread library.
No license
- tinycthread/tinycthread - Portable, small implementation of the C11
threads API.
License
- Pithikos/C-Thread-Pool - A minimal but powerful thread pool in
ANSI C.
MIT
- baruch/libwire - User space threading (aka coroutines) library for
C resembling GoLang and goroutines.
MIT
- bjoernknafla/amp - C portable low-level assemblies for parallelism
and threading.
BSD 3-Clause
- bjoernknafla/peak - Parallelism exploration assembly kit. C toolkit
to experiment with task- and data-parallelism.
BSD 3-Clause
- cloudwu/coroutine - A asymmetric coroutine library for C.
MIT
- concurrencykit/ck - Concurrency primitives, safe memory reclamation
mechanisms and non-blocking (including lock-free) data structures designed to
aid in the research, design and implementation of high performance concurrent
systems developed in C99+.
Licenses
- etmc/lemon - Lemon is an MPI parallel I/O library that is intended
to allow for efficient parallel I/O of both binary and metadata on massively
parallel architectures. Data is stored in the SciDAC Lattice QCD Interchange
Message Encapsulation format, that allows for storing large blocks of binary
data and corresponding metadata in the same file.
GPL 3
- geertj/cgreenlet - Coroutines for C/C++.
MIT
- halayli/lthread - lthread, a multicore enabled coroutine library
written in C.
BSD 2-Clause
- hnes/libaco - A blazing fast and lightweight C asymmetric coroutine
library.
Apache 2
- jtsiomb/c11threads - Trivial C11 threads.h implementation over
POSIX threads.
Public domain
- matianfu/FUNK - a c continuation library inspired by Adam Dunkel's
ProtoThread.
Apache 2
- mbrossard/threadpool - A simple C Thread pool implementation.
BSD 2-Clause
- oneoo/alilua-coevent-module - epoll base coroutine module.
MIT
- ramonza/libcoro - Lightweight C coroutines.
BSD 2-Clause
- sustrik/libdill - Structured concurrency in C.
MIT
- sustrik/libmill - Go-style concurrency in C.
MIT
- stevedekorte/coroutine - C multiplatform coroutine implementation
via ucontext, fibers or setjmp.
No license
- parallella/pal - An optimized C library for math, parallel
processing and data movement.
Apache 2
- danluu/setjmp-longjmp-ucontext-snippets - Implementing coroutines,
channels, message passing, etc.
Apache 2
- Precisamento/cpthreads - Cross Platform (e.g. Windows) support
for C11 threads.
MIT
- shiyanhui/libcsp - Concurrency C library influenced by the CSP
model.
MIT
Cryptography
## ^
Cryptography ##
- GNU SASL - Implementation of the Simple Authentication and Security
Layer and few common SASL mechanisms.
Licenses
- aidansteele/sphlib - Set of implementations of various hash
functions, including several cryptographic ones.
MIT
- GnuTLS - Secure communication library, implementing SSL, TLS and
DTLS.
LGPL 2.1
- libgcrypt - General-purpose cryptography library, with a range of
available ciphers.
Licenses
- OpenSSL - Implementation of the SSL and TLS protocols, and also
includes a cryptography library.
Licenses
- jedisct1/libsodium - A modern, portable and easy to use crypto
library.
ISC
- ARMmbed/mbedtls - An open source, portable, easy to use, readable
and flexible SSL library.
License
- B-Con/crypto-algorithms - Basic implementations of standard
cryptography algorithms, like AES and SHA-1.
No license
- WickrInc/wickr-crypto-c - An implementation of the Wickr Secure
Messaging Protocol in C.
License
- ashwinraghav/Parallel_Open_SSL - Use your idle GPU to encrypt your
data. Give your CPU some breathing time!
Licenses
- awslabs/s2n - s2n : an implementation of the TLS/SSL protocols.
Apache 2
- bitcoin-core/secp256k1 - Optimized C library for EC operations on
curve secp256k1.
MIT
- cloudflare/keyless - CloudFlare's Keyless SSL Server Reference
Implementation.
Agreement
- ctz/cifra - A collection of cryptographic primitives targeted at
embedded use.
License
- cyassl/cyassl - Small, fast, portable implementation of TLS/SSL for
embedded devices to the cloud.
GPL 2
- eduardsui/tlse - Single C file TLS 1.2/1.3 implementation, using
tomcrypt as crypto library.
BSD 2-Clause
- h2o/picotls - TLS 1.3 implementation in C (master supports RFC8446
as well as draft-26, -27, -28).
License
- jedisct1/libhydrogen - A lightweight, secure, easy-to-use crypto
library suitable for constrained environments.
ISC
- libressl-portable/openbsd - LibreSSL source code.
Licenses
- libtom/libtomcrypt - LibTomCrypt is a fairly comprehensive, modular
and portable cryptographic toolkit that provides developers with a vast array
of well known published block ciphers, one-way hash functions, chaining modes,
pseudo-random number generators, public key cryptography and a plethora of
other routines.
Licenses
- maciejczyzewski/retter - A collection of hash functions, ciphers,
tools, libraries, and materials related to cryptography.
No license
- mikeryan/crackle - Crack and decrypt BLE encryption.
BSD 2-Clause
- open-quantum-safe/liboqs - C library for quantum-resistant
cryptographic algorithms.
MIT
- tbuktu/libntru - C Implementation of NTRUEncrypt.
Licenses
- trezor/trezor-crypto - Heavily optimized cryptography
algorithms for embedded devices.
MIT
- droe/sslsplit - Transparent SSL/TLS interception.
BSD 2-Clause
- orlp/ed25519 - Portable C implementation of Ed25519, a high-speed
high-security public-key signature system.
Zlib
- wolfSSL/wolfssl - wolfSSL (formerly CyaSSL) is a small, fast,
portable implementation of TLS/SSL for embedded devices to the cloud.
GPL 2
- rg3/bcrypt - bcrypt password hash C library.
License
- LoupVaillant/Monocypher - An easy to use, easy to deploy crypto
library.
Licenses
- tombonner/blowfish-api - Blowfish block cipher implementation.
License
Databases
## ^
Databases ##
- priitj/whitedb - Lightweight database library, operating entirely in
main memory.
GPL 3
- mongodb/mongo-c-driver - High-performance client library for
MongoDB.
Apache 2
- SQLite - Self-contained, serverless, zero-configuration,
transactional SQL database engine with a C interface.
Public domain
- symisc/unqlite - Self-contained, serverless, zero-configuration,
transactional NoSQL engine with a C interface.
License
- Akash91/CoSQL - A Co-Relational Key-Value Data Store.
No license
- GNOME/libgda - Libgda is a (relatively small) database access
library.
GPL 2
- Softmotions/ejdb - EJDB — Embeddable JSON Database engine.
MIT
- aerospike/aerospike-client-c - Aerospike C Client.
License
- bcmpinc/dagdb - small database for storing semi-structured data.
GPL 3
- maciejczyzewski/hashbase - A fast, efficient on-disk/in-memory
database with many different kind of data structures.
MIT
- maxmind/libmaxminddb - C library for the MaxMind DB file format.
Apache 2
- pmwkaa/sophia - modern emeddable key-value database.
License
- redis/hiredis - Minimalistic C client for Redis.
BSD 3-Clause
- seppo0010/rlite - self-contained, serverless, zero-configuration,
transactional redis-compatible database engine. rlite is to Redis what SQLite
is to SQL.
BSD 2-Clause
- sqlcipher/sqlcipher - SQLCipher is an SQLite extension that
provides 256 bit AES encryption of database files.
License
- tglman/orientdb-c - The C client of OrientDB.
No license
- spotify/sparkey - Simple constant key/value storage library, for
read-heavy systems with infrequent large bulk inserts.
Apache 2
- vrogier/ocilib - Open source C and C++ library for accessing
Oracle databases.
Apache 2
- symisc/vedis - An Embedded Implementation of Redis.
License
- orca-zhang/influxdb-c - C write client for InfluxDB.
MIT
- t3rm1n4l/lightkv - Key-value data storage.
No license
Data Structures and Types
## ^
Data Structures and Types ##
- recp/ds - Common Data Structures and Algorithms.
MIT
- P-p-H-d/mlib - Library for generic, but typesafe C containers.
Implemented as header-only.
BSD 2-Clause
- libsrt - Soft and hard real-time data structures.
BSD 3-Clause
- nbulischeck/list.h - Implementations for single- and double-linked
list functions.
GPL 3
- gpakosz/PackedArray - Random-access array of tightly packed unsigned
integers of any desired width. Has a SIMD-optimized implementation.
WTFPL
- swenson/vector.h - Header library for typed lists.
MIT
- 20centaurifux/datatypes - A collection of various datatypes in C
(linked lists, stack, queue, red-black tree and hash table).
GPL 3
- ClickerMonkey/CDSL - A data structure library written in C.
License
- Incarnation-p-lee/libds - Unified data structure implementation
library of C.
GPL 2
- LPD-EPFL/ASCYLIB - Concurrent-search data-structure library with
over 30 implementantions of linked lists, hash tables, skip lists, and binary
search trees.
GPL 2
- MichaelJWelsh/cdsa - A library of generic intrusive data structures
and algorithms in ANSI C.
ISC
- ZSShen/C-Common-Data-Structures - Uniform C APIs for data structure
manipulation.
No license
- agl/critbit - Critbit trees in C.
No license
- antirez/rax - A radix tree implementation in ANSI C.
BSD 2-Clause
- armon/libart - Adaptive Radix Trees implemented in C.
BSD 3-Clause
- ashinkarov/trie - Simple implementation of trie data structure.
License
- bcopeland/em_misc - External memory data structure playground.
No license
- begeekmyfriend/bplustree - A minimal but extreme fast B+ tree
indexing structure demo for billions of key-value storage.
MIT
- chrismoos/hash-ring - C hash ring library.
Apache 2
- chriso/bitset - A compressed bitset with supporting data structures
and algorithms.
LGPL
- codeprepper/data-structures - Arrays, linked lists, stacks and
queues.
MIT
- dminor/skip-quadtree - Implementation of the skip quadtree and
compressed quadtree data structures.
License
- douglascrockford/DEC64 - Decimal floating point.
No license
- fmela/libdict - C library of key-value data structures with an
object-oriented interface.
BSD 2-Clause
- fragglet/c-algorithms - A library of common data structures and
algorithms written in C.
ISC
- gnudennis/ds_c - Data Structure In C.
No license
- graphitemaster/libintrusive - Intrusive data structures for C.
Unlicense
- grundprinzip/bitcompressedvector - Provide a container for integral
data types that applies light-weight bit compression.
License
- hacatu/haclib - A utility library providing data types C should
have been made with such as vectors and sequences, mostly as macros.
MPL 2
- hyPiRion/c-rrb - RRB-tree implemented as a library in C.
MIT
- hyPiRion/roulette-tree - Data structure for efficient
fitness-proportionate selection.
MIT
- jarun/dslib - A library of handy data structures.
GPL 3
- johnj/llds - Low-Level Data Structure - efficient data structures,
and fast data access in the 2.6/3.0 kernel.
License
- jtsiomb/kdtree - A simple C library for working with KD-Trees.
License
- jvirkki/libbloom - A simple and small bloom filter implementation
in plain C.
BSD 2-Clause
- ksheedlo/kmdata - Data structures for C programmers, by
C programmers.
No license
- louiswins/RB-Tree - An implementation of the Red-Black Tree data
structure.
No license
- livioso/datastructures-in-C - Implementation of a some data
structures in C for educational purposes.
No license
- malbrain/Btree-source-code - A working project for High-concurrency
B-tree source code in C.
License
- michaeltyson/TPCircularBuffer - A simple, fast circular buffer
implementation.
License
- mikedlowis/data-structures - A collection of data structures
implemented in C to be included in multiple projects.
BSD 2-Clause
- naraing/dsLib - An algorithm library with core data-sttructures and
common algortihm implementations on those data structures.
GPL 3
- noporpoise/BitArray - C bit array structs and methods.
License
- orangejulius/cs_fundamentals - simple implementations of common
data structures/algorithms.
GPL 3
- paulasmuth/libsmatrix - thread-safe sparse matrix data structure.
MIT
- pcdavid/data-structures - Sample implementations of classical data
structures in C.
WTFPL
- petewarden/c_hashmap - A simple string hashmap in C.
Public domain
- rxi/map - A type-safe hash map implementation for C.
MIT
- rxi/vec - A type-safe dynamic array implementation for C.
MIT
- siganakis/tny - Tiny data structures that pack a punch!
License
- srdja/Collections-C - A library of generic data structures.
LGPL 3
- steven-schronk/C-Data-Structures - Collection of basic data
structures in C.
GPL 3
- wasabiz/xrope - rope data structure.
No license
- torch/tds - Torch C data structures.
License
- watmough/jwHash - Simple hash table implementation for C.
Apache 2
- zhemao/libds - Simple, memory-safe data-structures in C.
MIT
- willemt/cbuffer - A circular buffer written in C using Posix calls
to create a contiguously mapped memory space.
License
- xant/libhl - Simple and fast C library implementing a thread-safe
API to manage hash-tables, linked lists, lock-free ring buffers and queues.
LGPL 3
- yuyuyu101/C-Buffered-tree - A buffered-tree implemented in
dictionary type and more.
MIT
- MagerValp/AsmHeap - Heap data structure in 6502 assembler.
No license
- Snaipe/libcsptr - Smart pointers in C.
MIT
- C-Macro-Collections - Generate simple and generic data structures
using macros.
MIT
- troydhanson/uthash - C macros for hash tables and more.
License
- begeekmyfriend/CuckooFilter - Substitute for bloom filter.
License
- bitly/dablooms - Scaling, counting, bloom filter library.
MIT
- krglaws/KyleStructs - Simple data structures written for
educational purposes.
No license
- armon/c-minheap-array - Implements a Min-Heap / Priority Queue
in C using a simple array.
BSD 3-Clause
- jstimpfle/rb3ptr - Red-black tree in C.
License
Events
## ^
Events ##
Foreign Function Interfaces
## ^
Foreign Function Interfaces ##
Filetype Targets
Libraries for working with specific filetypes or classes of filetypes.
╠════ Binaries
### ^
Binaries ###
╠════ CSV
### ^
CSV ###
╠════ HTML
### ^
HTML ###
╠════ JSON
### ^
JSON ###
╠════ INI
### ^
INI ###
╠════ Markdown
### ^
Markdown ###
╠════ XML
### ^
XML ###
╚════ Other Filetypes
### ^
Other Filetypes ###
Flow Control and Language Extension
## ^
Flow Control and Language Extension ##
Game Development
Engines, libraries and other helpful things specifically for making games.
╠════ Game Engines
### ^
Game Engines ###
- xonotic/darkplaces - Modified version of the Quake2 engine.
GPL 2
- ioquake/ioq3 - The Quake3 engine, freed at last.
GPL 2
- orx/orx - Portable, lightweight, plugin-based, data-driven,
2D-oriented game engine.
License
- zturtleman/spearmint - Engine designed for FPS games.
GPL 3
- Gigoteur/UnicornConsole - Unicorn Console: create quick game!
MIT
- MarilynDafa/Bulllord-Engine - lightspeed lightweight elegant game
engine in pure c.
MIT
- HerculesWS/Hercules - Creation of a robust massively multiplayer
online role playing game (MMORPG) server package.
GPL 3
- Olde-Skuul/doom3do - The complete archive for DOOM for the 3DO.
MIT
- RandyGaul/AsciiEngine - Game engine written in C to create Ascii
art games within the Windows console.
MIT
- littlewolf - The tiny software graphics and game engine.
MIT
- eduard-permyakov/permafrost-engine - An OpenGL 3.3 RTS game engine
written in C.
GPL 3
- ejoy/ejoy2d - A 2D Graphics Engine for Mobile Game.
MIT
- etlegacy/etlegacy - ET: Legacy is based on the source code of the
Wolfenstein: Enemy Territory which was released under the GPLv3 license.
GPL 3
- fabiensanglard/chocolate_duke3D - chocolate Duke Nukem 3D.
License
- a-nikolaev/curseofwar - A Real Time Strategy game for Linux.
GPL 3
- chocolate-doom/chocolate-doom - Chocolate Doom is a Doom source
port that is minimalist and historically accurate.
GPL 2
- cxong/cdogs-sdl - Classic overhead run-and-gun game.
GPL 2
- fogleman/Craft - A simple Minecraft clone written in C using modern
OpenGL (shaders).
MIT
- id-Software/DOOM - DOOM Open Source Release.
License
- id-Software/Quake-2 - Quake 2 GPL Source Release.
GPL 2
- id-Software/Quake-III-Arena - Quake III Arena GPL Source Release.
GPL 2
- id-Software/Quake - Quake GPL Source Release.
GPL 2
- keendreams/keen - Keen Dreams on Greenlight!
GPL 2
- linleyh/liberation-circuit - Trapped in a hostile computer system,
you must make a way out - RTS/coding game.
GPL 3
- martincohen/Punity - A tiny game engine in C.
MIT
- orangeduck/Corange - Pure C Game Engine.
License
- naev/naev - Naev is a 2d action/rpg space game that combines
elements from the action, rpg and simulation genres.
GPL 3
- nikki93/cgame - some ideas involving games and C.
No license
- scottcgi/Mojoc - A cross-platform, open-source, pure C game engine
for mobile game.
MIT
- septag/darkhammer - darkHAMMER is a lightweight, open-source,
multiplatform game engine. written in C (C99) language, supports python
and C# bindings and lua scripts.
License
- taylor001/crown - The flexible game engine.
MIT
- theunamedguy/market-sim - A retro stock-trading game utilizing
live market data.
GPL 2
- tpoindex/crobots - CROBOTS is a programming game, for programmers
(or aspiring programmers).
GPL 2
- andwn/cave-story-md - A fan port of Cave Story for the
Sega Mega Drive.
License
- angband/angband - A free, single-player roguelike dungeon
exploration game.
License
- nesbox/tic.computer - Public TIC-80 issues tracker.
MIT
- cschied/q2vkpt - Real-time path tracer VKPT integrated into q2pro
Quake 2 client.
GPL 2
- ec-/Quake3e - Improved Quake III Arena engine.
GPL 2
- skullernet/q2pro - Enhanced Quake 2 client and server focused on
multiplayer.
GPL 2
- jdolan/quake2 - Classic Quake II for Mac and Linux.
GPL 2
- nothings/obbg - Block/voxel-based game.
Public domain
- bvschaik/julius - An open source re-implementation of Caesar III.
AGPL 3
- simple2d/simple2d - Simple, open-source 2D graphics for everyone.
MIT
- exezin/exengine - A C99 3D game engine.
MIT
- NightDiveStudios/shockmac - System Shock (PowerMac version Official
GPL Release).
GPL 3
- blinry/gish - Open Source version of the award-winning physics
platformer.
Licenses
- ambethia/aposelene - Experimental 2D Engine in C.
MIT
- klaussilveira/qengine - Retro game engine for developers that enjoy
creating games like it's 1997.
GPL 2
- sebbekarlsson/coelum - Game engine for 2d and 3d written in C.
GPL 3
- bjornbytes/lovr - Virtual Reality Engine.
MIT
- EvilPudding/candle - Game engine based on GLEW and SDL.
MIT
- zauonlok/renderer - Shader-based software renderer in C89 with
minimal dependencies.
MIT
- cdev-tux/q3lite - Quake 3 engine rendered in OpenGL ES.
GPL 3
- kondrak/vkQuake2 - Vulkan Quake 2 implementation.
LGPL 2
╠════ Graphics Rendering
### ^
Graphics Rendering ###
Everything related to video rendering only. Also visit
awesome-opengl and
awesome-vulkan.
- grimfang4/sdl-gpu - Library for high-performance, modern 2D
graphics. Based on SDL.
MIT
- dcnieho/FreeGLUT - Alternative to the OpenGL Utility Toolkit. Allows
the creation and management of windows with OpenGL contexts.
License
- MauriceGit/Cloth_Simulation - Cloth-Visualization via
particle-simulation.
ISC
- MauriceGit/Partikel_accelleration_on_GPU - Particle accelleration
with OpenGL 4.3, using the compute shader to calculate particle movement on
graphics hardware.
ISC
- ands/lightmapper - A C/C++ single-file library for drop-in lightmap
baking. Just use your existing OpenGL renderer to bounce light!
Public domain
- ands/seamoptimizer - A C/C++ single-file library that minimizes the
hard transition errors of disjoint edges in lightmaps.
Public domain
- ebassi/graphene - A thin layer of graphic data types.
MIT
- cacalabs/libcaca - ASCII renderer for terminal-based interfaces.
WTFPL
- OpenGL - Industry adopted 2D and 3D graphics API.
Graphics API
- OpenGL ES - Industry adopted 2D and 3D graphics API for mobile and
embedded devices.
Graphics API
- OpenGL SC - Graphic and compute standard for industry requiring
system safety certification.
Graphics API
- Vulkan - Explicit graphic and compute API for modern cross-platform
development.
Graphics API
- Cairo -2D graphics library.
Licenses
- Cogl - GPU graphics and utilities API.
License
- glfw/glfw - A multi-platform library for OpenGL, OpenGL ES, Vulkan,
window and input.
Zlib
- nigels-com/glew - The OpenGL Extension Wrangler Library.
License
- anoek/ex-sdl-cairo-freetype-harfbuzz - Example code which uses SDL,
cairo, freetype, and harfbuzz to do ttf/otf text layout and rendering.
No license
- ashima/webgl-noise - Procedural Noise Shader Routines compatible
with WebGL.
MIT
- grz0zrg/fbg - Lightweight C 2D graphics API agnostic library with
parallelism support.
BSD 3-Clause
- ileben/ShivaVG - OpenGL based ANSI C implementation of the OpenVG
standard.
LGPL 2.1
- jpbruyere/vkvg - Vulkan vector drawing, try to stay close to
cairo api.
MIT
- memononen/nanovg - Antialiased 2D vector drawing library on top of
OpenGL for UI and visualizations.
Zlib
- micahpearlman/MonkVG - OpenVG 1.1 like vector graphics API
implementation optimized for game use currently using an OpenGL ES backend
that should be compatible with any HW that supports OpenGL ES 2.0 which
includes most iOS and Android devices.
License
- minusinf/opengl_dataviewer - A simple OpenGL xyzw dataviewer.
GPL 3
- rougier/freetype-gl - OpenGL text using one vertex buffer, one
texture and FreeType.
License
- simple2d/simple2d - Simple, open-source 2D graphics for everyone.
MIT
- jakogut/tinyflock - A simple, high-performance, threaded, and
interactive flocking demo written in C with GLFW.
No license
- anholt/libepoxy - Library for handling OpenGL function pointer
management.
License
- felselva/gfw - Pure C Minimal Graphics Framework (OpenGL).
Zlib
- karimnaaji/voxelizer - Header only mesh voxelizer in c99.
MIT
- kbernholm/leloup - All the C functions needed for drawing
solid 3D vector graphics.
MIT
- dr-soft/glbind - Single file OpenGL API loader.
Licenses
- dr-soft/vkbind - Single file Vulkan API loader.
Licenses
- dr-soft/minidraw - Single file 2D graphics library written in C.
Licenses
- glouw/gel - N64-like software renderer.
MIT
- tuupola/hagl - Hardware Agnostic Graphics Library.
MIT
╚════ Gamedev Helping Libraries
### ^
Gamedev Helping Libraries ###
- sigil - Sound, Input and Graphics Integration Library; a simple
alternative to other libraries for doing all those things. Various licenses,
all open source.
Licenses
- SFML/CSFML - Binding for SFML in C.
License
- SDL - Cross-platform development library designed to provide
low-level access to audio, keyboard, mouse, joystick and graphics hardware via
OpenGL. SDL2 is the most current version.
Zlib
- HBehrens/obj2opengl - script to convert 3D models of OBJ files to
C/C++ float arrays (vertices, faces, texture) compatible with OpenGL ES
glDrawArrays compatible with iPhone/iPad.
GPL 3
- Kazade/kazmath - A C math library targeted at games.
BSD 2-Clause
- R4stl1n/cAudio - 3D Audio Engine Based on Openal.
Zlib
- Tangent128/luasdl2 - A pure C binding of SDL 2.0 for Lua 5.1,
Lua 5.2, and LuaJIT.
ISC
- ccore/ccore_rewrite - A cross platform low level game development
library.
BSD 3-Clause
- cloudwu/skynet - A lightweight online game framework.
MIT
- felselva/mathc - Pure C math library for 2D and 3D programming.
Zlib
- gabomdq/SDL_GameControllerDB - A community sourced database of game
controller mappings to be used with SDL2 Game Controller functionality.
License
- geon/gloss - A bidirectional path tracer written in C.
MIT
- jarikomppa/soloud - Free, easy, portable audio engine for games.
License
- liballeg/allegro5 - The official Allegro 5 git repository.
License
- recp/cglm - Highly Optimized Graphics Math (glm) for C.
MIT
- raysan5/raylib - A simple and easy-to-use library to enjoy
videogames programming.
Zlib
- rxi/lovedos - A framework for making 2D DOS games in Lua.
MIT
- slembcke/Chipmunk2D - A fast and lightweight 2D game physics
library.
MIT
- shaunlebron/blinky - Exploring peripheral vision in games
(using Quake).
MIT
- nem0/OpenFBX - Lightweight open source FBX importer.
MIT
- librg/librg - Library for building simple and elegant
cross-platform mmo client-server solutions.
Apache 2
- Srekel/phyxed-2d - 2d physics engine with fixed-point support.
Licenses
- recp/AssetKit - 3D asset importer/exporter/util library based on
COLLADA/glTF specs.
MIT
- olofson/audiality2 - A realtime scripted modular audio engine for
video games and musical applications.
Zlib
- dr-soft/miniobj - Simple library for loading OBJ mesh files.
Public Domain
- dr-soft/mintaro - Framework for making simple, retro style games.
Public Domain
- SasLuca/rayfork - raylib fork introducing some changes.
No license
- jkuhlmann/cgltf - Single-file glTF 2.0 loader/writer in C99.
MIT
Geography
## ^
Geography ##
Geodata, street maps, navigation and so on
- Unidata/gempak - Analysis, display, and product generation package
for meteorological data.
BSD 3-Clause
- evanmiller/ProjCL - Crazy-fast map projections and geodesic
calculations.
License
- olofsj/GLMap - An OpenGL ES 2.0 renderer for Openstreetmap data.
LGPL 3
- olofsj/Whichway - C library for flexible (bike, foot, car) routing
in road networks from Openstreetmap data.
No license
- maxmind/geoip-api-c - GeoIP Legacy C API.
License
- navit-gps/navit - The open source (GPL v2) turn-by-turn navigation
software for many OS.
License
- lionsoul2014/ip2region - Offline IP location library with accuracy
rate of 99.9% and 0.0x millseconds searching performance. DB file is less then
5Mb with all ip address stored. binding for Java, PHP, C, Python, Nodejs,
Golang, C#, lua. Binary, B-tree, Memory searching algorithm.
Apache 2
- openvenues/libpostal - A C library for parsing/normalizing street
addresses around the world. Powered by statistical NLP and open geo data.
MIT
- propublica/simple-tiles - Simple tile generation for maps.
MIT
- simplegeo/libgeohash - A pure C implementation of the Geohash
algorithm.
BSD 3-Clause
- kosma/minmea - Lightweight GPS NMEA 0183 parser library in pure C.
WTFPL
- geocommons/geocoder - Modular Street Address Geocoder.
LGPL 3
- bauerca/gridfloat - Slice and dice USGS elevation data from the
command line.
MIT
GUI
## ^
GUI ##
Hardware Oriented
## ^
Hardware Oriented ##
Hashing
## ^
Hashing ##
Hash function implementations for non-cryptographic purposes.
Image Processing and Computer Vision
## ^
Image Processing and Computer Vision ##
Integrated Debugging and Logging
## ^
Integrated Debugging and Logging ##
- gpakosz/whereami - One-file library for locating the current
executable on the file system.
MIT
- HardySimpson/zlog - Reliable, pure C logging library.
LGPL 2.1
- esneider/debug - One-header library for easier 'printf debugging'.
MIT
- ThrowTheSwitch/CException - Implementation of exceptions.
License
- google/pblog - Small, low overhead, structured logging library
intended for logging formware events.
Apache 2
- 0xmalloc/c-log - a fast ,stable and thread-safe log lib(logger)
for C/C++ language.
Apache 2
- Celtoys/Remotery - Single C file, Realtime CPU/GPU Profiler with
Remote Web Viewer.
Apache 2
- armink/EasyLogger - A ultra-lightweight(ROM<1.6K, RAM<0.3k),
high-performance C/C++ log library.
MIT
- cyrus-and/prof - Self-contained C/C++ profiler library for Linux.
License
- facebook/liblogfaf - A library that logs messages using
non-blocking UDP datagrams.
BSD 3-Clause
- kmcallister/embedded-breakpoints - Embed GDB breakpoints in C
source code.
BSD 3-Clause
- ntpeters/SimpleLogger - Basic logger for C and C++ projects.
MIT
- openjudge/sandbox - Open-source suite of software components for
C/C++ and Python developers to create automated profiling tools and watchdog
programs.
BSD 3-Clause
- rxi/log.c - A simple logging library implemented in C99.
MIT
- yosefk/checkedthreads - checkedthreads: no race condition goes
unnoticed! Simple API, automatic load balancing, Valgrind-based checking.
BSD 2-Clause
- libFirm - 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.
GPL 2
- daddinuz/watchdog - Memory tracer, leaks hunter.
MIT
- okuvshynov/b63 - Lightweight benchmarking tool for C.
Apache 2
- stephenrkell/trap-syscalls - Monitor, rewrite and/or otherwise trap
system calls.
Licenses
- immunityinc/libptrace - An event driven multi-core process
debugging, tracing, and manipulation framework.
LGPL 2.1
I/O
## ^
I/O ##
- Lajnold/falloc - falloc creates files of a user-specified size. It
uses the posix_fallocate syscall for allocating the right size directly,
instead of copying data like the commonly used dd tool does.
GPL 3
- cgaebel/pipe - A simple thread-safe FIFO in C.
MIT
- cxong/tinydir - Lightweight, portable and easy to integrate C
directory and file reader.
License
- reverbrain/eblob - Eblob is an append-only low-level IO library,
which saves data in blob files. Created as low-level backend for elliptics.
LGPL 3
- tronkko/dirent - C/C++ library for retrieving information on files
and directories.
MIT
- jwerle/fs.c - File system API much like Node's fs module.
MIT
- zevv/duc - Library and suite of tools for inspecting disk usage.
LGPL 3
- kwhat/libuiohook - A multi-platform C library to provide global
keyboard and mouse hooks from userland.
GPL 3
- dr-soft/dr_fs - Single file libraries for working with file
system.
Public Domain
- mpaland/printf - Standalone printf, sprintf and (v)snprintf
implementation.
MIT
Lexing and Parsing
## ^
Lexing and Parsing ##
- GNU Bison - General-purpose parser generator that converts an
annotated context-free grammar into a range of parsers.
GPL 3
- bbu/simple-interpreter - A hackable and extensible lexer, parser
and interpreter for a minimalistic, imperative, C-like language.
No license
- dcreager/libpush - An arrow-based parser combinator library for C.
BSD 3-Clause
- kmussel/Moment - Natural Language Date Parser Using Lex/Yacc/C.
MIT
- skvadrik/re2c - lexer generator for C/C++.
License
- westes/flex - The Fast Lexical Analyzer - scanner generator for
lexing in C and C++.
License
- orangeduck/mpc - Parser combinator library.
BSD 2-Clause
- transceptor-technology/libcleri - Libcleri is a powerful tool to
build languages. From a built language, libcleri can automatically create
parse trees, which are data structures representing how a grammar matches
input. It also provides feedback in case the input does not match the
language. This can be useful for auto-completion, suggestions or error
handling.
MIT
- dr-soft/url - URL parsing in C.
BSD 2-Clause
Memory Management
## ^
Memory Management ##
Multimedia
## ^
Multimedia ##
Audio and video processing.
- jeremyevans/ape_tag_libs - Library for working with APEv2 tags.
MIT
- lieff/minimp3 - Lightweight MP3 decoder single header library.
License
- FFMPEG - Complete, cross-platform solution to record, convert and
stream audio and video.
LGPL 2.1
- GStreamer - Framework for audio and visual media.
LGPL 2
- mpv-player/mpv - Media player MPV with provided library libmpv.
Compile with
./waf configure --disable-cplayer --enable-libmpv-shared
to
not have the music player. License
- andrewrk/libsoundio - Library for cross-platform, real-time audio
input and output. Has a range of back-ends.
MIT
- AVbin/AVbin - Thin, cross-platform wrapper around Libav’s
video- and audio-decoding functionality, providing long-term binary
compatibility for applications and languages that need it.
LGPL 3
- PaulBatchelor/Soundpipe - A lightweight music DSP library.
MIT
- Themaister/libfmsynth - A C library which implements an FM
synthesizer.
MIT
- UniversalPrimer/flv-analyzer - Loads an FLV file into sane C data
structures and outputs fields as human readable.
GPL 3
- Vidvox/hap-qt-codec - A QuickTime codec for Hap video.
License
- acrisci/playerctl - mpris command-line controller and library for
spotify, vlc, audacious, bmp, cmus, and others.
LGPL 3
- aubio/aubio - a library for audio and music analysis.
GPL 3
- cmatsuoka/libxmp - Libxmp is a library that renders module files to
PCM data.
License
- cnlohr/colorchord - Chromatic Sound to Light Conversion System.
BSD 3-Clause
- csound/csound - A sound and music computing system.
LGPL 2.1
- dxjia/ffmpeg-commands-executor-library - execute ffmpeg commands
through a jni shared library.
Apache 2
- erikd/libsndfile - A C library for reading and writing sound files
containing sampled audio data.
LGPL 2.1
- kfish/libfishsound - A simple programming interface for decoding
and encoding audio data using Xiph.org codecs (FLAC, Speex and Vorbis).
BSD 3-Clause
- libass/libass - libass is a portable subtitle renderer for the
ASS/SSA (Advanced Substation Alpha/Substation Alpha) subtitle format.
ISC
- libav/libav - Collection of libraries and tools to process
multimedia content such as audio, video, subtitles and related metadata.
License
- mltframework/mlt - MLT Multimedia Framework.
LGPL 2.1
- sahib/glyr - Glyr is a music related metadata searchengine, both
with commandline interface and C API.
LGPL 3
- simonyiszk/csdr - A simple DSP library and command-line tool for
Software Defined Radio.
License
- xiph/flac - Free Lossless Audio Codec.
License
- xiph/opus - Modern audio compression for the internet.
License
- mhroth/tinyosc - A minimal Open Sound Control (OSC) library written
in vanilla C.
ISC
- libao - Cross-platform audio library with a wide variety of
outputs.
GPL 2
- libvlc - VLC player library.
Licenses
- raysan5/raudio - A simple and easy-to-use audio library based on
miniaudio.
Zlib
- dr-soft/miniaudio - Single file audio playback and capture
library written in C.
Licenses
Multiple Purpose Libraries
## ^
Multiple Purpose Libraries ##
- parallella/pal - Optimized library for maths, parallel processing
and data movement.
Apache 2
- APR - Apache Portable Runtime; another library of cross-platform
utility functions.
Apache 2
- GLib - Library of utility functions and structures, designed to be
portable, efficient and powerful.
LGPL 2.1
- keybuk/libnih - Lightweight library of C functions and structures.
GPL 2
- wolkykim/qlibc - Simple and powerful C library, designed as a
replacement for GLib while focusing on being small and light.
License
- chutsu/cog - C common library containing common data structures,
sorting algorithms and utility functions.
MIT
- cs50/libcs50 - CS50 Library for C.
MIT
- dcreager/libcork - A simple, easily embeddable cross-platform C
library.
BSD 3-Clause
- faragon/libsrt - C library for writing fast and safe C code,
faster. It provides string, vector, bit set, set, map, hash set, and hash map
handling. Suitable for soft and hard real-time. Allows both heap and stack
allocation.
BSD 3-Clause
- koanlogic/libu - LibU is a multiplatform utility library written in
C, with APIs for handling memory allocation, networking and URI parsing,
string manipulation, debugging, and logging in a very compact way, plus many
other miscellaneous tasks.
License
- letoram/arcan - Display Server, Multimedia Framework,
Game Engine-> "Desktop Engine".
Licenses
- saprykin/plibsys - Highly portable C system library: threads and
synchronization primitives, sockets (TCP, UDP, SCTP), IPv4 and IPv6, IPC,
hash functions (MD5, SHA-1, SHA-2, SHA-3, GOST), binary trees (RB, AVL) and
more. Native code performance.
MIT
- tboox/tbox - A glib-like multi-platform c library.
Apache 2
- zpl-c/zpl - Your C99 Powerkit.
Licenses
- dmw/caffeine - C Application Framework.
LGPL 2.1
- breckinloggins/libuseful - A collection of useful data structures,
algorithms, and utilities for C programming.
MIT
- erimatnor/libckit - A kit of C-based utilities and data structures.
Apache 2
- pforemski/libpjf - A C library of data structures with tools
(based on libasn).
GPL 3
- stevedekorte/basekit - C based OO portable data structure library.
BSD 3-Clause
- mjansson/foundation_lib - Cross-platform foundation library in
C providing basic support data types and functions to write applications and
games in a platform-independent fashion.
Unlicense
- happyfish100/libfastcommon - Functions including: string, logger,
chain, hash, socket, ini file reader, base64 encode / decode,
url encode / decode, fast timer, skiplist, object pool etc. detail info please
see the c header files.
LGPL
- sabit/libcprops - C prototyping tools.
LGPL 2.1
- JulNadeauCA/libagar - Library providing GUI, networking, audio,
vector graphics, math and other things.
License
Networking
╠════ DNS
### ^
DNS ###
╠════ HTTP
### ^
HTTP ###
╠════ Mail
### ^
Mail ###
╠════ Messaging and Brokers
### ^
Messaging and Brokers ###
╠════ Remote Desktops
### ^
Remote Desktops ###
- FreeRDP/FreeRDP - FreeRDP is a free remote desktop protocol library
and clients.
Apache 2
- LibVNC/libvncserver - LibVNCServer/LibVNCClient are cross-platform
C libraries that allow you to easily implement VNC server or client
functionality in your program.
GPL 2
╠════ RPC
### ^
RPC ###
╠════ TCP, UDP, Sockets
### ^
TCP, UDP, Sockets ###
╠════ Web Servers
### ^
Web Servers ###
╠════ Web Service APIs
### ^
Web Service APIs ###
╠════ Websockets
### ^
Websockets ###
╚════ Uncategorized Networking
### ^
Uncategorized Networking ###
OpenCL
## ^
OpenCL ##
OpenCL, CUDA, OpenMP and other similar APIs.
OS Specifics
## ^
OS Specifics ##
Procedural Generation
## ^
Procedural Generation ##
Processes and IPC
## ^
Processes and IPC ##
Regex and Search
## ^
Regex and Search ##
Serialization
## ^
Serialization ##
Source Code Collections
## ^
Source Code Collections ##
- DanielGibson/Snippets - Useful code snippets and header-only
libraries.
Public domain
- CCAN - Modelled after Perl's CPAN, this is a big collection of C
code.
No license
- libdjb - Collection of libraries doing various things.
License
- BurntSushi/clibs - A smattering of miscellaneous C libraries.
Includes sane argument parsing, a thread-safe multi-producer/multi-consumer
queue, and implementation of common data structures (hashmaps, vectors and
linked lists).
WTFPL
- RandyGaul/cute_headers - Collection of cross-platform one-file C/C++
libraries with no dependencies, primarily used for games.
Licenses
- chadjoan/C-Survival-Kit - A set of useful functions, data
structures, and macros aimed at allowing more expressive and reliable C code.
Portability targets are OpenVMS and Linux.
Boost
- floooh/sokol - Minimal cross-platform standalone C headers.
Zlib
- gingerBill/gb - Single-file public domain libraries for C & C++.
Public domain
- gozfree/libraries - Basic libraries all written in c by gozfree,
including network, event, config, log, hash, ipc, rpc, mem, and so on.
MIT
- mackron/dr_libs - A collection of public domain single-file
libraries for C/C++.
Public domain
- mattiasgustavsson/libs - Single-file public domain libraries for
C/C++.
Public domain
- matteobertozzi/carthage - Pure C Data Structure and Utils.
BSD
- napsy/libhelper - General functions and data structures for C.
BSD 3-Clause
- niklasfrykholm/nflibs - A collection of interoperable minimalistic
C libraries. `Public domain
- nothings/stb - Single-file public domain libraries for C/C++.
Licenses
- prideout/par - Single-file C libraries from Philip Allan Rideout.
MIT
- rmitton/rjm - Various single-file C libraries.
Public domain
- vurtun/mmx - single header libraries for C/C++.
No license
- yl790/algorithms-and-data-structures - Different algorithms & data
structures.
No license
- rofl0r/libulz - a collection of useful functions and data
structures to create C apps faster. focus on simplicity, ability to statically
link and minimal binary size.
LGPL 2.1
- sdroege/snippets - Some algorithms and data structures.
LGPL 3
- lbrito1/cstuff - Algorithms & data structures in C.
GPL 2
- angelortega/mpdm - Minimum Profit Data Manager.
Public domain
- attractivechaos/klib - Small and lightweight implementations of
common algorithms and data structures.
MIT
- f1nalspace/final_game_tech - Game related libraries.
MIT
- QwertyQaz414/anv - Collection of header-only utility libraries.
MIT
Scientific
## ^
Scientific ##
Math mostly located in Calculations category
Special Purpose
## ^
Special Purpose ##
Libraries with very narrow non-generic purpose.
- TulipCharts/tulipindicators - Library of functions for technical
analysis of financial data.
LGPL 3
- MatthewLM/cbitcoin - Low-level bitcoin library written in C.
MIT
- RhysU/ESIO - Provides simple, high throughput input and output of
structured data sets using parallel HDF5. ESIO is designed to support reading
and writing turbulence simulation restart files within C, C++, and modern
Fortran applications.
LGPL 2.1
- Unidata/netcdf-c - Official GitHub repository for netCDF-C libraries
and utilities.
BSD 3-Clause
- jgarzik/picocoin - A bitcoin library in C, SPV wallet & more.
License
- libtrading/libtrading - Ultra low-latency trading connectivity
library for C and C++.
BSD 2-Clause
- nayuki/QR-Code-generator - High-quality QR Code generator library
in Java, JavaScript, Python, C++, C.
MIT
- qiq/Czech-morphology - Czech morphology library, using data files
compatible with PDT 2.0
License
- sleuthkit/sleuthkit - The Sleuth Kit® (TSK) is a library and
collection of command line digital forensics tools that allow you to
investigate volume and file system data. The library can be incorporated into
larger digital forensics tools and the command line tools can be directly used
to find evidence.
Licenses
- hroptatyr/uterus - universal tick encoder library to efficiently
transport huge amounts of tick data.
BSD 3-Clause
- luke-jr/bfgminer - Modular ASIC/FPGA miner written in C, featuring
overclocking, monitoring, fan speed control and remote interface capabilities.
GPL 3
Standard Libraries
## ^
Standard Libraries ##
Implementations of the C standards
String Manipulation
## ^
String Manipulation ##
Testing
## ^
Testing ##
TUI
## ^
TUI ##
Textual User Interface
Uncategorized
# ^
Uncategorized #