Awesome Lists

awesome-c

by inputsh

awesome listarchivedpushed about 4 years ago

Continuing the development of awesome-c list on GitHub

stars
3.5K
forks
358
watching
183
awesome lists
8
entries
388
View on GitHub

Embed the badge

Show how many awesome lists link to your project. The count updates automatically.

Awesome Lists badge
Markdown
[![Awesome Lists Badge](https://awesome.facts.dev/shield/inputsh/awesome-c/links.svg)](https://awesome.facts.dev/awesome/inputsh/awesome-c)
HTML
<a href="https://awesome.facts.dev/awesome/inputsh/awesome-c"><img src="https://awesome.facts.dev/shield/inputsh/awesome-c/links.svg" alt="Awesome Lists Badge" /></a>
Image URL
https://awesome.facts.dev/shield/inputsh/awesome-c/links.svg

What's in the list

388 links in 43 sections, with live GitHub stats.activeno commit in 2y

Build Systems

  • aimake

    Build tool designed to avoid complex configurations

  • Autoconf

    Extensible package of M4 macros that produce shell scripts to automatically configure software source code packages. Part of the Autotools

  • Automake

    Tool for automatically generating files compliant with the GNU Coding Standards. Requires the use of Autoconf. Part of the Autotools

  • CMake

    Tools for cross-platform building, testing, and packaging

  • Jam

    Build system, designed to be easier than make. Understands C build rules implicitly

  • Libtool

    Generic library support script. Part of the Autotools

  • Meson

    Extremely fast, user-friendly build system. Based on Ninja

  • Premake

    Build script generator for toolsets like Visual Studio, Xcode, or GNU Make

  • SCons

    An easier, more reliable and faster way to build software

  • Ninja

    Small, simple build system with a focus on speed

  • Bazel

    Build system for various operating systems and targets

  • Buck

    Build system created and used by Facebook

  • Qbs

    Modern build tool for software projects

  • qmake

    Build system included with the Qt Framework

  • xmake

    Cross-platform build utility based on lua

Compilers

  • Clang

    C compiler for LLVM. Supports C11

  • CompCert

    Fully-verified C compiler. Supports almost all of C89

  • GCC

    Provides a C compiler as part of its compiler set. Supports C11 and OpenMP

  • PCC

    Venerable C compiler. Supports C99

  • TCC

    Tiny C Compiler; a small, fast C compiler. Supports C99 (except complex types)

  • Intel SPMD

    Compiler for a variant of the C language, for single program, multiple data programming

  • ccache

    Compiler cache designed to speedup recompilation

Compiler libraries

  • yasm

    Yasm Modular Assembler Project

Compression

  • libzip

    A C library for reading, creating, and modifying zip archives

  • lzo

    Very fast data compression library

  • zlib

    Massively-spiffy yet delicately-unobtrusive compression library

  • bzip2

    Patent free, high quality data compressor

  • lz4

    Fast Compression algorithm

  • snappy

    Fast compression library (implementation in C++, native bindings to C)

  • zstd

    Fast real-time compression algorithm

  • brotli

    Generic lossless compression algorithm based on LZ77, Huffman coding and 2nd order context modelling

  • quicklz

    Fast compression library

  • pixz

    Pixz (pronounced pixie) is a parallel, indexing version of

Crypto

  • GnuTLS

    Secure communication library, implementing SSL, TLS and DTLS

  • libgcrypt

    General-purpose cryptography library, with a range of available ciphers. and

  • OpenSSL

    Implementation of the SSL and TLS protocols, and also includes a cryptography library

  • libsodium

    Modern and easy-to-use crypto library

  • libtomcrypt

    Fairly comprehensive, modular and portable cryptographic toolkit

  • mbed TLS

    Another crypto implementation for C

  • libressl

    Modernized fork of OpenSSL

Database

  • BerkeleyDB

    Library for a high-performance embedded database for key-value data

  • Hiredis

    Minimalistic client library for Redis

  • LMDB

    Ultra-fast, ultra-compact key-value embedded data store

  • MariaDB

    Robust, scalable and reliable SQL server, designed to be a drop-in replacement for MySQL

  • mongo-c-driver

    High-performance client library for

  • PostgreSQL

    Powerful object-relational database system

  • recutils

    Set of tools and a C library for accessing human-editable, plaintext database files called recfiles

  • Redis

    Advanced key-value store

  • sophia

    Modern, embeddable key-value database

  • SQLite

    Self-contained, serverless, zero-configuration, transactional SQL database engine with a C interface

  • UnQLite

    Self-contained, serverless, zero-configuration, transactional NoSQL engine with a C interface

Deep Learning

  • Darknet

    Open source neural network framework written in C and CUDA. It is fast, easy to install, and supports CPU and GPU computation

Documentation Generation

  • Cxref

    Generates documentation of C programs in either LaTeX, HTML, RTF or SGML

  • DocOnce

    Modestly-tagged markup language that can be used to generate a range of formats

  • Doxygen

    The de-facto standard tool for generating C documentation from annotated sources. Can generate a large range of formats

  • GTK-Doc

    Tool for generating C documentation from annotated sources. Has support for the Autotools. or

Editors

Embedded Systems / RTOS

  • Amazon FreeRTOS

    RTOS for microcontrollers that makes small, low-power edge devices easy to program

  • ChibiOS

    RTOS with complete development environment (HAL, drivers, support files, and tools)

  • Contiki

    Connect low-cost, low power microcontrollers to the Internet

  • Zephyr Project

    Scalable real-time RTOS supporting multiple hardware architectures, optimized for resource constrained devices

  • RIOT OS

    Real-time multi-threading operating system that supports a range of devices that are typically found in the Internet of Things

Environments

  • Cygwin

    Designed to emulate a POSIX-compatible environment extensively under Windows

  • MinGW-w64

    Minimalist environment for C development on Windows with 64 bit support

Frameworks

  • APR

    Apache Portable Runtime; another library of cross-platform utility functions

  • C Algorithms

    Collection of common algorithms and data structures for C

  • C Macro Collections

    Header only, macro generated, generic and type-safe Collections in C

  • CPL

    The Common Pipeline Library; a set of libraries designed to be a comprehensive, efficient and robust software toolkit

  • EFL

    Large collection of useful data structures and functions

  • GLib

    Library of utility functions and structures, designed to be portable, efficient and powerful

  • GIO

    Modern and easy-to-use VFS API

  • GObject

    Object-oriented system and object model for C

  • libnih

    Lightweight library of C functions and structures

  • libU

    Small library of basic utilities, including memory allocation, string manipulation and logging

  • PBL

    Large library of utilities, featuring data structures, among other things. or

  • qlibc

    Simple and powerful C library, designed as a replacement for GLib while focusing on being small and light. (similar to )

  • stb

    Range of single-file libraries for C

  • libsrt

    Safe Real-Time library for C

Game Programming / Engines

  • Corange

    Game engine in pure C

  • Darkplaces

    Modified version of the Quake2 engine

  • ioquake3

    The Quake3 engine, freed at last

  • Orx

    Portable, lightweight, plugin-based, data-driven, 2D-oriented game engine

  • Quake

    The Quake engine

  • Quake2

    The Quake2 engine

  • Spearmint

    Engine designed for FPS games

Game Programming / Resources

  • Allegro

    Cross-platform, video game development and multimedia library

  • Chipmunk2D

    Fast and lightweight 2D game physics library

  • CSFML

    Binding for in C

  • FreeGLUT

    Alternative to the OpenGL Utility Toolkit. Allows the creation and management of windows with OpenGL contexts

  • GLFW

    Multi-platform library for creating windows with OpenGL contexts

  • libao

    Cross-platform audio library with a wide variety of outputs

  • RetroArch

    The reference frontend for

  • SDL and SDL2

    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

  • raylib

    Simple and easy-to-use library to learn videogames programming

Generic Programming

  • klib

    Small and lightweight implementations of common algorithms and data structures

Graphics

  • Cairo

    -2D graphics library. or

  • Cogl

    GPU graphics and utilities API

  • Clutter

    UI library based on OpenGL

  • giflib

    Library for reading and writing gif images

  • heman

    Tiny library of image utilities dealing with height maps, normal maps, distance fields and the like

  • libcaca

    ASCII renderer for terminal-based interfaces

  • libimagequant

    Small, portable library for high-quality conversion of RGBA images to 8-bit indexed colour images

  • libjpeg-turbo

    Faster library for reading and writing JPEG files

  • libpng

    The official PNG reference library

  • libxmi

    Function library for rasterizing 2D vector graphics

  • mozjpeg

    Improved JPEG encoder

Graphics / Graphic APIs

  • OpenGL

    Industry adopted 2D and 3D graphics API. More resources at

  • OpenGL ES

    Industry adopted 2D and 3D graphics API for mobile and embedded devices

  • OpenGL SC

    Graphic and compute standard for industry requiring system safety certification

  • Vulkan

    Explicit graphic and compute API for modern cross-platform development. More resources at

Graphical User Interface

  • GTK+

    Cross-platform widget toolkit

  • IUP

    Another cross-platform widget toolkit

  • Tk

    Basic widget toolkit. Part of Tcl/Tk

  • XForms Toolkit

    Widget toolkit designed for the XWindow system

  • nuklear

    Single-header ANSI C gui library

  • libui

    Simple and portable (but not inflexible) GUI library

  • LCUI

    Small C library for building user interfaces with C, XML and CSS

Hashing

  • jwHash

    Fast hashtable implementation

  • xxHash

    Extremely fast non-cryptographic hash algorithm

  • libcrc

    Multi platform CRC library

  • murmur

    C implementation of MurMur Hashing

  • t1ha

    Fast Positive Hash library

Image Processing

  • libccv

    Modern Computer Vision Library

JSON

  • Jansson

    C library for encoding, decoding and manipulating JSON

  • jsmn

    Minimalistic JSON parser

  • json-c

    Library for working with JSON

  • parson

    Lightweight JSON library written in C

  • WJElement

    Advanced JSON manipulation library, with support for JSON Schema

  • YAJL

    Fast C JSON streaming parser library

Learning, Reference and Tutorials / Online

Learning, Reference and Tutorials / Physical

Macros

  • P99

    Suite of macros to implement advanced features like default function arguments, scope-bound resources, etc. (Requires C99)

Memory Allocators

  • jemalloc

    General purpose malloc(3) implementation that emphasizes fragmentation avoidance and scalable concurrency support, commonly used in production systems

  • dlmalloc

    Doug Lea's malloc(3) implementation, useful for academic and research purposes

  • Hoard

    A Fast, Scalable, and Memory-efficient Malloc for Linux, Windows, Mac, and Solaris

  • nedmalloc

    An EXTREMELY FAST portable thread caching malloc(3) implementation written in C

  • rpmalloc

    Cross platform, lock-free memory allocator

Multimedia

  • FFMPEG

    Complete, cross-platform solution to record, convert and stream audio and video. or

  • GStreamer

    Framework for audio and visual media

  • lodepng

    Simple PNG image decoder and encoder, requiring no other dependencies

  • libsoup

    GNOME HTTP client/server library. Uses GObject

  • libmpv

    Music-playing library. Compile with to not have the music player

  • libsoundio

    Library for cross-platform, real-time audio input and output. Has a range of back-ends

Networking and Internet

  • asnlc

    Compiler of ASN.1 specifications into C source code

  • czmq

    High-level binding for ZeroMQ

  • GNU adns

    Advanced, easy-to-use, asynch-capable DNS client library and utilities

  • GNU SASL

    Implementation of the Simple Authentication and Security Layer and a few common SASL mechanism

  • GnuTLS

    Secure communication library, implementing SSL, TLS and DTLS

  • gumbo-parser

    HTML5 parsing library in C99

  • http-parser

    HTTP request/response parser

  • ldns

    Library to simplify DNS programming

  • libcurl

    Client-side URL transfer library, supporting a wide range of formats

  • LibEtPan

    Mail library providing an efficient network for IMAP, SMTP, POP and NNTP

  • libev

    Yet another event loop

  • libuv

    Cross-platform asynchronous I/O

  • libevent

    Event loop replacement for network servers

  • libgss

    Generic Security Service

  • libhttpd

    Library to add basic web server capabilities to an application or embedded device

  • libidn

    Implementation of the Stringprep, Punycode and IDNA specifications

  • libmicrohttpd

    Small C library that makes it easy to run an HTTP server as part of another application

  • libsagui

    Sagui is a cross-platform C library which helps to develop web servers or frameworks

  • libvldmail

    Your friendly e-mail address validation library

  • lwan

    Experimental, scalable, high-performance HTTP server

  • mongoose

    Embedded web server for C

  • MQTT-C

    Portable MQTT C client for embedded systems and PCs alike

  • nanomsg

    C-based implementation of ZeroMQ

  • OpenSSL

    Implementation of the SSL and TLS protocols, and also includes a cryptography library

  • oSip

    SIP implementation in C without additional dependencies

  • pig

    Linux packet crafting tool

  • s2n

    C99 implementation of the TLS/SSL protocols, designed to be simple, fast and with security as a priority

  • socket99

    C99 wrapper for the BSD sockets API

  • Tox

    Communication platform, designed to be a Skype-killer

  • twitc

    Mini C library for interacting with the Twitter OAuth API

  • librg

    Library for building simple and elegant cross-platform mmo client-server solutions

  • dyad

    Asynchronous networking library

  • h2o

    Optimized HTTP/1, HTTP/2 high performance server/library

Networking and Internet / Web Frameworks

  • balde

    Microframework for C based on GLib

  • onion

    C library to create simple HTTP servers and Web Applications

  • kore

    Easy to use, scalable and secure web application framework for writing web APIs in C

  • klone

    KLone is a fully-featured, multiplatform, web application development framework

  • duda

    Duda I/O is an event-driven and high performant web services framework written in C

Numerical

  • apophenia

    Library for statistical and scientific computing

  • ATLAS

    Automatically Tuned Linear Algebra Software

  • BLAS

    Basic Linear Algebra Subprograms; a set of routines that provide vector and matrix operations

  • CDFLIB

    Library with routines to evaluate cumulative density functions fo a variety of standard probability distributions. Also can compute one parameter of the CDF given the others. (No license given)

  • 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

  • Cuba

    Library for multidimensional numerical integration

  • FFTW

    The Fastest Fourier Transform in the West; a highly-optimized fast Fourier transform routine

  • FLINT

    Fast Library for Number Theory; a library supporting arithmetic with numbers, polynomials, power series and matrices, among others

  • GLPK

    GNU Linear Programming Kit; a package designed for solving large-scale linear programming, mixed integer programming and other related problems

  • GMP

    GNU Multple Precision Arithmetic Library; a library for arbitrary-precision arithmetic. and

  • GNU MPC

    Library for complex number arithmetic

  • GNU MPFR

    Library for arbitrary-precision floating-point arithmetic. or

  • GNU MPRIA

    Portable mathematics library for multi-precision rational interval arithmetic

  • GSL

    The GNU Scientific Library; a sophisticated numerical library

  • igraph

    Library for creating and manipulating large graphs

  • KISS FFT

    Very simple fast Fourier transform library

  • LAPACKE

    C interface to

  • PARI/GP

    Computer algebra system for number theory; includes a compiler to C

  • PETSc

    Suite of data structures and routines for scalable parallel solution of scientific applications modelled by partial differential equations

  • PROB

    Library that handles various discrete and continuous probability density functions

  • Yeppp!

    Very fast, SIMD-optimized mathematical library

Parallel Programming

  • cchan

    Small library for channel constructs for inter-thread communication

  • ck

    Concurrency primitives, safe memory reclamation mechanisms and non-blocking data structures

  • mill

    Go-style concurrency in C

  • libdill

    Structured concurrency in C

  • MPICH

    Another implementation of MPI

  • OpenMP

    Set of C pragmas designed to allow for easy parallelization of code

  • OpenMPI

    Message passing interface implementation

  • pth

    Portable implementation for non-preemptive priority-based scheduling for multiple threads of execution

  • pthreads

    The POSIX thread library

  • SLEPc

    Software library for the solution of large, sparse eigenvalue problems on parallel computers

  • TinyCThread

    Portable, small implementation of the C11 threads API

Parsers

  • hammer

    Parser combinators for binary formats

  • iniparser

    Parser for files

  • libconfini

    Yet another INI parser

  • libYAML

    YAML 1.1 parser and emitter

  • mpc

    Parser combinator library

  • libucl

    Universal configuration library parser

Regex

  • PCRE

    Implementation of regexes identical to that of Perl 5

  • regexp4

    Simple and complete implementation of regular expressions with its own sintax

  • SLRE

    Super Light Regular Expression library; a very small implementation of a subset of Perl regex syntax

  • sregex

    Non-backtracking NFA/DFA-based Perl-compatible regex engine library

  • TRE

    POSIX-compliant, feature-full regex library

Serialization

  • binn

    Binary serialization format meant to be compact, fast and easy-to-use

  • c-capnproto

    Implementation of the Cap'n Proto serialization protocol

  • cmp

    Implementation of the serialization protocol

  • libavro

    C implementation of the Avro data serialization system

  • mpack

    Another implementation of the serialization protocol

  • netstring-c

    Netstring encoder and decoder

  • protobuf-c

    Implementation of Google Protocol Buffer in C

  • xdr

    External Data Representation; a standard for data serialization

Source Code Collections

  • CCAN

    Modelled after Perl's CPAN, this is a big collection of C code that does stuff. The full list is

  • clib

    Something of a package manager for C. Comes with a

  • gnulib

    Collection of common GNU code

  • libdjb

    Collection of libraries doing various things

Standard Libraries

  • Bionic

    Google's C standard library, developed for Android

  • dietlibc

    C standard library designed for the smallest possible binaries

  • glibc

    The GNU C Library; an implementation of the C standard library

  • musl

    Standard C library, compatible with POSIX 2008 and C11. Designed for static linking

String Manipulation

  • bstrlib

    The Better String Library. and

  • ICU

    International Components for Unicode; a library for Unicode support

  • libunistring

    Library for manipulating Unicode strings in C

  • libgiconv

    Text conversion library. or

  • SDS

    Simple Dynamic Strings; a library for handling C strings in a simpler way, but one that is compatible with normal C string functions. Available via

  • shoco

    Compressor for small text strings

  • smaz

    Efficient string compression library

  • utf8.h

    Single header utf8 string functions

  • utf8proc

    Small, clean library for processing UTF-8 Unicode data

Testing

  • CHEAT

    Very simple unit testing framework

  • Check

    Unit testing framework for C

  • CMock

    Mock/stub generator for C

  • cmocka

    Unit testing framework with support for mock objects

  • Criterion

    KISS, non-intrusive C test framework

  • CUnit

    Another unit testing framework for C

  • Cutest

    Library for unit testing with memory leak detection (Linux, freeBSD and Windows)

  • minunit

    Minimal unit testing framework for C

  • munit

    Small but full-featured unit testing framework for C with no dependencies

  • Unity

    Simple unit testing framework for C

Text Editor Extensions / Atom

Text Editor Extensions / Emacs

  • CEDET

    Collection of Emacs Development Environment Tools; designed to provide IDE-like features to Emacs. Built-in

  • Flycheck

    Modern syntax checking. For C, it can use either GCC or Clang as a back-end

  • Yasnippet

    Template system, with C templates for common code snippets

Text Editor Extensions / Vim

Tools

  • Artistic Style

    Fast and small automatic source code formatter that supports C

  • address-sanitizer

    Fast memory error detector

  • biicode

    Modern dependency manager for C

  • c

    Compile and execute C "scripts" in one go on the command line. Also has shebang support

  • c99sh

    Run C files using hash-bang

  • CBMC

    C Bounded Model Checker; a tool for verification of array bounds, pointer safety and user-specified assertions

  • cdecl

    Online service to translate C declarations into English and vice versa

  • cinclude2dot

    Graphs include dependencies in a C project using Graphviz

  • Complexity

    Tool for measuring the complexity of C source code

  • CScout

    Source code analyzer and refactoring browser for collections of C programs

  • DDD

    Graphical front-end for a range of command-line debuggers

  • GDB

    The GNU Project debugger; a debugger for C

  • Glade

    RAD tool to enable quick development of GTK+ GUIs

  • GMSL

    GNU Make Standard Library; a collection of additional functionality for GNU Make

  • GNU Global

    Source code tagging tool which works with C

  • gprof

    Performance analysis tool. Part of GNU binutils

  • Highlight

    Converts source code to formatted text with nice highlighting

  • include-what-you-use

    Helps find unecessary inclusions and make suggestions for fixing them. Based on LLVM/Clang (and only works with it)

  • indent

    Formats C source code automatically to make it easier to read. Also converts from one style of source to another

  • rr

    Debugger that records non-deterministic executions to allow for deterministic debugging

  • tup

    Very fast, file-based, cross-platform build system

  • unifdef

    Removes #ifdef and #if directives with their delimited text without touching any other part of the file. and

  • Valgrind

    Range of dynamic analysis tools, including a leak checker

Utilities

  • ApeTagLibs

    C library for working with APEv2 tags

  • bfd

    Library for manipulating binary object files. Part of GNU binutils

  • cf4ocl

    The C Framework for OpenCL; a cross-platform object-oriented framework for developing and benchmarking projects. or

  • CommonMark

    C implementation of the CommonMark spec

  • CException

    C implementation of exceptions

  • docopt.c

    C implementation of a command-line option parser

  • dyncall

    Another foreign function interface library

  • FANN

    Fast Artifical Neural Network library; an implementation of neural networks

  • Firm

    C library that provides a graph-based intermediate representation, optimizations and assembly code generation suitable for use in compilers. Comes with an example C front-end under the same license

  • Genann

    Simple neural network library in C

  • gjrand

    Library of random-number generation routines. or

  • GNU FreeIPMI

    In-band and out-of-band IPMI implementation

  • GNU gperf

    Perfect hash function generator, given a list of strings. Outputs C code

  • GNU Libffcall

    Collection of libraries for building foreign function interfaces

  • gperftools

    Collection of utilities for measuring and improving performance

  • huffandpuff

    Minimal Huffman encoder and decoder

  • kdtree

    Simple library for working with KD-trees

  • Kitsune

    Efficient, general-purpose framework for dynamic software updating

  • libavl

    Library containing a range of self-balancing binary trees

  • libbson

    BSON utility library

  • libCello

    Library introducing higher-level programming to C

  • libffi

    Portable foreign-function interface library

  • libgit2

    Pure C implementation of Git

  • libimobiledevice

    Cross-platform protocol library to communicate with iThings. or

  • libnfc

    Platform-independent Near-Field Communication library

  • libPhenom

    Deprecated, here for archival purposes. Eventing framework for building high-scalability and high-performance systems

  • ncurses

    Coloured terminal UI library

  • nope.c

    C-language-based, ultra-light software platform for scalable server-side and networking applications (think node.js for C programmers)

  • pbc

    Protocol buffers library

  • rabbitmq-c

    Client library for

  • Ragel

    DSL for state machines that compiles to C

  • Tinyexpr

    Tiny recursive-descent parser, compiler and evaluation engine for simple mathematical expressions

  • uthash

    Hash table implementation, allowing existing structures to be stored in a hash table easily

  • cpu_features

    A cross platform C99 library to get cpu features at runtime

  • pblog

    Small, low overhead, structured logging library intended for logging formware events

  • libelf

    ELF object file access library in C

  • mcpp

    Portable C preprocessor

  • libusb

    Generic access to USB devices

  • alsa-lib

    Userspace library to interact with ALSA

  • Capstone

    Dissasembly/disassembler framework

XML

  • Expat

    Stream-oriented XML parser

  • libxml2

    Standards-compliant, portable XML parser

  • mini-xml

    Small XML reading and writing library. No dependencies aside from C standard library

Add a GitHub project

Missing a project or an awesome list? Paste its GitHub URL and we fetch it right away.