Giter Club home page Giter Club logo

awesome-c's Introduction

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.