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

marcelaraujo/awesome-c

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 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

  • 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.
  • 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.

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.

Graphical User Interface

These are specifically widget toolkits.

JSON

  • Jannson - A C library for encoding, decoding and manipulating JSON. 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

  • FFMPEG - A complete, cross-platform solution to record, convert and stream audio and video. GNU LGPL2.1, with some parts under GNU GPL2.1.
  • lodepng - A simple PNG image decoder and encoder, requiring no other dependencies. 3-clause BSD.

Networking and Internet

Numerical

  • FFTW - The Fastest Fourier Transform in the West; a highly-optimized fast Fourier transform routine. GNU GPL2.1.
  • GMP - GNU Multple Precision Arithmetic Library; a library for arbitrary-precision arithmetic. GNU GPL2.1 and GNU LGPL2.1.
  • GSL - The GNU Scientific Library; a sophisticated numerical library. GNU GPL3.
  • KISS FFT - A very simple fast Fourier transform library. 3-clause BSD.
  • Yeppp! - Very fast, SIMD-optimized mathematical library. 3-clause BSD.

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.

Standard Libraries

This includes both C standard library implementations and libraries seeking to provide most of what a 'modern' standard library would have (containers, string processing, etc).

  • APR - Apache Portable Runtime; another library of cross-platform utility functions. Apache2.0.
  • Bionic - Google's C standard library, developed for Android. 3-clause BSD
  • C Algorithms - A collection of common algorithms and data structures for C. ISC.
  • dietlibc - A C standard library designed for the smallest possible binaries. GNU GPL2.1.
  • GLib - A library of utility functions and structures, designed to be portable, efficient and powerful. GNU LGPL3.
  • glibc - The GNU C Library; an implementation of the C standard library. 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.
  • musl - A standard C library, compatible with POSIX 2008 and C11. Designed for static linking. Expat.
  • stb - A range of single-file libraries for C. Public domain.

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