Removing redundant text, moving trezor-crypto to Crypto section

This commit is contained in:
Koz Ross committed 2017-11-05 12:37:28 +13:00
1 parent c3cce00346
commit c5344e0211
1 file changed
+155 -157
+155 -157
View File
@@ -67,85 +67,83 @@ Basically, if your university calls it AI, it lives here.
* [ccv][195] - C-based/Cached/Core Computer Vision library; modern computer
vision. [BSD-3-Clause][6].
* [Cranium][525] - A portable, header-only ANN library in C99. [MIT][11].
* [Cranium][525] - Portable, header-only ANN library in C99. [MIT][11].
* [FANN][325] - Fast Artifical Neural Network library; an implementation of
neural networks. [GPL-2.0][8].
* [Genann][412] - A simple ANN in C89, without additional dependencies. [Zlib][49].
* [libdeep][477] - A deep learning library. [BSD-3-Clause][6].
* [Genann][412] - Simple ANN in C89, without additional dependencies. [Zlib][49].
* [libdeep][477] - Deep learning library. [BSD-3-Clause][6].
## Build Systems ##
Tools that automate the building and testing of projects in C.
* [Autoconf][305] - An extensible package of M4 macros that produce shell
* [Autoconf][305] - Extensible package of M4 macros that produce shell
scripts to automatically configure software source code packages. Part of the
Autotools. [GPL-3.0+][41].
* [Automake][306] - A tool for automatically generating ``Makefile.in`` files
* [Automake][306] - Tool for automatically generating ``Makefile.in`` files
compliant with the GNU Coding Standards. Requires the use of Autoconf. Part of
the Autotools. [GPL-3.0+][41].
* [GNU Make][324] - A tool which controls the generation of executables and other
* [GNU Make][324] - Tool which controls the generation of executables and other
non-source files of a program. [GPL-3.0+][41].
* [Libtool][172] - A generic library support script. Part of the
Autotools. [GPL-3.0+][41].
* [Meson][368] - An extremely fast, user-friendly build system. Based on Ninja. [Apache-2.0][32].
* [Premake][435] - A command-line utility which reads a scripted definition of a
* [Libtool][172] - Generic library support script. Part of the Autotools.
[GPL-3.0+][41].
* [Meson][368] - Extremely fast, user-friendly build system. Based on Ninja. [Apache-2.0][32].
* [Premake][435] - Command-line utility which reads a scripted definition of a
software project and uses it to generate project files for Visual Studio and
GNU Make. Other targets are also being worked on. [BSD-3-Clause][6].
* [tup][326] - A very fast, file-based, cross-platform build
system. [GPL-2.0][8].
* [zproject][420] - A project generator and build system support.
[MPL-2.0][227].
* [tup][326] - Very fast, file-based, cross-platform build system. [GPL-2.0][8].
* [zproject][420] - Project generator and build system support tool. [MPL-2.0][227].
## Compilers ##
Compilers, as well as compiler- and compilation-related tooling.
* [ccache][466] - A compiler cache designed to speed up recompilation. [GPL-3.0+][41].
* [Clang][38] - A compiler for LLVM. Supports C11. [NCSA][39].
* [distcc][452] - A program to allow builds to be distributed among several
* [ccache][466] - Compiler cache designed to speed up recompilation. [GPL-3.0+][41].
* [Clang][38] - Compiler for LLVM. Supports C11. [NCSA][39].
* [distcc][452] - Program that allows builds to be distributed among several
machines. [GPL-2.0+][8].
* [GCC][40] - Provides a C compiler as part of its compiler set. Supports
C11. [GPL-3.0+][41].
* [PCC][74] - A venerable compiler. Supports C99. [Various licenses][75], all
* [PCC][74] - Venerable compiler. Supports C99. [Various licenses][75], all
open-source.
## Compression ##
* [blosc][445] - An extremely fast, multi-threaded, meta-compressor
library. Various licenses, all open-source.
* [blosc][445] - Extremely fast, multi-threaded, meta-compressor library.
Various licenses, all open-source.
* [clzip][432] - C version of the high-quality data compressor [Lzip][433] (LZMA
implementation). [GPL-2.0+][8].
* [CRoaring][481] - C implementation of [Roaring bitmaps][482]. [Apache-2.0][32].
* [DENSITY][506] - A super-fast compression library. [BSD-3-Clause][6].
* [heatshrink][514] - A data compression/decompression library for embedded and
* [DENSITY][506] - Super-fast compression library. [BSD-3-Clause][6].
* [heatshrink][514] - Data compression/decompression library for embedded and
real-time systems. [ISC][61].
* [fast\_zlib][533] - Improved zlib, which runs 2 to 10 times faster.
[BSD-3-Clause][6].
* [huffandpuff][214] - A minimal Huffman encoder and decoder. Public domain.
* [libbzip2][427] - A patent-free, high-quality data compression
* [huffandpuff][214] - Minimal Huffman encoder and decoder. Public domain.
* [libbzip2][427] - Patent-free, high-quality data compression
library. [BSD-4-Clause][310].
* [lz4][508] - Library for an extremely fast compression algorithm.
[BSD-2-Clause][24].
* [lzo][338] - A very fast data compression library. [GPL-2.0+][8].
* [shoco][363] - A compressor for small text strings. [MIT][11].
* [SIMDComp][519] - A simple library for compressing lists of integers using
* [lzo][338] - Very fast data compression library. [GPL-2.0+][8].
* [shoco][363] - Compressor for small text strings. [MIT][11].
* [SIMDComp][519] - Simple library for compressing lists of integers using
binary packing. Makes use of SIMD instructions on x86. [BSD-3-Clause][6].
* [smaz][364] - An efficient string compression library. [BSD-3-Clause][6].
* [squash][393] - A compression abstraction library, complete with some
* [smaz][364] - Efficient string compression library. [BSD-3-Clause][6].
* [squash][393] - Compression abstraction library, complete with some
utilities. [MIT][11].
* [TurboPFor][471] - Fastest integer compression. [GPL-2.0+][8].
* [TurboRLE][484] - Most efficient run-length encoding. [GPL-2.0+][8].
* [zip][520] - A really really small zip archive processing library.
* [zip][520] - Really really small zip archive processing library.
[Unlicense][521].
* [Zlib][230] - A massively-spiffy yet delicately-unobtrusive compression
* [Zlib][230] - Massively-spiffy yet delicately-unobtrusive compression
library. [BSD-3-Clause][6].
* [Zstandard][510] - A fast, lossless compression algorithm, targeting real-time
* [Zstandard][510] - Fast, lossless compression algorithm, targeting real-time
compression scenarios at zlib-level or better compression ratios.
[BSD-3-Clause][6].
## Concurrency and Parallelism ##
* [cchan][243] - A small library for channel constructs for inter-thread
* [cchan][243] - Small library for channel constructs for inter-thread
communication. Public domain.
* [cf4ocl][311] - The C Framework for OpenCL; a cross-platform object-oriented
framework for developing and benchmarking [OpenCL][312] projects.
@@ -156,26 +154,26 @@ Compilers, as well as compiler- and compilation-related tooling.
non-blocking data structures. [BSD-2-Clause][24].
* [libconcurrent][390] - Concurrent programming library, using coroutines, for
C11. [BSD-3-Clause][6].
* [libdill][442] - A library which makes structured concurrent programming
* [libdill][442] - Library which makes structured concurrent programming
easy. [MIT][11].
* [libhl][478] - A library implementing a thread-safe API to manage a range of data
* [libhl][478] - Library implementing a thread-safe API to manage a range of data
structures. Also provides some supporting functions and structures for
concurrent and lockfree programming. [LGPL-3.0][5].
* [liburcu][474] - A data synchronization library, which scales linearly with the
* [liburcu][474] - Data synchronization library, which scales linearly with the
number of cores. [LGPL-2.1+][15].
* [mill][352] - Go-style concurrency. [MIT][11].
* [OpenMP][37] - A set of pragmas designed to allow for easy parallelization of
* [OpenMP][37] - Set of pragmas designed to allow for easy parallelization of
code. Standard (licensing not applicable).
* [OpenMPI][284] - A message passing interface implementation. [BSD-3-Clause][6].
* [pal][459] - An optimized library for maths, parallel processing and data
* [OpenMPI][284] - Message passing interface implementation. [BSD-3-Clause][6].
* [pal][459] - Optimized library for maths, parallel processing and data
movement. [Apache-2.0][32].
* [PETSc][282] - A suite of data structures and routines for scalable parallel
* [PETSc][282] - Suite of data structures and routines for scalable parallel
solution of scientific applications modelled by partial differential
equations. [BSD-2-Clause][24].
* [pth][180] - A portable implementation for non-preemptive priority-based
* [pth][180] - Portable implementation for non-preemptive priority-based
scheduling for multiple threads of execution. [GPL-3.0+][41].
* [pthreads][146] - The POSIX thread library. Standard (no license applicable).
* [TinyCThread][115] - A portable, small implementation of the C11 threads
* [pthreads][146] - POSIX thread library. Standard (no license applicable).
* [TinyCThread][115] - Portable, small implementation of the C11 threads
API. [Zlib][49].
## Crypto ##
@@ -183,54 +181,54 @@ Compilers, as well as compiler- and compilation-related tooling.
Mostly library implementations of well-known cryptographic algorithms or
protocols.
* [GNU SASL][160] - An implementation of the Simple Authentication and Security
* [GNU SASL][160] - Implementation of the Simple Authentication and Security
Layer and a few common SASL mechanism. [GPL-3.0+][41].
* [GnuTLS][112] - A secure communication library, implementing SSL, TLS and
* [GnuTLS][112] - Secure communication library, implementing SSL, TLS and
DTLS. [LGPL-2.1+][15].
* [libgcrypt][142] - A general-purpose cryptography library, with a range of
* [libgcrypt][142] - General-purpose cryptography library, with a range of
available ciphers. [LGPL-2.1+][15].
* [OpenSSL][110] - Implementation of the SSL and TLS protocols. Also includes a
cryptography
library. [Dual Licensed under the OpenSSL License and the SSLeay License][111].
* [liboqs][493] - A library for quantum-resistant cryptographicl algorithms.
* [liboqs][493] - Library for quantum-resistant cryptographicl algorithms.
[MIT][11].
* [libsodium][198] - A modern and easy-to-use crypto library. [MIT][11].
* [libtomcrypt][299] - A fairly comprehensive, modular and portable
* [libsodium][198] - Modern and easy-to-use crypto library. [MIT][11].
* [libtomcrypt][299] - Fairly comprehensive, modular and portable
cryptographic toolkit. Public domain.
* [mbed TLS][291] - Another crypto implementation. [Apache-2.0][32].
* [MIRACL][480] - Multiprecision Integer and Rational Arithmetic Cryptographic
Library; an SDK for elliptic curve cryptography. [AGPL-1.0+][381].
* [retter][507] - A collection of hash functions, ciphers, tools, libraries and
* [retter][507] - Collection of hash functions, ciphers, tools, libraries and
materials related to cryptography and security. Public domain.
* [s2n][359] - A C99 implementation of the TLS/SSL protocols, designed to be
* [s2n][359] - C99 implementation of the TLS/SSL protocols, designed to be
simple, fast and with security as a priority. [Apache-2.0][32].
* [sphlib][526] - A set of implementations of various hash functions, including
* [sphlib][526] - Set of implementations of various hash functions, including
several cryptographic ones. [MIT][11].
## Database ##
Databases and data stores with C APIs.
* [BerkeleyDB][380] - A library for a high-performance embedded database for
* [BerkeleyDB][380] - Library for a high-performance embedded database for
key-value data. [AGPL-1.0][381].
* [Groonga][524] - Columnar store with full-text search. [LGPL-2.1][15].
* [Hiredis][201] - A minimalistic client library for Redis. [BSD-3-Clause][6].
* [libmongoc][233] - A high-performance client library for [MongoDB][234]. [Apache-2.0][32].
* [LMDB][105] - An ultra-fast, ultra-compact key-value embedded data store. [OLDAP-2.8][106].
* [MariaDB][25] - A robust, scalable and reliable SQL server, designed to be a
* [Hiredis][201] - Minimalistic client library for Redis. [BSD-3-Clause][6].
* [libmongoc][233] - High-performance client library for [MongoDB][234]. [Apache-2.0][32].
* [LMDB][105] - Ultra-fast, ultra-compact key-value embedded data store. [OLDAP-2.8][106].
* [MariaDB][25] - Robust, scalable and reliable SQL server, designed to be a
drop-in replacement for MySQL. [BSD-3-Clause][6].
* [PostgreSQL][121] - A powerful object-relational database system. [PostgreSQL][122].
* [recutils][360] - A set of tools and a library for accessing human-editable,
* [PostgreSQL][121] - Powerful object-relational database system. [PostgreSQL][122].
* [recutils][360] - Set of tools and a library for accessing human-editable,
plaintext database files called recfiles. [GPL-3.0+][41].
* [Redis][51] - An advanced key-value store. [BSD-3-Clause][6].
* [sophia][244] - A modern, embeddable key-value database. [BSD-2-Clause][24].
* [sparkey][509] - A simple constant key/value storage library. Designed for
* [Redis][51] - Advanced key-value store. [BSD-3-Clause][6].
* [sophia][244] - Modern, embeddable key-value database. [BSD-2-Clause][24].
* [sparkey][509] - Simple constant key/value storage library. Designed for
read-heavy loads with infrequent, large bulk inserts. [Apache-2.0][32].
* [SQLite][22] - A self-contained, serverless, zero-configuration, transactional
* [SQLite][22] - Self-contained, serverless, zero-configuration, transactional
SQL database engine. Public domain.
* [UnQLite][23] - A self-contained, serverless, zero-configuration,
* [UnQLite][23] - Self-contained, serverless, zero-configuration,
transactional NoSQL engine. [BSD-2-Clause][24].
* [WhiteDB][512] - A lightweight database library, operating entirely in main
* [WhiteDB][512] - Lightweight database library, operating entirely in main
memory. [GPL-3.0+][41].
## Debugging ##
@@ -239,7 +237,7 @@ Because we all have to do it sometimes. Various tools for making debugging
easier or better, as well as libraries or code that allows better debugging
work.
* [C-Reduce][403] - A tool that takes a large C file with a property of interest
* [C-Reduce][403] - 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. [BSD-3-Clause][6].
@@ -247,30 +245,30 @@ work.
bounds, pointer safety and user-specified assertions. [BSD-4-Clause][310].
* [cflow][404] - Analyzes a collection of source files and prints a graph
charting control flow in the program. [GPL-3.0+][41].
* [Complexity][307] - A tool for measuring the complexity of source
* [Complexity][307] - Tool for measuring the complexity of source
code. [GPL-3.0+][41].
* [CScout][410] - A source code analyzer and refactoring browser for C
* [CScout][410] - Source code analyzer and refactoring browser for C
programs. [GPL-3.0][41].
* [DDD][320] - A graphical front-end for a range of command-line
* [DDD][320] - Graphical front-end for a range of command-line
debuggers. [GPL-3.0+][41].
* [debug][467] - A one-header library for easier 'printf debugging'.
* [debug][467] - One-header library for easier 'printf debugging'.
[MIT][11].
* [GDB][87] - The GNU Project debugger. [GPL-3.0+][41].
* [lldb][468] - The LLVM debugger. [NCSA][39].
* [rr][95] - A debugger that records non-deterministic executions to allow for
* [GDB][87] - GNU Project debugger. [GPL-3.0+][41].
* [lldb][468] - LLVM debugger. [NCSA][39].
* [rr][95] - Debugger that records non-deterministic executions to allow for
deterministic debugging. [BSD-2-Clause][24].
* [Valgrind][85] - A range of dynamic analysis tools, including a leak
* [Valgrind][85] - Range of dynamic analysis tools, including a leak
checker. [GPL-2.0][8].
## Documentation Generation ##
* [Cxref][317] - Generates documentation in either LaTeX, HTML, RTF or
SGML. [GPL-2.0][8].
* [DocOnce][322] - A modestly-tagged markup language that can be used to
* [DocOnce][322] - Modestly-tagged markup language that can be used to
generate a range of formats. [BSD-3-Clause][6].
* [Doxygen][318] - The de-facto standard tool for generating documentation from
* [Doxygen][318] - De-facto standard tool for generating documentation from
annotated sources. Can generate a large range of formats. [GPL-2.0][8].
* [GTK-Doc][319] - A tool for generating documentation from annotated
* [GTK-Doc][319] - Tool for generating documentation from annotated
sources. Has support for the Autotools. [GPL-2.0][15].
## Editors ##
@@ -278,13 +276,13 @@ work.
Fancier, IDE-type editors. If you want a programmer's text editor, look
elsewhere. Besides, whatever you use most likely supports C anyway.
* [Anjuta DevStudio][42] - The GNOME IDE. [GPL-2.0][15].
* [Code::Blocks][249] - An extensible, configurable IDE supporting
* [Anjuta DevStudio][42] - GNOME IDE. [GPL-2.0][15].
* [Code::Blocks][249] - Extensible, configurable IDE supporting
C. [GPL-3.0][41].
* [CodeLite][45] - A cross-platform IDE. [GPL-2.0][8].
* [Eclipse][258] - An IDE written in Java. [EPL][259].
* [Geany][43] - A very small and fast IDE. [GPL-2.0+][8].
* [KDevelop][44] - The KDE IDE. [GPL-2.0][8].
* [CodeLite][45] - Cross-platform IDE. [GPL-2.0][8].
* [Eclipse][258] - IDE written in Java. [EPL][259].
* [Geany][43] - Very small and fast IDE. [GPL-2.0+][8].
* [KDevelop][44] - KDE IDE. [GPL-2.0][8].
## Frameworks ##
@@ -293,68 +291,68 @@ Big libraries that provide data structures and other stuff you expect of a
* [APR][78] - Apache Portable Runtime; another library of cross-platform utility
functions. [Apache-2.0][32].
* [C Algorithms][88] - A collection of common algorithms and data structures. [ISC][61].
* [Collections-C][406] - A library of generic data structures. [LGPL-3.0+][5].
* [C Algorithms][88] - Collection of common algorithms and data structures. [ISC][61].
* [Collections-C][406] - Library of generic data structures. [LGPL-3.0+][5].
* [CPL][308] - The Common Pipeline Library; a set of libraries designed to be a
comprehensive, efficient and robust software toolkit. [GPL-2.0][8].
* [EFL][119] - A large collection of useful data structures and
* [EFL][119] - Large collection of useful data structures and
functions. Various licenses, all open-source.
* [GLib][1] - A library of utility functions and structures, designed to be
* [GLib][1] - Library of utility functions and structures, designed to be
portable, efficient and powerful. [LGPL-2.1][15].
* [GIO][2] - A modern and easy-to-use VFS API. [LGPL-2.1][15].
* [GObject][3] - An object-oriented system and object model. [LGPL-2.1][15].
* [GIO][2] - Modern and easy-to-use VFS API. [LGPL-2.1][15].
* [GObject][3] - Object-oriented system and object model. [LGPL-2.1][15].
* [klib][76] - Small and lightweight implementations of common algorithms and
data structures. [MIT][11].
* [libcork][476] - Utility functions and structures, designed for
resource-constrained systems. Can be embedded. [BSD-3-Clause][6].
* [libnih][93] - A lightweight library of functions and
* [libnih][93] - Lightweight library of functions and
structures. [GPL-2.0][8].
* [libU][28] - A small library of basic utilities, including memory allocation,
* [libU][28] - Small library of basic utilities, including memory allocation,
string manipulation and logging. [BSD-3-Clause][6].
* [offbrand][498] - A collection of generic, reference-counted data structures.
* [offbrand][498] - Collection of generic, reference-counted data structures.
[MIT][11].
* [PBL][346] - A large library of utilities, featuring data structures, among
* [PBL][346] - Large library of utilities, featuring data structures, among
other things. [LGPL-2.1+][15].
* [qlibc][277] - A simple and powerful library, designed as a replacement for
* [qlibc][277] - Simple and powerful library, designed as a replacement for
GLib while focusing on being small and light. [BSD-2-Clause][24].
* [stb][114] - A range of single-file libraries. Public domain.
* [TBOX][398] - A multi-platform library with a large number of
* [stb][114] - Range of single-file libraries. Public domain.
* [TBOX][398] - Multi-platform library with a large number of
capabilities. [LGPL-2.1+][15].
## Game Programming ##
Engines, libraries and other helpful things specifically for making games.
* [Allegro][48] - A cross-platform, video game development and multimedia
* [Allegro][48] - Cross-platform, video game development and multimedia
library. [Zlib][49].
* [Chipmunk2D][303] - A fast and lightweight 2D game physics library. [MIT][11].
* [Corange][101] - A game engine in pure C. [BSD-2-Clause][24].
* [CSFML][90] - A binding for [SFML][91]. [Zlib][49].
* [Darkplaces][369] - A modified version of the Quake2 engine. [GPL-2.0][8].
* [Epoxy][414] - A library for handling OpenGL function pointer management. [MIT][11].
* [FreeGLUT][99] - An alternative to the OpenGL Utility Toolkit. Allows the
* [Chipmunk2D][303] - Fast and lightweight 2D game physics library. [MIT][11].
* [Corange][101] - Game engine in pure C. [BSD-2-Clause][24].
* [CSFML][90] - Binding for [SFML][91]. [Zlib][49].
* [Darkplaces][369] - Modified version of the Quake2 engine. [GPL-2.0][8].
* [Epoxy][414] - Library for handling OpenGL function pointer management. [MIT][11].
* [FreeGLUT][99] - Alternative to the OpenGL Utility Toolkit. Allows the
creation and management of windows with OpenGL contexts. [X11][100].
* [GLFW][98] - A multi-platform library for creating windows with OpenGL
* [GLFW][98] - Multi-platform library for creating windows with OpenGL
contexts. [Zlib][49].
* [ioquake3][107] - The Quake3 engine, freed at last. [GPL-2.0][8].
* [kazmath][446] - A maths library for games. [BSD-2-Clause][24].
* [libao][376] - A cross-platform audio library with a wide variety of
* [ioquake3][107] - Quake3 engine, freed at last. [GPL-2.0][8].
* [kazmath][446] - Maths library for games. [BSD-2-Clause][24].
* [libao][376] - Cross-platform audio library with a wide variety of
outputs. [GPL-2.0+][8].
* [Orx][370] - A portable, lightweight, plugin-based, data-driven, 2D-oriented
* [Orx][370] - Portable, lightweight, plugin-based, data-driven, 2D-oriented
game engine. [Zlib][49].
* [Quake][225] - The Quake engine. [GPL-2.0][8].
* [Quake2][221] - The Quake2 engine. [GPL-2.0][8].
* [raylib][516] - A simple and easy-to-use library to learn video game
* [Quake][225] - Quake engine. [GPL-2.0][8].
* [Quake2][221] - Quake2 engine. [GPL-2.0][8].
* [raylib][516] - Simple and easy-to-use library to learn video game
programming. [Zlib][49].
* [RetroArch][231] - The reference frontend for [libretro][232]. [GPL-3.0][41].
* [SDL2][50] - A cross-platform library designed to provide low-level access to
* [RetroArch][231] - Reference frontend for [libretro][232]. [GPL-3.0][41].
* [SDL2][50] - Cross-platform library designed to provide low-level access to
audio, keyboard, mouse, joystick and graphics hardware via OpenGL. [Zlib][49].
* [sdl-gpu][457] - A library for high-performance, modern 2D graphics. Based on
* [sdl-gpu][457] - Library for high-performance, modern 2D graphics. Based on
SDL. [MIT][11].
* [SIGIL][429] - Sound, Input and Graphics Integration Library; a simple
alternative to other libraries for doing all those things. Various licenses,
all open-source.
* [Spearmint][371] - An engine designed for FPS games. [GPL-3.0+][41].
* [Spearmint][371] - Engine designed for FPS games. [GPL-3.0+][41].
## Graphics ##
@@ -362,45 +360,45 @@ Engines, libraries and other helpful things specifically for making games.
Programmatic manipulation of graphics in C; if you want to make a GUI, the
Graphical User Interface section has what you need.
* [Cairo][384] - A 2D graphics library. [LGPL-2.1][15] or [MPL-1.1][385].
* [Cogl][127] - A GPU graphics and utilities API. [MIT][11].
* [Clutter][126] - A UI library based on OpenGL. [LGPL-2.1][15].
* [giflib][401] - A library for reading and writing gif images. [MIT][11].
* [graphene][515] - A thin layer of graphical data types. [MIT][11].
* [heman][365] - A tiny library of image utilities dealing with height maps,
* [Cairo][384] - 2D graphics library. [LGPL-2.1][15] or [MPL-1.1][385].
* [Cogl][127] - GPU graphics and utilities API. [MIT][11].
* [Clutter][126] - UI library based on OpenGL. [LGPL-2.1][15].
* [giflib][401] - Library for reading and writing gif images. [MIT][11].
* [graphene][515] - Thin layer of graphical data types. [MIT][11].
* [heman][365] - Tiny library of image utilities dealing with height maps,
normal maps, distance fields and the like. [MIT][11].
* [libcaca][366] - An ASCII renderer for terminal-based interfaces. [WTFPL][367].
* [libgd][402] - A library for the dynamic creation of images by programmers. [MIT][11].
* [libcaca][366] - ASCII renderer for terminal-based interfaces. [WTFPL][367].
* [libgd][402] - Library for the dynamic creation of images by programmers. [MIT][11].
* [libimagequant][300] - Small, portable library for high-quality conversion of
RGBA images to 8-bit indexed colour images. [GPL-3.0+][41].
* [libjpeg-turbo][193] - A faster library for reading and writing JPEG
* [libjpeg-turbo][193] - Faster library for reading and writing JPEG
files. [Various licences][194].
* [libpng][382] - The official PNG reference library. [Libpng][383].
* [libRSVG][417] - A library to render SVG files using Cairo. [LGPL-2.1+][15].
* [libsixel][17] - A library implementing the SIXEL protocol, allowing beautiful
* [libpng][382] - Official PNG reference library. [Libpng][383].
* [libRSVG][417] - Library to render SVG files using Cairo. [LGPL-2.1+][15].
* [libsixel][17] - Library implementing the SIXEL protocol, allowing beautiful
graphics in your terminal. [MIT][11].
* [libvips][511] - An image processing library. [LGPL-2.1+][15].
* [libxmi][174] - A function library for rasterizing 2D vector
* [libvips][511] - Image processing library. [LGPL-2.1+][15].
* [libxmi][174] - Function library for rasterizing 2D vector
graphics. [GPL-3.0+][41].
* [lightmapper][444] - A single-file library for lightmap baking, using an
* [lightmapper][444] - Single-file library for lightmap baking, using an
existing OpenGL renderer. Public domain.
* [mozjpeg][200] - An improved JPEG encoder. [BSD-3-Clause][6].
* [mozjpeg][200] - Improved JPEG encoder. [BSD-3-Clause][6].
* [nanovg][505] - Anti-aliased 2D vector drawing library on top of OpenGL, for
UI and visualizations. [Zlib][49].
* [OpenGL][147] - The industry standard for high-performance graphics, with a
* [OpenGL][147] - Industry standard for high-performance graphics, with a
native C binding. [Various licenses][148].
## Graphical User Interface ##
Widget toolkits, or things meant to be used in a similar way to them.
* [GTK+][14] - A cross-platform widget toolkit. [LGPL-2.1][15].
* [GTK+][14] - Cross-platform widget toolkit. [LGPL-2.1][15].
* [IUP][16] - Another cross-platform widget toolkit. [MIT][11].
* [nuklear][408] - A small, C89, single-header widget toolkit. Public domain.
* [tinyfiledialogs][426] - A single-file library for simple dialogs. Compatible
* [nuklear][408] - Small, C89, single-header widget toolkit. Public domain.
* [tinyfiledialogs][426] - Single-file library for simple dialogs. Compatible
with many other toolkits and OSes. [Zlib][49].
* [Tk][19] - A basic widget toolkit. Part of Tcl/Tk. [TCL][20].
* [XForms Toolkit][21] - A widget toolkit designed for the XWindow
* [Tk][19] - Basic widget toolkit. Part of Tcl/Tk. [TCL][20].
* [XForms Toolkit][21] - Widget toolkit designed for the XWindow
system. [LGPL-2.1][15].
## Hashing ##
@@ -408,25 +406,25 @@ Widget toolkits, or things meant to be used in a similar way to them.
Hash function implementations for *non*-crypto purposes. Cryptographic hashes
can be found in the Crypto section.
* [CLHash][495] - A library implementing the ridiculously fast CLHash hashing
* [CLHash][495] - Library implementing the ridiculously fast CLHash hashing
function. Only works on Intel Haswell or newer. [Apache-2.0][32].
* [HighwayHash][527] - A fast, strong, SIMD-using hash function. Also contains
* [HighwayHash][527] - Fast, strong, SIMD-using hash function. Also contains
an implementation of SipHash (although this is slower). [Apache-2.0][32].
* [t1ha][530] - Fast Positive Hash - a portable, fast hash function.
[BSD-3-Clause][6].
* [xxHash][522] - An extremely fast hashing algorithm. Comes in 32 and 64-bit
* [xxHash][522] - Extremely fast hashing algorithm. Comes in 32 and 64-bit
varieties. [BSD-2-Clause][24].
## JSON ##
* [cJSON][443] - Ultra-lightweight JSON parser. [MIT][11].
* [Jansson][53] - A library for encoding, decoding and manipulating JSON. [MIT][11].
* [jsmn][120] - A minimalistic JSON parser. [MIT][11].
* [jfes][488] - A simple JSON engine without any dependencies. [MIT][11].
* [json-c][220] - A library for working with JSON. [MIT][11].
* [Jansson][53] - Library for encoding, decoding and manipulating JSON. [MIT][11].
* [jsmn][120] - Minimalistic JSON parser. [MIT][11].
* [jfes][488] - Simple JSON engine without any dependencies. [MIT][11].
* [json-c][220] - Library for working with JSON. [MIT][11].
* [WJElement][77] - Advanced JSON manipulation library, with support for JSON
Schema. [LGPL-2.0+][334] or [LGPL-2.1+][15] or [LGPL-3.0+][5].
* [YAJL][60] - A fast streaming JSON parser library. [ISC][61]
* [YAJL][60] - Fast streaming JSON parser library. [ISC][61]
## Learning, Reference and Tutorials ##
@@ -492,29 +490,29 @@ to C programming.
### Reference books ###
* [C: A Reference Manual 5E][181] - A full reference book for C99.
* [C in a Nushell 2E][418] - A concise reference book for C11.
* [C Pocket Reference][182] - A concise reference book for C99.
* [The C Programming Language 2E][7] - The original book on C, by its creators.
* [C: A Reference Manual 5E][181] - Full reference book for C99.
* [C in a Nushell 2E][418] - Concise reference book for C11.
* [C Pocket Reference][182] - Concise reference book for C99.
* [The C Programming Language 2E][7] - Original book on C, by its creators.
### Beginner books ###
* [C Primer Plus 6E][184] - A complete tutorial on programming in C11.
* [C Programming: A Modern Approach][64] - An excellent book to learn the basics
* [C Primer Plus 6E][184] - Complete tutorial on programming in C11.
* [C Programming: A Modern Approach][64] - Excellent book to learn the basics
from C from.
* [Head First C][102] - A 'head-first' style book for learning C.
* [Head First C][102] - 'Head-first' style book for learning C.
### Intermediate books ###
* [21st Century C][35] - A very good *second* programming book on C.
* [Understanding and Using C Pointers][36] - An in-depth resource on pointers in
* [21st Century C][35] - Very good second programming book on C.
* [Understanding and Using C Pointers][36] - In-depth resource on pointers in
C.
* [ZeroMQ][183] - A book for using ZeroMQ with C.
* [ZeroMQ][183] - Book for using ZeroMQ with C.
### Advanced books ###
* [Expert C Programming: Deep C Secrets][55] - An interesting, in-depth and
*entertaining* look at the innards of C.
* [Expert C Programming: Deep C Secrets][55] - Interesting, in-depth and
entertaining look at the innards of C.
## Lexing and Parsing ##