Skip to content

A curated list of awesome C frameworks, libraries, resources and other shiny things. Inspired by all the other awesome-... projects out there.

License

Notifications You must be signed in to change notification settings

island-org/awesome-c

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 

Repository files navigation

Awesome C

A curated list of C good stuff. I give preference to free software for code, and sellers who aren't evil for physical resources.

This is released under the GNU Free Documentation License - its text is provided in the LICENSE file.

Compilers

  • Clang - A C compiler for LLVM. Supports C11. NCSA.
  • GCC - Provides a C compiler as part of its compiler set. Supports C11 and OpenMP. GNU GPL3.
  • PCC - A very old C compiler. Supports C99. Various licenses
  • TCC - Tiny C Compiler; a small, fast C compiler. Supports C99 (except complex types). GNU GPL2.1.

Database

This lists databases and data stores with C APIs.

  • leveldb - A simple persistent key-value store. Available via clib. 3-clause BSD.
  • LMDB - An ultra-fast, ultra-compact key-value embedded data store. newOpenLDAP.
  • MariaDB - A robust, scalable and reliable SQL server, designed to be a drop-in replacement for MySQL. 3-clause BSD.
  • PostgreSQL - A powerful object-relational database system. PostgreSQL licence
  • Redis - An advanced key-value store. 3-clause BSD.
  • SQLite - A self-contained, serverless, zero-configuration, transactional SQL database engine with a C interface. Public domain.
  • UnQLite - A self-contained, serverless, zero-configuration, transactional NoSQL engine with a C interface. FreeBSD.

Editors

These are specifically fancier, IDE-type editors. If you want a programmer's text editor, and yours doesn't support C, I'd be quite surprised.

Frameworks

This section has big libraries that provide data structures and other stuff you expect of a 'modern' standard library.

  • APR - Apache Portable Runtime; another library of cross-platform utility functions. Apache2.0.
  • C Algorithms - A collection of common algorithms and data structures for C. ISC.
  • EFL - A large collection of useful data structures and functions. Various licenses, all free.
  • GLib - A library of utility functions and structures, designed to be portable, efficient and powerful. GNU LGPL3.
  • GIO - A modern and easy-to-use VFS API. GNU LGPL3.
  • GObject - An object-oriented system and object model for C. GNU LGPL3.
  • libnih - A lightweight library of C functions and structures. GNU GPL2.1.
  • libU - A small library of basic utilities, including memory allocation, string manipulation and logging. 3-clause BSD.
  • stb - A range of single-file libraries for C. Public domain.

Game Programming

  • Allegro - A cross-platform, video game development and multimedia library. zlib.
  • Corange - A game engine in pure C. FreeBSD.
  • CSFML - A binding for SFML in C. zlib.
  • FreeGLUT - An alternative to the OpenGL Utility Toolkit. Allows the creation and management of windows with OpenGL contexts. X11.
  • GLFW - A multi-platform library for creating windows with OpenGL contexts. zlib.
  • ioquake3 - The Quake3 engine, freed at last. GNU GPL2.1
  • SDL - A cross-platform library designed to provide low-level access to audio, keyboard, mouse, joystick and graphics hardware via OpenGL. zlib.

Generic Programming

  • klib - Small and lightweight implementations of common algorithms and data structures. Expat.
  • SGLIB - Simple Generic Library; an implementation of a range of generic programming structures and idioms in C. GNU GPL3.

Graphics

Graphical User Interface

These are specifically widget toolkits.

JSON

  • Jannson - A C library for encoding, decoding and manipulating JSON. Expat.
  • jsmn - A minimalistic JSON parser. Expat.
  • WJElement - Advanced JSON manipulation library, with support for JSON Schema. GNU GPL3.
  • YAJL - A fast C JSON streaming parser library. ISC

Learning and Tutorials

This is a list of resources for learning C programming in general, or something useful relating to C programming.

Online

Physical

Multimedia

Networking and Internet

Numerical

Package Manager

  • CCAN - Modelled after Perl's CPAN, this is a big collection of C code that does stuff. The full list is here. Various licenses (all free software).
  • clib - Something of a package manager for C. Comes with a bunch of libraries of its own. Expat.

Parallel Programming

  • OpenMP - A set of C pragmas designed to allow for easy parallelization of code. Standard (licensing not applicable).
  • TinyCThread - A portable, small implementation of the C11 threads API. zlib.

Regex

"Some people, when confronted with a problem, think 'I know, I'll use regular expressions'. Now they have two problems." - Jamie Zawinski.

  • PCRE - An implementation of regexes identical to that of Perl 5. 3-clause BSD.
  • SLRE - Super Light Regular Expression library; a very small implementation of a subset of Perl regex syntax. GNU GPL2.1.
  • TRE - A POSIX-compliant, feature-full regex library. FreeBSD.
  • T-Rex - Another tiny regex library. zlib.

Serialization

  • c-capnproto - An implementation of the Cap'n Proto serialization protocol. Expat.
  • msgpackalt - A simple, light and fast binary serialization library. 3-clause BSD.
  • protobuf-c - An implementation of Google Protocol Buffer in C. FreeBSD.
  • xdr - External Data Representation; a standard for data serialization. Standard (no license applicable).

Standard Libraries

This contains standard C libraries.

  • Bionic - Google's C standard library, developed for Android. 3-clause BSD
  • dietlibc - A C standard library designed for the smallest possible binaries. GNU GPL2.1.
  • glibc - The GNU C Library; an implementation of the C standard library. GNU LGPL3.
  • musl - A standard C library, compatible with POSIX 2008 and C11. Designed for static linking. Expat.

Testing

Tools

This is a list of useful programs to help you write and debug C code which are not editors, libraries or compilers.

  • aimake - A build tool designed to avoid complex configurations. GNU GPL3.
  • c99sh - Run C files using hash-bang. No license specified.
  • GDB - The GNU Project debugger; a debugger for C. GNU GPL3.
  • gprof - A performance analysis tool. Part of GNU binutils. GNU GPL3.
  • rr - A debugger that records non-deterministic executions to allow for deterministic debugging. FreeBSD.
  • Valgrind - A range of dynamic analysis tools, including a leak checker. GNU GPL2.1.

Utilities

This is a 'catch-all' category for anything that doesn't fit well anywhere else.

XML

"XML is crap. Really. There are no excuses. XML is nasty to parse for humans, and it's a disaster to parse even for computers. There's just no reason for that horrible crap to exist." - Linus Torvalds

About

A curated list of awesome C frameworks, libraries, resources and other shiny things. Inspired by all the other awesome-... projects out there.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published