See CHANGELOG.md
This commit is contained in:
1 parent
fc1fb77463
commit
5abe1357c8
3 files changed
+551
-507
No files matched your search
+102
-257
@@ -1,337 +1,182 @@
|
||||
# Changelog #
|
||||
|
||||
## 17th September 2016 ##
|
||||
|
||||
### General ###
|
||||
|
||||
* Maintainer's birthday!
|
||||
* Cleaned up the changelog a bit
|
||||
* Added kore.io
|
||||
* Removed TODO.md (replaced with issues on NAB repo)
|
||||
* Cleaned up README.md with markdownlint
|
||||
|
||||
## 10th August 2016 ##
|
||||
|
||||
### General ###
|
||||
|
||||
### Added ###
|
||||
|
||||
* Epoxy
|
||||
* Added Epoxy
|
||||
|
||||
## 2nd August 2016 ##
|
||||
|
||||
### General ###
|
||||
|
||||
### Added ###
|
||||
|
||||
* argparse
|
||||
* Added argparse
|
||||
|
||||
## 4th June 2016 ##
|
||||
|
||||
### General ###
|
||||
|
||||
### Added ###
|
||||
|
||||
* CScout
|
||||
* liblfds
|
||||
* Genann
|
||||
* Added:
|
||||
* CScout
|
||||
* liblfds
|
||||
* Genann
|
||||
|
||||
## 13th May 2016 ##
|
||||
|
||||
### General ###
|
||||
|
||||
* Restored libroxml (licence clarified)
|
||||
|
||||
### Added ###
|
||||
|
||||
* libsixel
|
||||
|
||||
### Removed ###
|
||||
|
||||
* Added libsixel
|
||||
|
||||
## 20th April 2016 ##
|
||||
|
||||
### General ###
|
||||
|
||||
### Added ###
|
||||
|
||||
* nuklear
|
||||
|
||||
### Removed ###
|
||||
|
||||
* Added nuklear
|
||||
|
||||
## 18th April 2016 ##
|
||||
|
||||
### General ###
|
||||
|
||||
* Fixing some of the text to be clearer and less redundant
|
||||
* Putting up clarification regarding C++
|
||||
|
||||
### Added ###
|
||||
|
||||
* sort
|
||||
* theft
|
||||
* vector.h
|
||||
|
||||
### Removed ###
|
||||
|
||||
* Fixed some of the text to be clearer and less redundant
|
||||
* Put up clarification regarding C++
|
||||
* Added:
|
||||
* sort
|
||||
* theft
|
||||
* vector.h
|
||||
|
||||
## 9th April 2016 ##
|
||||
|
||||
### General ###
|
||||
|
||||
|
||||
### Added ###
|
||||
|
||||
* XLSX I/O
|
||||
|
||||
### Removed ###
|
||||
* Added XLSX I/O
|
||||
|
||||
## 2nd April 2016 ##
|
||||
|
||||
### General ###
|
||||
|
||||
* Cleaned up some dead links
|
||||
|
||||
### Added ###
|
||||
|
||||
* https addresses whenever possible
|
||||
|
||||
### Removed ###
|
||||
|
||||
* adlint (dead link)
|
||||
* Libudp (dead link)
|
||||
* SDL (same page links to both SDL and SDL2)
|
||||
* Changed links to point to https addresses when possible
|
||||
* Removed:
|
||||
* adlint (dead link)
|
||||
* Libudp (dead link)
|
||||
* SDL (same page links to both SDL and SDL2)
|
||||
|
||||
## 14th March 2016 ##
|
||||
|
||||
### General ###
|
||||
|
||||
### Added ###
|
||||
|
||||
* Collections-C
|
||||
* libxo
|
||||
|
||||
### Removed ###
|
||||
* Added:
|
||||
* Collections-C
|
||||
* libxo
|
||||
|
||||
## 22nd February 2016 ##
|
||||
|
||||
### General ###
|
||||
|
||||
### Added ###
|
||||
|
||||
* giflib
|
||||
* libgd
|
||||
* C-Reduce
|
||||
* cflow
|
||||
* Hoedown
|
||||
|
||||
### Removed ###
|
||||
* Added:
|
||||
* giflib
|
||||
* libgd
|
||||
* C-Reduce
|
||||
* cflow
|
||||
* Hoedown
|
||||
|
||||
## 21st February 2016 ##
|
||||
|
||||
### General ###
|
||||
|
||||
* Cleaning up done items on TODO.md.
|
||||
|
||||
### Added ###
|
||||
|
||||
* binn
|
||||
|
||||
### Removed ###
|
||||
* Cleaned up done items on TODO.md.
|
||||
* Added binn
|
||||
|
||||
## 27th January 2016 ##
|
||||
|
||||
### General ###
|
||||
|
||||
### Added ###
|
||||
|
||||
* libquickmail
|
||||
|
||||
### Removed ###
|
||||
|
||||
|
||||
## 27th January 2016 ##
|
||||
|
||||
### General ###
|
||||
|
||||
### Added ###
|
||||
|
||||
* TBOX
|
||||
|
||||
### Removed ###
|
||||
|
||||
* Added:
|
||||
* libquickmail
|
||||
* TBOX
|
||||
|
||||
## 24th January 2016 ##
|
||||
|
||||
### General ###
|
||||
|
||||
* Added Peers notice
|
||||
|
||||
### Added ###
|
||||
|
||||
* tinyexpr
|
||||
* minctest
|
||||
* termbox
|
||||
|
||||
### Removed ###
|
||||
|
||||
* Added:
|
||||
* tinyexpr
|
||||
* minctest
|
||||
* termbox
|
||||
|
||||
## 21st January 2016 ##
|
||||
|
||||
### General ###
|
||||
|
||||
|
||||
### Added ###
|
||||
|
||||
* munit
|
||||
* squash
|
||||
|
||||
### Removed ###
|
||||
|
||||
* Added:
|
||||
* munit
|
||||
* squash
|
||||
|
||||
## 17th January 2016 ##
|
||||
|
||||
### General ###
|
||||
|
||||
|
||||
### Added ###
|
||||
|
||||
* Scalable C
|
||||
|
||||
### Removed ###
|
||||
|
||||
* Added Scalable C
|
||||
|
||||
## 14th January 2016 ##
|
||||
|
||||
### General ###
|
||||
|
||||
* Renamed 'Parallel Programming' section to 'Concurrent and Parallel'
|
||||
|
||||
### Added ###
|
||||
|
||||
* libconcurrent
|
||||
|
||||
### Removed ###
|
||||
|
||||
* Added libconcurrent
|
||||
|
||||
## 30th December 2015 ##
|
||||
|
||||
### General ###
|
||||
|
||||
### Added ###
|
||||
|
||||
* dlx
|
||||
|
||||
### Removed ###
|
||||
* Added dlx
|
||||
|
||||
## 21st December 2015 ##
|
||||
|
||||
### General ###
|
||||
|
||||
### Added ###
|
||||
|
||||
* libcsv
|
||||
* SGLIB
|
||||
|
||||
### Removed ###
|
||||
* Added:
|
||||
* libcsv
|
||||
* SGLIB
|
||||
|
||||
## 16th December 2015 ##
|
||||
|
||||
### General ###
|
||||
|
||||
* Tidied up GPL and LGPL license names.
|
||||
* Finished confirming GPL and LGPL license versions.
|
||||
|
||||
### Removed ###
|
||||
|
||||
### Added ###
|
||||
* Tidied up GPL and LGPL license names
|
||||
* Finished confirming GPL and LGPL license versions
|
||||
|
||||
## 15th December 2015 ##
|
||||
|
||||
### General ###
|
||||
|
||||
### Removed ###
|
||||
|
||||
* ESR's work.
|
||||
|
||||
### Added ###
|
||||
* Removed all work by ESR.
|
||||
|
||||
## 29th October 2015 ##
|
||||
|
||||
### General ###
|
||||
|
||||
* Added Web Framework section.
|
||||
|
||||
### Removed ###
|
||||
|
||||
### Added ###
|
||||
|
||||
* balde.
|
||||
* libcairo.
|
||||
* libpng.
|
||||
* Added Web Framework section
|
||||
* Added:
|
||||
* balde
|
||||
* libcairo
|
||||
* libpng
|
||||
|
||||
## 27th October 2015 ##
|
||||
|
||||
### General ###
|
||||
|
||||
* Reintroduced PBL.
|
||||
|
||||
### Removed ###
|
||||
|
||||
### Added ###
|
||||
* Reintroduced PBL
|
||||
|
||||
## 23rd October 2015 ##
|
||||
|
||||
### General ###
|
||||
|
||||
* Changed Orx link to point to BitBucket repo.
|
||||
* Changed Allegro link to point to their new site.
|
||||
* Changed FreeGLUT link to point to their new site.
|
||||
|
||||
### Removed ###
|
||||
|
||||
* ulib.
|
||||
* Docutils.
|
||||
* libjpeg.
|
||||
* mihl.
|
||||
* T-Rex.
|
||||
* c2html.
|
||||
* ezXML.
|
||||
|
||||
### Added ###
|
||||
|
||||
* None.
|
||||
* Changed Orx link to point to BitBucket repo
|
||||
* Changed Allegro link to point to their new site
|
||||
* Changed FreeGLUT link to point to their new site
|
||||
* Removed:
|
||||
* ulib
|
||||
* Docutils
|
||||
* libjpeg
|
||||
* mihl
|
||||
* T-Rex
|
||||
* c2html
|
||||
* ezXML
|
||||
|
||||
## 22nd October 2015 ##
|
||||
|
||||
### General ###
|
||||
|
||||
* Removing reference to Gulag Code if the repo was migrated.
|
||||
|
||||
### Removed ###
|
||||
|
||||
* tcmalloc (now replaced with a link to the gperftools repo).
|
||||
* msgpackalt (replaced by two better-maintained, non-Gulag-hosted implementations).
|
||||
|
||||
### Added ###
|
||||
|
||||
* mpack.
|
||||
* cmp.
|
||||
* BerkeleyDB.
|
||||
* Removed reference to Gulag Code if the repo was migrated
|
||||
* Added:
|
||||
* mpack
|
||||
* cmp
|
||||
* BerkeleyDB
|
||||
* Removed:
|
||||
* tcmalloc (replaced with a link to the gperftools repo)
|
||||
* msgpackalt (replaced by two better-maintained, non-Gulag-hosted
|
||||
implementations)
|
||||
|
||||
## 21st October 2015 ##
|
||||
|
||||
### General ###
|
||||
|
||||
* Clarified licensing of awesome-c itself (no invariants, no cover).
|
||||
* Clarified and fixed licenses of the listed works.
|
||||
|
||||
### Removed ###
|
||||
|
||||
* VXD-XML (freedom concerns).
|
||||
* LibreSSL (freedom concerns).
|
||||
* Netbeans (nonfree dependencies).
|
||||
* ZeroMQ (unclear licensing).
|
||||
* Neon (unclear licensing).
|
||||
* pblSet (unclear licensing).
|
||||
* CRlibm (unclear licensing).
|
||||
* libroxml (unclear licensing).
|
||||
* SGLIB (unclear licensing).
|
||||
* libRSVG (unclear licensing).
|
||||
* Elementary (dead link).
|
||||
|
||||
### Added ###
|
||||
|
||||
* CHANGELOG.md file.
|
||||
* TODO.md file.
|
||||
* Clarified licensing of awesome-c itself (no invariants, no cover)
|
||||
* Clarified and fixed licenses of the listed works
|
||||
* Added this changelog
|
||||
* Added todo file
|
||||
* Removed:
|
||||
* VXD-XML (freedom concerns)
|
||||
* LibreSSL (freedom concerns)
|
||||
* Netbeans (nonfree dependencies)
|
||||
* ZeroMQ (unclear licensing)
|
||||
* Neon (unclear licensing)
|
||||
* pblSet (unclear licensing)
|
||||
* CRlibm (unclear licensing)
|
||||
* libroxml (unclear licensing)
|
||||
* SGLIB (unclear licensing)
|
||||
* libRSVG (unclear licensing)
|
||||
* Elementary (dead link)
|
||||
@@ -1,132 +1,175 @@
|
||||
# Awesome C #
|
||||
|
||||
A curated list of C good stuff. This list contains *only* [free software][13] for code, and sellers who aren't evil for physical resources.
|
||||
A curated list of C good stuff. This list contains *only* [free software][13]
|
||||
for code, and sellers who aren't evil for physical resources.
|
||||
|
||||
This is released under the GNU Free Documentation License, without invariants or a cover - its text is provided in the LICENSE file.
|
||||
This is released under the GNU Free Documentation License, without invariants or
|
||||
a cover - its text is provided in the LICENSE file.
|
||||
|
||||
This project is part of [Peers][397] - a community for growing our freedom. Support us today!
|
||||
This project is part of [Peers][397] - a community for growing our
|
||||
freedom. Support us today!
|
||||
|
||||
**An important note:** This project does *not* index anything C++-related; only C stuff is considered.
|
||||
**An important note:** This project does *not* index anything C++-related; only
|
||||
pure C stuff is considered.
|
||||
|
||||
## Contents ##
|
||||
|
||||
- [Build Systems](#build-systems)
|
||||
- [Compilers](#compilers)
|
||||
- [Concurrent and Parallel](#concurrent-and-parallel)
|
||||
- [Crypto](#crypto)
|
||||
- [Database](#database)
|
||||
- [Documentation Generation](#documentation-generation)
|
||||
- [Editors](#editors)
|
||||
- [Environments](#environments)
|
||||
- [Frameworks](#frameworks)
|
||||
- [Game Programming](#game-programming)
|
||||
- [Engines](#engines)
|
||||
- [Resources](#resources)
|
||||
- [Generic Programming](#generic-programming)
|
||||
- [Graphics](#graphics)
|
||||
- [Graphical User Interface](#graphical-user-interface)
|
||||
- [JSON](#json)
|
||||
- [Learning, Reference and Tutorials](#learning-reference-and-tutorials)
|
||||
- [Online](#online)
|
||||
- [Reference](#reference)
|
||||
- [Beginner](#beginner)
|
||||
- [Intermediate](#intermediate)
|
||||
- [Advanced](#advanced)
|
||||
- [Self-study courses](#self-study-courses)
|
||||
- [Physical](#physical)
|
||||
- [Reference](#reference-1)
|
||||
- [Beginner](#beginner-1)
|
||||
- [Intermediate](#intermediate-1)
|
||||
- [Advanced](#advanced-1)
|
||||
- [Multimedia](#multimedia)
|
||||
- [Networking and Internet](#networking-and-internet)
|
||||
- [Web Frameworks](#web-frameworks)
|
||||
- [Numerical](#numerical)
|
||||
- [Regex](#regex)
|
||||
- [Serialization](#serialization)
|
||||
- [Source Code Collections](#source-code-collections)
|
||||
- [Standard Libraries](#standard-libraries)
|
||||
- [String Manipulation](#string-manipulation)
|
||||
- [Testing](#testing)
|
||||
- [Text Editor Extensions](#text-editor-extensions)
|
||||
- [Emacs](#emacs)
|
||||
- [Vim](#vim)
|
||||
- [Tools](#tools)
|
||||
- [Utilities](#utilities)
|
||||
- [XML](#xml)
|
||||
* [Build Systems](#build-systems)
|
||||
* [Compilers](#compilers)
|
||||
* [Concurrent and Parallel](#concurrent-and-parallel)
|
||||
* [Crypto](#crypto)
|
||||
* [Database](#database)
|
||||
* [Documentation Generation](#documentation-generation)
|
||||
* [Editors](#editors)
|
||||
* [Environments](#environments)
|
||||
* [Frameworks](#frameworks)
|
||||
* [Game Programming](#game-programming)
|
||||
* [Engines](#engines)
|
||||
* [Resources](#resources)
|
||||
* [Generic Programming](#generic-programming)
|
||||
* [Graphics](#graphics)
|
||||
* [Graphical User Interface](#graphical-user-interface)
|
||||
* [JSON](#json)
|
||||
* [Learning, Reference and Tutorials](#learning-reference-and-tutorials)
|
||||
* [Online](#online)
|
||||
* [Reference](#reference)
|
||||
* [Beginner](#beginner)
|
||||
* [Intermediate](#intermediate)
|
||||
* [Advanced](#advanced)
|
||||
* [Self-study courses](#self-study-courses)
|
||||
* [Physical](#physical)
|
||||
* [Reference](#reference-1)
|
||||
* [Beginner](#beginner-1)
|
||||
* [Intermediate](#intermediate-1)
|
||||
* [Advanced](#advanced-1)
|
||||
* [Multimedia](#multimedia)
|
||||
* [Networking and Internet](#networking-and-internet)
|
||||
* [Web Frameworks](#web-frameworks)
|
||||
* [Numerical](#numerical)
|
||||
* [Regex](#regex)
|
||||
* [Serialization](#serialization)
|
||||
* [Source Code Collections](#source-code-collections)
|
||||
* [Standard Libraries](#standard-libraries)
|
||||
* [String Manipulation](#string-manipulation)
|
||||
* [Testing](#testing)
|
||||
* [Text Editor Extensions](#text-editor-extensions)
|
||||
* [Emacs](#emacs)
|
||||
* [Vim](#vim)
|
||||
* [Tools](#tools)
|
||||
* [Utilities](#utilities)
|
||||
* [XML](#xml)
|
||||
|
||||
## Build Systems ##
|
||||
|
||||
These are tools to automate the building and testing of projects in C.
|
||||
|
||||
* [aimake][97] - A build tool designed to avoid complex configurations. [GNU GPLv3][41] or later.
|
||||
* [Autoconf][305] - An extensible package of M4 macros that produce shell scripts to automatically configure software source code packages. Part of the Autotools. [GNU GPLv3][41] or later.
|
||||
* [Automake][306] - A tool for automatically generating ``Makefile.in`` files compliant with the GNU Coding Standards. Requires the use of Autoconf. Part of the Autotools. [GNU GPLv3][41] or later.
|
||||
* [Jam][334] - A build system, designed to be easier than make. Understands C build rules implicitly. [Jam License][335].
|
||||
* [Libtool][172] - A generic library support script. Part of the Autotools. [GNU GPLv3][41] or later.
|
||||
* [aimake][97] - A build tool designed to avoid complex
|
||||
configurations. [GNU GPLv3][41] or later.
|
||||
* [Autoconf][305] - An extensible package of M4 macros that produce shell
|
||||
scripts to automatically configure software source code packages. Part of the
|
||||
Autotools. [GNU GPLv3][41] or later.
|
||||
* [Automake][306] - A tool for automatically generating ``Makefile.in`` files
|
||||
compliant with the GNU Coding Standards. Requires the use of Autoconf. Part of
|
||||
the Autotools. [GNU GPLv3][41] or later.
|
||||
* [Jam][334] - A build system, designed to be easier than make. Understands C
|
||||
build rules implicitly. [Jam License][335].
|
||||
* [Libtool][172] - A generic library support script. Part of the
|
||||
Autotools. [GNU GPLv3][41] or later.
|
||||
* [Meson][368] - An extremely fast, user-friendly build system. Based on Ninja. [Apache2.0][32].
|
||||
|
||||
## Compilers ##
|
||||
|
||||
* [Clang][38] - A compiler for LLVM. Supports C11. [NCSA][39].
|
||||
* [CompCert][269] - A fully-verified compiler. Supports almost all of C89. [GNU GPLv2.1][8] or later.
|
||||
* [GCC][40] - Provides a C compiler as part of its compiler set. Supports C11. [GNU GPLv3][41] or later.
|
||||
* [CompCert][269] - A fully-verified compiler. Supports almost all of
|
||||
C89. [GNU GPLv2.1][8] or later.
|
||||
* [GCC][40] - Provides a C compiler as part of its compiler set. Supports
|
||||
C11. [GNU GPLv3][41] or later.
|
||||
* [PCC][74] - A venerable compiler. Supports C99. [Various licenses][75], all free.
|
||||
* [TCC][58] - Tiny C Compiler; a small, fast compiler. Supports C99 (except complex types). [GNU LGPLv2.1][15] only.
|
||||
* [TCC][58] - Tiny C Compiler; a small, fast compiler. Supports C99 (except
|
||||
complex types). [GNU LGPLv2.1][15] only.
|
||||
|
||||
## Concurrent and Parallel ##
|
||||
|
||||
* [cchan][243] - A small library for channel constructs for inter-thread communication. Public domain.
|
||||
* [ck][242] - Concurrency primitives, safe memory reclamation mechanisms and non-blocking data structures. [FreeBSD][24].
|
||||
* [libconcurrent][390] - Concurrent programming library, using coroutines, for C11. [zlip][49].
|
||||
* [cchan][243] - A small library for channel constructs for inter-thread
|
||||
communication. Public domain.
|
||||
* [ck][242] - Concurrency primitives, safe memory reclamation mechanisms and
|
||||
non-blocking data structures. [FreeBSD][24].
|
||||
* [libconcurrent][390] - Concurrent programming library, using coroutines, for
|
||||
C11. [zlip][49].
|
||||
* [mill][352] - Go-style concurrency. [X11][353].
|
||||
* [MPICH][285] - Another implementation of MPI. [MPICH licence][286].
|
||||
* [OpenMP][37] - A set of pragmas designed to allow for easy parallelization of code. Standard (licensing not applicable).
|
||||
* [OpenMP][37] - A set of pragmas designed to allow for easy parallelization of
|
||||
code. Standard (licensing not applicable).
|
||||
* [OpenMPI][284] - A message passing interface implementation. [3-clause BSD][6].
|
||||
* [PETSc][282] - A suite of data structures and routines for scalable parallel solution of scientific applications modelled by partial differential equations. [FreeBSD][24].
|
||||
* [pth][180] - A portable implementation for non-preemptive priority-based scheduling for multiple threads of execution. [GNU GPLv3][41] or later.
|
||||
* [PETSc][282] - A suite of data structures and routines for scalable parallel
|
||||
solution of scientific applications modelled by partial differential
|
||||
equations. [FreeBSD][24].
|
||||
* [pth][180] - A portable implementation for non-preemptive priority-based
|
||||
scheduling for multiple threads of execution. [GNU GPLv3][41] or later.
|
||||
* [pthreads][146] - The POSIX thread library. Standard (no license applicable).
|
||||
* [SLEPc][283] - A software library for the solution of large, sparse eigenvalue problems on parallel computers. [GNU LGPLv3][5] only.
|
||||
* [TinyCThread][115] - A portable, small implementation of the C11 threads API. [zlib][49].
|
||||
* [SLEPc][283] - A software library for the solution of large, sparse eigenvalue
|
||||
problems on parallel computers. [GNU LGPLv3][5] only.
|
||||
* [TinyCThread][115] - A portable, small implementation of the C11 threads
|
||||
API. [zlib][49].
|
||||
|
||||
## Crypto ##
|
||||
|
||||
* [GnuTLS][112] - A secure communication library, implementing SSL, TLS and DTLS. [GNU LGPLv2.1][15] or later.
|
||||
* [libgcrypt][142] - A general-purpose cryptography library, with a range of available ciphers. [GNU LGPLv2.1][15] or later (code), [GNU GPLv2.1][8] or later (manual and tools).
|
||||
* [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].
|
||||
* [GnuTLS][112] - A secure communication library, implementing SSL, TLS and
|
||||
DTLS. [GNU LGPLv2.1][15] or later.
|
||||
* [libgcrypt][142] - A general-purpose cryptography library, with a range of
|
||||
available ciphers. [GNU LGPLv2.1][15] or later (code), [GNU GPLv2.1][8] or
|
||||
later (manual and tools).
|
||||
* [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].
|
||||
* [libsodium][198] - A modern and easy-to-use crypto library. [Expat][11].
|
||||
* [libtomcrypt][299] - A fairly comprehensive, modular and portable cryptographic toolkit. Public domain.
|
||||
* [libtomcrypt][299] - A fairly comprehensive, modular and portable
|
||||
cryptographic toolkit. Public domain.
|
||||
* [mbed TLS][291] - Another crypto implementation. [Apache2.0][32].
|
||||
|
||||
## Database ##
|
||||
|
||||
This lists databases and data stores with C APIs.
|
||||
|
||||
* [BerkeleyDB][380] - A library for a high-performance embedded database for key-value data. [GNU AGPLv3][381] only.
|
||||
* [BerkeleyDB][380] - A library for a high-performance embedded database for
|
||||
key-value data. [GNU AGPLv3][381] only.
|
||||
* [Hiredis][201] - A minimalistic client library for Redis. [3-clause BSD][6].
|
||||
* [LMDB][105] - An ultra-fast, ultra-compact key-value embedded data store. [newOpenLDAP][106].
|
||||
* [MariaDB][25] - A robust, scalable and reliable SQL server, designed to be a drop-in replacement for MySQL. [3-clause BSD][6].
|
||||
* [MariaDB][25] - A robust, scalable and reliable SQL server, designed to be a
|
||||
drop-in replacement for MySQL. [3-clause BSD][6].
|
||||
* [mongo-c-driver][233] - A high-performance client library for [MongoDB][234]. [Apache2.0][32].
|
||||
* [PostgreSQL][121] - A powerful object-relational database system. [PostgreSQL licence][122].
|
||||
* [recutils][360] - A set of tools and a library for accessing human-editable, plaintext database files called recfiles. [GNU GPLv3][41] or later.
|
||||
* [recutils][360] - A set of tools and a library for accessing human-editable,
|
||||
plaintext database files called recfiles. [GNU GPLv3][41] or later.
|
||||
* [Redis][51] - An advanced key-value store. [3-clause BSD][6].
|
||||
* [sophia][244] - A modern, embeddable key-value database. [FreeBSD][24].
|
||||
* [SQLite][22] - A self-contained, serverless, zero-configuration, transactional SQL database engine. Public domain.
|
||||
* [UnQLite][23] - A self-contained, serverless, zero-configuration, transactional NoSQL engine. [FreeBSD][24].
|
||||
* [SQLite][22] - A self-contained, serverless, zero-configuration, transactional
|
||||
SQL database engine. Public domain.
|
||||
* [UnQLite][23] - A self-contained, serverless, zero-configuration,
|
||||
transactional NoSQL engine. [FreeBSD][24].
|
||||
|
||||
## Documentation Generation ##
|
||||
|
||||
* [Cxref][317] - Generates documentation in either LaTeX, HTML, RTF or SGML. [GNU GPLv2.1][8] only.
|
||||
* [DocOnce][322] - A modestly-tagged markup language that can be used to generate a range of formats. [3-clause BSD][6].
|
||||
* [Doxygen][318] - The de-facto standard tool for generating documentation from annotated sources. Can generate a large range of formats. [GNU GPLv2.1][8] only.
|
||||
* [GTK-Doc][319] - A tool for generating documentation from annotated sources. Has support for the Autotools. [GNU GPLv2.1][15] only (code), [GNU FDL1.1][375] only (documentation).
|
||||
* [Cxref][317] - Generates documentation in either LaTeX, HTML, RTF or
|
||||
SGML. [GNU GPLv2.1][8] only.
|
||||
* [DocOnce][322] - A modestly-tagged markup language that can be used to
|
||||
generate a range of formats. [3-clause BSD][6].
|
||||
* [Doxygen][318] - The de-facto standard tool for generating documentation from
|
||||
annotated sources. Can generate a large range of formats. [GNU GPLv2.1][8]
|
||||
only.
|
||||
* [GTK-Doc][319] - A tool for generating documentation from annotated
|
||||
sources. Has support for the Autotools. [GNU GPLv2.1][15] only
|
||||
(code), [GNU FDL1.1][375] only (documentation).
|
||||
|
||||
## Editors ##
|
||||
|
||||
These are specifically fancier, IDE-type editors. If you want a programmer's text editor, look elsewhere. Besides, whatever choice you make most likely supports C anyway.
|
||||
These are specifically fancier, IDE-type editors. If you want a programmer's
|
||||
text editor, look elsewhere. Besides, whatever choice you make most likely
|
||||
supports C anyway.
|
||||
|
||||
* [Anjuta DevStudio][42] - The GNOME IDE. [GNU GPLv2.1][15] only.
|
||||
* [Code::Blocks][249] - An extensible, configurable IDE supporting C. [GNU GPLv3][41] only.
|
||||
* [Code::Blocks][249] - An extensible, configurable IDE supporting
|
||||
C. [GNU GPLv3][41] only.
|
||||
* [CodeLite][45] - A cross-platform IDE. [GNU GPLv2.1][8] only.
|
||||
* [Eclipse][258] - An IDE written in Java. [EPL][259].
|
||||
* [Geany][43] - A very small and fast IDE. [GNU GPLv2.1][8] or later.
|
||||
@@ -134,29 +177,45 @@ These are specifically fancier, IDE-type editors. If you want a programmer's tex
|
||||
|
||||
## Environments ##
|
||||
|
||||
This is a list of technologies designed to bring Windows into the 21st century with respect to support for C.
|
||||
This is a list of technologies designed to bring Windows into the 21st century
|
||||
with respect to support for C.
|
||||
|
||||
* [Cygwin][253] - Designed to emulate a POSIX-compatible environment extensively under Windows. [Various licenses, all free][254].
|
||||
* [MinGW-w64][287] - A minimalist environment for C development on Windows with 64 bit support. [Various licenses, all free][252].
|
||||
* [Cygwin][253] - Designed to emulate a POSIX-compatible environment extensively
|
||||
under Windows. [Various licenses, all free][254].
|
||||
* [MinGW-w64][287] - A minimalist environment for C development on Windows with
|
||||
64 bit support. [Various licenses, all free][252].
|
||||
|
||||
## Frameworks ##
|
||||
|
||||
This section has big libraries that provide data structures and other stuff you expect of a 'modern' standard library.
|
||||
This section has big libraries that provide data structures and other stuff you
|
||||
expect of a 'modern' standard library.
|
||||
|
||||
* [APR][78] - Apache Portable Runtime; another library of cross-platform utility functions. [Apache2.0][32].
|
||||
* [APR][78] - Apache Portable Runtime; another library of cross-platform utility
|
||||
functions. [Apache2.0][32].
|
||||
* [C Algorithms][88] - A collection of common algorithms and data structures. [ISC][61].
|
||||
* [Collections-C][406] - A library of generic data structures. [GNU LGPLv3][5] or later.
|
||||
* [CPL][308] - The Common Pipeline Library; a set of libraries designed to be a comprehensive, efficient and robust software toolkit. [GNU GPLv2.1][8] only.
|
||||
* [EFL][119] - A large collection of useful data structures and functions. Various licenses, all free.
|
||||
* [GLib][1] - A library of utility functions and structures, designed to be portable, efficient and powerful. [GNU LGPLv2.1][15] only.
|
||||
* [Collections-C][406] - A library of generic data structures. [GNU LGPLv3][5]
|
||||
or later.
|
||||
* [CPL][308] - The Common Pipeline Library; a set of libraries designed to be a
|
||||
comprehensive, efficient and robust software toolkit. [GNU GPLv2.1][8] only.
|
||||
* [EFL][119] - A large collection of useful data structures and
|
||||
functions. Various licenses, all free.
|
||||
* [GLib][1] - A library of utility functions and structures, designed to be
|
||||
portable, efficient and powerful. [GNU LGPLv2.1][15] only.
|
||||
* [GIO][2] - A modern and easy-to-use VFS API. [GNU LGPLv2.1][15] only.
|
||||
* [GObject][3] - An object-oriented system and object model. [GNU LGPLv2.1][15] only.
|
||||
* [libnih][93] - A lightweight library of functions and structures. [GNU GPLv2.1][8] only.
|
||||
* [libU][28] - A small library of basic utilities, including memory allocation, string manipulation and logging. [3-clause BSD][6].
|
||||
* [PBL][346] - A large library of utilities, featuring data structures, among other things. [GNU LGPLv2.1][15] or later (library), [GNU GPLv2.1][8] or later (test code).
|
||||
* [qlibc][277] - A simple and powerful library, designed as a replacement for GLib while focusing on being small and light. [qLib license][278] (similar to [FreeBSD][24]).
|
||||
* [libnih][93] - A lightweight library of functions and
|
||||
structures. [GNU GPLv2.1][8] only.
|
||||
* [libU][28] - A small library of basic utilities, including memory allocation,
|
||||
string manipulation and logging. [3-clause BSD][6].
|
||||
* [PBL][346] - A large library of utilities, featuring data structures, among
|
||||
other things. [GNU LGPLv2.1][15] or later (library), [GNU GPLv2.1][8] or later
|
||||
(test code).
|
||||
* [qlibc][277] - A simple and powerful library, designed as a replacement for
|
||||
GLib while focusing on being small and light. [qLib license][278] (similar
|
||||
to [FreeBSD][24]).
|
||||
* [stb][114] - A range of single-file libraries. Public domain.
|
||||
* [TBOX][398] - A multi-platform library with a large number of capabilities. [GNU LGPLv2.1][15] or later.
|
||||
* [TBOX][398] - A multi-platform library with a large number of
|
||||
capabilities. [GNU LGPLv2.1][15] or later.
|
||||
|
||||
## Game Programming ##
|
||||
|
||||
@@ -167,7 +226,8 @@ These are provided as examples of C game programming code.
|
||||
* [Corange][101] - A game engine in pure C. [FreeBSD][24].
|
||||
* [Darkplaces][369] - A modified version of the Quake2 engine. [GNU GPLv2.1][8] only.
|
||||
* [ioquake3][107] - The Quake3 engine, freed at last. [GNU GPLv2.1][8] only.
|
||||
* [Orx][370] - A portable, lightweight, plugin-based, data-driven, 2D-oriented game engine. [zlib][49].
|
||||
* [Orx][370] - A portable, lightweight, plugin-based, data-driven, 2D-oriented
|
||||
game engine. [zlib][49].
|
||||
* [Quake][225] - The Quake engine. [GNU GPLv2.1][8] only.
|
||||
* [Quake2][221] - The Quake2 engine. [GNU GPLv2.1][8] only.
|
||||
* [Spearmint][371] - An engine designed for FPS games. [GNU GPLv3][41] or later.
|
||||
@@ -176,38 +236,51 @@ These are provided as examples of C game programming code.
|
||||
|
||||
These are libraries of all sorts that are useful for game programming.
|
||||
|
||||
* [Allegro][48] - A cross-platform, video game development and multimedia library. [zlib][49].
|
||||
* [Allegro][48] - A cross-platform, video game development and multimedia
|
||||
library. [zlib][49].
|
||||
* [Chipmunk2D][303] - A fast and lightweight 2D game physics library. [Expat][11].
|
||||
* [CSFML][90] - A binding for [SFML][91]. [zlib][49].
|
||||
* [Epoxy][414] - A library for handling OpenGL function pointer management. [Expat][11].
|
||||
* [FreeGLUT][99] - An 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 contexts. [zlib][49].
|
||||
* [libao][376] - A cross-platform audio library with a wide variety of outputs. [GNU GPLv2.1][8] or later.
|
||||
* [RetroArch][231] - The reference frontend for [libretro][232]. [GNU GPLv3][41] only.
|
||||
* [SDL2][50] - A cross-platform library designed to provide low-level access to audio, keyboard, mouse, joystick and graphics hardware via OpenGL. [zlib][49].
|
||||
* [FreeGLUT][99] - An 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
|
||||
contexts. [zlib][49].
|
||||
* [libao][376] - A cross-platform audio library with a wide variety of
|
||||
outputs. [GNU GPLv2.1][8] or later.
|
||||
* [RetroArch][231] - The reference frontend for [libretro][232]. [GNU GPLv3][41]
|
||||
only.
|
||||
* [SDL2][50] - A cross-platform library designed to provide low-level access to
|
||||
audio, keyboard, mouse, joystick and graphics hardware via OpenGL. [zlib][49].
|
||||
|
||||
## Generic Programming ##
|
||||
|
||||
* [klib][76] - Small and lightweight implementations of common algorithms and data structures. [Expat][11].
|
||||
* [klib][76] - Small and lightweight implementations of common algorithms and
|
||||
data structures. [Expat][11].
|
||||
* [SGLIB][30] - A simple generic library. Any OSI-approved license.
|
||||
|
||||
## Graphics ##
|
||||
|
||||
* [Cairo][384] - A 2D graphics library. [GNU LGPLv2.1][15] only or [MPLv1.1][385].
|
||||
* [Cogl][127] - A GPU graphics and utilities API. [Expat][11] (dependent on [3-clause BSD][6] and possibly [LGPLv2.1][15] only libs).
|
||||
* [Cogl][127] - A GPU graphics and utilities API. [Expat][11] (dependent
|
||||
on [3-clause BSD][6] and possibly [LGPLv2.1][15] only libs).
|
||||
* [Clutter][126] - A UI library based on OpenGL. [GNU LGPLv2.1][15] only.
|
||||
* [giflib][401] - A library for reading and writing gif images. [Expat][11].
|
||||
* [heman][365] - A tiny library of image utilities dealing with height maps, normal maps, distance fields and the like. [Expat][11].
|
||||
* [heman][365] - A tiny library of image utilities dealing with height maps,
|
||||
normal maps, distance fields and the like. [Expat][11].
|
||||
* [libcaca][366] - An ASCII renderer for terminal-based interfaces. [WTFPLv2][367].
|
||||
* [libgd][402] - A library for the dynamic creation of images by programmers. [Expat][11].
|
||||
* [libimagequant][300] - Small, portable library for high-quality conversion of RGBA images to 8-bit indexed colour images. [FreeBSD][24].
|
||||
* [libjpeg-turbo][193] - A faster library for reading and writing JPEG files. [Various licences][194].
|
||||
* [libimagequant][300] - Small, portable library for high-quality conversion of
|
||||
RGBA images to 8-bit indexed colour images. [FreeBSD][24].
|
||||
* [libjpeg-turbo][193] - A faster library for reading and writing JPEG
|
||||
files. [Various licences][194].
|
||||
* [libpng][382] - The official PNG reference library. [libpng license][383].
|
||||
* [libsixel][17] - A library implementing the SIXEL protocol, allowing beautiful
|
||||
graphics in your terminal. [Expat][11].
|
||||
* [libxmi][174] - A function library for rasterizing 2D vector graphics. [GNU GPLv3][41] or later.
|
||||
* [libxmi][174] - A function library for rasterizing 2D vector
|
||||
graphics. [GNU GPLv3][41] or later.
|
||||
* [mozjpeg][200] - An improved JPEG encoder. [3-clause BSD][6].
|
||||
* [OpenGL][147] - The industry standard for high-performance graphics, with a native C binding. [Various licenses][148].
|
||||
* [OpenGL][147] - The industry standard for high-performance graphics, with a
|
||||
native C binding. [Various licenses][148].
|
||||
|
||||
## Graphical User Interface ##
|
||||
|
||||
@@ -217,23 +290,24 @@ These are specifically [widget toolkits][12].
|
||||
* [IUP][16] - Another cross-platform widget toolkit. [Expat][11].
|
||||
* [nuklear][408] - A small, C89, single-header widget toolkit. Public domain.
|
||||
* [Tk][19] - A basic widget toolkit. Part of Tcl/Tk. [Tcl/Tk License][20].
|
||||
* [XForms Toolkit][21] - A widget toolkit designed for the XWindow system. [GNU LGPLv2.1][15] only.
|
||||
* [XForms Toolkit][21] - A widget toolkit designed for the XWindow
|
||||
system. [GNU LGPLv2.1][15] only.
|
||||
|
||||
## JSON ##
|
||||
|
||||
* [Jansson][53] - A library for encoding, decoding and manipulating JSON. [Expat][11].
|
||||
* [jsmn][120] - A minimalistic JSON parser. [Expat][11].
|
||||
* [json-c][220] - A library for working with JSON. [Expat][11].
|
||||
* [WJElement][77] - Advanced JSON manipulation library, with support for JSON Schema. LGPL, any version.
|
||||
* [WJElement][77] - Advanced JSON manipulation library, with support for JSON
|
||||
Schema. LGPL, any version.
|
||||
* [YAJL][60] - A fast streaming JSON parser library. [ISC][61]
|
||||
|
||||
## Learning, Reference and Tutorials ##
|
||||
|
||||
This is a list of resources for learning C programming in general, or something useful relating to C programming.
|
||||
This is a list of resources for learning C programming in general, or something
|
||||
useful relating to C programming.
|
||||
|
||||
### Online ###
|
||||
|
||||
#### Reference ####
|
||||
### Reference resources online ###
|
||||
|
||||
* [SEI CERT C Coding Standard][266]
|
||||
* [C FAQ - comp.lang.c Frequently Asked Questions][262]
|
||||
@@ -242,18 +316,19 @@ This is a list of resources for learning C programming in general, or something
|
||||
* [GNU C Reference Manual][329]
|
||||
* [Robert Pike's notes on programming in C][273]
|
||||
|
||||
#### Beginner ####
|
||||
### Beginner resources online ###
|
||||
|
||||
* [A tutorial on pointers][213]
|
||||
* [Building C Projects][208]
|
||||
* [C Programming Wikibook][248]
|
||||
* [Introduction to 'fun' C][279]
|
||||
* [Introduction to \`fun' C][279]
|
||||
* [Learning C with GDB][349]
|
||||
* [POSIX Threads Programming tutorial][263] (a little dated, but most of it is still valid and useful)
|
||||
* [POSIX Threads Programming tutorial][263] (a little dated, but most of it is
|
||||
still valid and useful)
|
||||
* [The GNU C Programming Tutorial][212] (online PDF)
|
||||
* [Templating in C][267]
|
||||
|
||||
#### Intermediate ####
|
||||
### Intermediate resources online ###
|
||||
|
||||
* [8 gdb tricks you should know][206]
|
||||
* [10 C99 tricks][257]
|
||||
@@ -267,7 +342,7 @@ This is a list of resources for learning C programming in general, or something
|
||||
* [What a C programmer should know about memory][271]
|
||||
* [What every C programmer should know about undefined behaviour][275]
|
||||
|
||||
#### Advanced ####
|
||||
### Advanced resources online ###
|
||||
|
||||
* [Advanced metaprogramming in C][357]
|
||||
* [A quick tutorial on implementing and debugging malloc, free, calloc, and realloc][204]
|
||||
@@ -279,140 +354,202 @@ This is a list of resources for learning C programming in general, or something
|
||||
* [Solving the temporary storage problem of C macros][358]
|
||||
* [Some dark corners of C][210]
|
||||
* [Writing efficient C and C code optimization][33]
|
||||
|
||||
#### Self-study courses ####
|
||||
|
||||
### Online self-study courses ###
|
||||
|
||||
* [C Programming Language Certified Associate preparation course][211]
|
||||
|
||||
### Physical ###
|
||||
|
||||
#### Reference ####
|
||||
### Reference books ###
|
||||
|
||||
* [C: A Reference Manual 5E][181] - A full reference book for C99.
|
||||
* [C Pocket Reference][182] - A concise reference book for C99.
|
||||
* [The C Programming Language 2E][7] - The original book on C, by its creators.
|
||||
|
||||
#### Beginner ####
|
||||
### 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 from C from.
|
||||
* [C Programming: A Modern Approach][64] - An excellent book to learn the basics
|
||||
from C from.
|
||||
* [Head First C][102] - A 'head-first' style book for learning C.
|
||||
|
||||
#### Intermediate ####
|
||||
### 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 C.
|
||||
* [Understanding and Using C Pointers][36] - An in-depth resource on pointers in
|
||||
C.
|
||||
* [ZeroMQ][183] - A book for using ZeroMQ with C.
|
||||
|
||||
#### Advanced ####
|
||||
### 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] - An interesting, in-depth and
|
||||
*entertaining* look at the innards of C.
|
||||
|
||||
## Multimedia ##
|
||||
|
||||
* [FFMPEG][63] - A complete, cross-platform solution to record, convert and stream audio and video. [GNU LGPLv2.1][15] or later, with some parts under [GNU GPLv2.1][8] or later.
|
||||
* [FFMPEG][63] - A complete, cross-platform solution to record, convert and
|
||||
stream audio and video. [GNU LGPLv2.1][15] or later, with some parts
|
||||
under [GNU GPLv2.1][8] or later.
|
||||
* [GStreamer][123] - A framework for audio and visual media. [GNU LGPLv2.1][15] only.
|
||||
* [lodepng][69] - A simple PNG image decoder and encoder, requiring no other dependencies. [3-clause BSD][6].
|
||||
* [lodepng][69] - A simple PNG image decoder and encoder, requiring no other
|
||||
dependencies. [3-clause BSD][6].
|
||||
|
||||
## Networking and Internet ##
|
||||
|
||||
* [asnlc][138] - A compiler of ASN.1 specifications into C source code. [FreeBSD][24].
|
||||
* [czmq][226] - A high-level binding for ZeroMQ. [MPL2.0][227]
|
||||
* [GNU adns][155] - An advanced, easy-to-use, asynch-capable DNS client library and utilities. [GNU GPLv3][41] or later.
|
||||
* [GNU SASL][160] - An implementation of the Simple Authentication and Security Layer and a few common SASL mechanism. [GNU GPLv3][41] or later.
|
||||
* [GnuTLS][112] - A secure communication library, implementing SSL, TLS and DTLS. [GNU LGPLv2.1][15] or later.
|
||||
* [GNU adns][155] - An advanced, easy-to-use, asynch-capable DNS client library
|
||||
and utilities. [GNU GPLv3][41] or later.
|
||||
* [GNU SASL][160] - An implementation of the Simple Authentication and Security
|
||||
Layer and a few common SASL mechanism. [GNU GPLv3][41] or later.
|
||||
* [GnuTLS][112] - A secure communication library, implementing SSL, TLS and
|
||||
DTLS. [GNU LGPLv2.1][15] or later.
|
||||
* [gumbo-parser][196] - An HTML5 parsing library in C99. [Apache2.0][32].
|
||||
* [http-parser][197] - An HTTP request/response parser. [Expat][11].
|
||||
* [ldns][339] - A library to simplify DNS programming. [3-clause BSD][6].
|
||||
* [libcurl][65] - A client-side URL transfer library, supporting a wide range of formats. [curl license][66]
|
||||
* [LibEtPan][222] - A mail library providing an efficient network for IMAP, SMTP, POP and NNTP. [3-clause BSD][6].
|
||||
* [libcurl][65] - A client-side URL transfer library, supporting a wide range of
|
||||
formats. [curl license][66].
|
||||
* [LibEtPan][222] - A mail library providing an efficient network for IMAP,
|
||||
SMTP, POP and NNTP. [3-clause BSD][6].
|
||||
* [libev][144] - Yet another event loop. [FreeBSD][24].
|
||||
* [libevent][124] - An event loop replacement for network servers. [3-clause BSD][6].
|
||||
* [libgss][161] - Generic Security Service. [GNU GPLv3][41] or later.
|
||||
* [libhttpd][166] - A library to add basic web server capabilities to an application or embedded device. [GNU GPL2][41] only.
|
||||
* [libidn][164] - An implementation of the Stringprep, Punycode and IDNA specifications. [GNU GPLv3][41] or later.
|
||||
* [libmicrohttpd][165] - A small library that makes it easy to run an HTTP server as part of another application. [GNU LGPLv2.1][15] or later.
|
||||
* [libquickmail][399] - A library intended to give developers a way to send email from their applications. Supports multiple To/Cc/Bcc recipients and attachments without size limits. [GNU GPLv3][41] or later.
|
||||
* [libsoup][167] - A GNOME HTTP client/server library. Uses GObject. [GNU LGPLv2.1][15] only.
|
||||
* [lwan][199] - An experimental, scalable, high-performance HTTP server. [GNU GPLv2.1][8] only.
|
||||
* [libhttpd][166] - A library to add basic web server capabilities to an
|
||||
application or embedded device. [GNU GPLv2][41] only.
|
||||
* [libidn][164] - An implementation of the Stringprep, Punycode and IDNA
|
||||
specifications. [GNU GPLv3][41] or later.
|
||||
* [libmicrohttpd][165] - A small library that makes it easy to run an HTTP
|
||||
server as part of another application. [GNU LGPLv2.1][15] or later.
|
||||
* [libquickmail][399] - A library intended to give developers a way to send
|
||||
email from their applications. Supports multiple To/Cc/Bcc recipients and
|
||||
attachments without size limits. [GNU GPLv3][41] or later.
|
||||
* [libsoup][167] - A GNOME HTTP client/server library. Uses
|
||||
GObject. [GNU LGPLv2.1][15] only.
|
||||
* [lwan][199] - An experimental, scalable, high-performance HTTP
|
||||
server. [GNU GPLv2.1][8] only.
|
||||
* [mongoose][171] - Embedded web server. [GNU GPLv2.1][8] only.
|
||||
* [nanomsg][139] - A C-based implementation of ZeroMQ. [Expat][11].
|
||||
* [onion][170] - HTTP server library, designed to be easy to use. [Apache2.0][32].
|
||||
* [OpenSSL][110] - Implementation of the SSL and TLS protocols, and also includes a cryptography library. [Dual Licensed under the OpenSSL License and the SSLeay License][111]
|
||||
* [oSip][179] - A SIP implementation without additional dependencies. [GNU LGPLv2.1][15] or later.
|
||||
* [s2n][359] - A C99 implementation of the TLS/SSL protocols, designed to be simple, fast and with security as a priority. [Apache2.0][32].
|
||||
* [OpenSSL][110] - Implementation of the SSL and TLS protocols, and also
|
||||
includes a cryptography
|
||||
library. [Dual Licensed under the OpenSSL License and the SSLeay License][111].
|
||||
* [oSip][179] - A SIP implementation without additional
|
||||
dependencies. [GNU LGPLv2.1][15] or later.
|
||||
* [s2n][359] - A C99 implementation of the TLS/SSL protocols, designed to be
|
||||
simple, fast and with security as a priority. [Apache2.0][32].
|
||||
* [socket99][203] - A C99 wrapper for the BSD sockets API. [ISC][61].
|
||||
* [Tox][145] - A communication platform, designed to be a Skype-killer. [GNU GPLv3][41] only.
|
||||
* [Tox][145] - A communication platform, designed to be a
|
||||
Skype-killer. [GNU GPLv3][41] only.
|
||||
* [twitc][237] - A mini library for interacting with the Twitter OAuth API. [Expat][11].
|
||||
|
||||
### Web Frameworks ###
|
||||
|
||||
* [balde][386] - A microframework based on GLib. [GNU LGPLv2.1][15] only.
|
||||
* [Kore][415] - An easy-to-use web application framework for writing scalable
|
||||
web APIs in C. [ISC][61].
|
||||
|
||||
## Numerical ##
|
||||
|
||||
* [apophenia][188] - A library for statistical and scientific computing. [GNU GPLv2.1][8] only.
|
||||
* [apophenia][188] - A library for statistical and scientific
|
||||
computing. [GNU GPLv2.1][8] only.
|
||||
* [ATLAS][137] - Automatically Tuned Linear Algebra Software. [3-clause BSD][6].
|
||||
* [BLAS][135] - Basic Linear Algebra Subprograms; a set of routines that provide vector and matrix operations. [BLAS license][136]
|
||||
* [Cuba][316] - A library for multidimensional numerical integration. [GNU LGPLv3][5] only.
|
||||
* [FFTW][70] - The Fastest Fourier Transform in the West; a highly-optimized fast Fourier transform routine. [GNU GPLv2.1][8] or later.
|
||||
* [FLINT][255] - Fast Library for Number Theory; a library supporting arithmetic with numbers, polynomials, power series and matrices, among others. [GNU GPLv2.1][8] or later.
|
||||
* [GLPK][159] - GNU Linear Programming Kit; a package designed for solving large-scale linear programming, mixed integer programming and other related problems. [GNU GPLv3][41] or later.
|
||||
* [GMP][79] - GNU Multple Precision Arithmetic Library; a library for arbitrary-precision arithmetic. Dual-licensed [GNU GPLv2.1][8] only and [GNU LGPLv3][5] only.
|
||||
* [BLAS][135] - Basic Linear Algebra Subprograms; a set of routines that provide
|
||||
vector and matrix operations. [BLAS license][136].
|
||||
* [Cuba][316] - A library for multidimensional numerical
|
||||
integration. [GNU LGPLv3][5] only.
|
||||
* [FFTW][70] - The Fastest Fourier Transform in the West; a highly-optimized
|
||||
fast Fourier transform routine. [GNU GPLv2.1][8] or later.
|
||||
* [FLINT][255] - Fast Library for Number Theory; a library supporting arithmetic
|
||||
with numbers, polynomials, power series and matrices, among
|
||||
others. [GNU GPLv2.1][8] or later.
|
||||
* [GLPK][159] - GNU Linear Programming Kit; a package designed for solving
|
||||
large-scale linear programming, mixed integer programming and other related
|
||||
problems. [GNU GPLv3][41] or later.
|
||||
* [GMP][79] - GNU Multple Precision Arithmetic Library; a library for
|
||||
arbitrary-precision arithmetic. Dual-licensed [GNU GPLv2.1][8] only
|
||||
and [GNU LGPLv3][5] only.
|
||||
* [GNU MPC][175] - A library for complex number arithmetic. [GNU LGPLv3][5] or later.
|
||||
* [GNU MPFR][176] - A library for arbitrary-precision floating-point arithmetic. [GNU LGPLv3][5] or later (most recent versions), [GNU LGPLv2.1][15] or later (until version 2.4.x).
|
||||
* [GNU MPRIA][177] - A portable mathematics library for multi-precision rational interval arithmetic. [GNU GPLv3][41] or later.
|
||||
* [GSL][47] - The GNU Scientific Library; a sophisticated numerical library. [GNU GPLv3][41] only.
|
||||
* [GNU MPFR][176] - A library for arbitrary-precision floating-point
|
||||
arithmetic. [GNU LGPLv3][5] or later (most recent
|
||||
versions), [GNU LGPLv2.1][15] or later (until version 2.4.x).
|
||||
* [GNU MPRIA][177] - A portable mathematics library for multi-precision rational
|
||||
interval arithmetic. [GNU GPLv3][41] or later.
|
||||
* [GSL][47] - The GNU Scientific Library; a sophisticated numerical
|
||||
library. [GNU GPLv3][41] only.
|
||||
* [KISS FFT][71] - A very simple fast Fourier transform library. [3-clause BSD][6].
|
||||
* [LAPACKE][133] - An interface to [LAPACK][134]. [3-clause BSD][6].
|
||||
* [PARI/GP][256] - A computer algebra system for number theory; includes a compiler to C. [GNU GPLv2.1][8] or later.
|
||||
* [PETSc][282] - A suite of data structures and routines for scalable parallel solution of scientific applications modelled by partial differential equations. [FreeBSD][24].
|
||||
* [SLEPc][283] - A software library for the solution of large, sparse eigenvalue problems on parallel computers. [GNU LGPLv3][5] only.
|
||||
* [PARI/GP][256] - A computer algebra system for number theory; includes a
|
||||
compiler to C. [GNU GPLv2.1][8] or later.
|
||||
* [PETSc][282] - A suite of data structures and routines for scalable parallel
|
||||
solution of scientific applications modelled by partial differential
|
||||
equations. [FreeBSD][24].
|
||||
* [SLEPc][283] - A software library for the solution of large, sparse eigenvalue
|
||||
problems on parallel computers. [GNU LGPLv3][5] only.
|
||||
* [Yeppp!][72] - Very fast, SIMD-optimized mathematical library. [3-clause BSD][6].
|
||||
|
||||
## Regex ##
|
||||
|
||||
> "Some people, when confronted with a problem, think 'I know, I'll use regular expressions'. Now they have two problems." - Jamie Zawinski.
|
||||
> "Some people, when confronted with a problem, think 'I know, I'll use regular
|
||||
> expressions'. Now they have two problems." - Jamie Zawinski.
|
||||
|
||||
* [PCRE][83] - An implementation of regexes identical to that of Perl 5. [3-clause BSD][6].
|
||||
* [SLRE][80] - Super Light Regular Expression library; a very small implementation of a subset of Perl regex syntax. [GNU GPLv2.1][8] only.
|
||||
* [PCRE][83] - An implementation of regexes identical to that of
|
||||
Perl 5. [3-clause BSD][6].
|
||||
* [SLRE][80] - Super Light Regular Expression library; a very small
|
||||
implementation of a subset of Perl regex syntax. [GNU GPLv2.1][8] only.
|
||||
* [TRE][82] - A POSIX-compliant, feature-full regex library. [FreeBSD][24].
|
||||
|
||||
## Serialization ##
|
||||
|
||||
* [binn][400] - A binary serialization format, meant to be compact, fast and easy-to-use. [Apache2.0][32].
|
||||
* [c-capnproto][130] - An implementation of the Cap'n Proto serialization protocol. [Expat][11].
|
||||
* [cmp][377] - An implementation of the [MessagePack][379] serialization protocol. [Expat][11].
|
||||
* [binn][400] - A binary serialization format, meant to be compact, fast and
|
||||
easy-to-use. [Apache2.0][32].
|
||||
* [c-capnproto][130] - An implementation of the Cap'n Proto serialization
|
||||
protocol. [Expat][11].
|
||||
* [cmp][377] - An implementation of the [MessagePack][379] serialization
|
||||
protocol. [Expat][11].
|
||||
* [libavro][140] - An implementation of the Avro data serialization system. [Apache2.0][32].
|
||||
* [mpack][378] - Another implementation of the [MessagePack][379] serialization protocol. [Expat][11].
|
||||
* [mpack][378] - Another implementation of the [MessagePack][379] serialization
|
||||
protocol. [Expat][11].
|
||||
* [protobuf-c][129] - An implementation of Google Protocol Buffer. [FreeBSD][24].
|
||||
* [xdr][131] - External Data Representation; a standard for data serialization. Standard (no license applicable).
|
||||
* [xdr][131] - External Data Representation; a standard for data
|
||||
serialization. Standard (no license applicable).
|
||||
|
||||
## Source Code Collections ##
|
||||
|
||||
This contains collections of small source code. If you want something big and integrated, check the Frameworks section.
|
||||
This contains collections of small source code. If you want something big and
|
||||
integrated, check the Frameworks section.
|
||||
|
||||
* [CCAN][103] - Modelled after Perl's CPAN, this is a big collection of code that does stuff. The full list is [here][104]. Various licenses, all free.
|
||||
* [clib][26] - Something of a package manager. Comes with a [bunch of libraries of its own][27]. [Expat][11].
|
||||
* [CCAN][103] - Modelled after Perl's CPAN, this is a big collection of code
|
||||
that does stuff. The full list is [here][104]. Various licenses, all free.
|
||||
* [clib][26] - Something of a package manager. Comes with
|
||||
a [bunch of libraries of its own][27]. [Expat][11].
|
||||
* [gnulib][46] - A collection of common GNU code. Various licenses, all free.
|
||||
* [libdjb][292] - A collection of libraries doing various things. (Apparently) public domain.
|
||||
* [libdjb][292] - A collection of libraries doing various things. (Apparently)
|
||||
public domain.
|
||||
|
||||
## Standard Libraries ##
|
||||
|
||||
This contains standard C libraries.
|
||||
|
||||
* [Bionic][4] - Google's standard library, developed for Android. [3-clause BSD][6].
|
||||
* [dietlibc][9] - A standard library designed for the smallest possible binaries. [GNU GPLv2.1][8] only.
|
||||
* [glibc][57] - The GNU C Library; an implementation of the standard library. [GNU LGPLv2.1][15] only.
|
||||
* [musl][10] - A standard library, compatible with POSIX 2008 and C11. Designed for static linking. [Expat][11].
|
||||
* [dietlibc][9] - A standard library designed for the smallest possible
|
||||
binaries. [GNU GPLv2.1][8] only.
|
||||
* [glibc][57] - The GNU C Library; an implementation of the standard
|
||||
library. [GNU LGPLv2.1][15] only.
|
||||
* [musl][10] - A standard library, compatible with POSIX 2008 and C11. Designed
|
||||
for static linking. [Expat][11].
|
||||
|
||||
## String Manipulation ##
|
||||
|
||||
* [bstrlib][116] - The Better String Library. Dual-licensed under [3-clause BSD][6] or [GNU GPLv2.1][8] only.
|
||||
* [ICU][67] - International Components for Unicode; a library for Unicode support. [ICU license][68].
|
||||
* [libunistring][173] - A library for manipulating Unicode strings. [GNU LGPLv3][5] only.
|
||||
* [libgiconv][163] - A text conversion library. [GNU LGPLv2.1][15] only (library), [GNU GPLv3][41] only (*iconv* program).
|
||||
* [SDS][29] - Simple Dynamic Strings; a library for handling strings in a simpler way, but one that is compatible with normal C string functions. Available via [clib][26]. [FreeBSD][24].
|
||||
* [bstrlib][116] - The Better String Library. Dual-licensed
|
||||
under [3-clause BSD][6] or [GNU GPLv2.1][8] only.
|
||||
* [ICU][67] - International Components for Unicode; a library for Unicode
|
||||
support. [ICU license][68].
|
||||
* [libunistring][173] - A library for manipulating Unicode
|
||||
strings. [GNU LGPLv3][5] only.
|
||||
* [libgiconv][163] - A text conversion library. [GNU LGPLv2.1][15] only
|
||||
(library), [GNU GPLv3][41] only (*iconv* program).
|
||||
* [SDS][29] - Simple Dynamic Strings; a library for handling strings in a
|
||||
simpler way, but one that is compatible with normal C string
|
||||
functions. Available via [clib][26]. [FreeBSD][24].
|
||||
* [shoco][363] - A compressor for small text strings. [Expat][11].
|
||||
* [smaz][364] - An efficient string compression library. [3-clause BSD][6].
|
||||
|
||||
@@ -432,13 +569,17 @@ This contains standard C libraries.
|
||||
|
||||
## Text Editor Extensions ##
|
||||
|
||||
While practically any decent programmer's text editor supports C, there are some extensions that make it more pleasant. This is categorized by editor.
|
||||
While practically any decent programmer's text editor supports C, there are some
|
||||
extensions that make it more pleasant. This is categorized by editor.
|
||||
|
||||
### Emacs ###
|
||||
|
||||
* [CEDET][250] - Collection of Emacs Development Environment Tools; designed to provide IDE-like features to Emacs. Built-in. [GNU GPLv3][41] or later.
|
||||
* [Flycheck][149] - Modern syntax checking. For C, it can use either GCC or Clang as a back-end. [GNU GPLv3][41] or later.
|
||||
* [Yasnippet][150] - A template system, with C templates for common code snippets. [GNU GPLv3][41] or later.
|
||||
* [CEDET][250] - Collection of Emacs Development Environment Tools; designed to
|
||||
provide IDE-like features to Emacs. Built-in. [GNU GPLv3][41] or later.
|
||||
* [Flycheck][149] - Modern syntax checking. For C, it can use either GCC or
|
||||
Clang as a back-end. [GNU GPLv3][41] or later.
|
||||
* [Yasnippet][150] - A template system, with C templates for common code
|
||||
snippets. [GNU GPLv3][41] or later.
|
||||
|
||||
### Vim ###
|
||||
|
||||
@@ -447,12 +588,15 @@ While practically any decent programmer's text editor supports C, there are some
|
||||
|
||||
## Tools ##
|
||||
|
||||
This is a list of useful programs to help you write and debug C code which are *not* editors, libraries or compilers.
|
||||
This is a list of useful programs to help you write and debug C code which are
|
||||
*not* editors, libraries or compilers.
|
||||
|
||||
* [Artistic Style][314] - A fast and small automatic source code formatter that supports C. [GNU LGPLv3][5] only.
|
||||
* [Artistic Style][314] - A fast and small automatic source code formatter that
|
||||
supports C. [GNU LGPLv3][5] only.
|
||||
* [address-sanitizer][288] - A fast memory error detector. [Apache2.0][32].
|
||||
* [biicode][304] - A modern dependency manager. [Expat][11].
|
||||
* [c][276] - Compile and execute C "scripts" in one go on the command line. Also has shebang support. [Expat][11].
|
||||
* [c][276] - Compile and execute C "scripts" in one go on the command line. Also
|
||||
has shebang support. [Expat][11].
|
||||
* [C-Reduce][403] - A 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
|
||||
@@ -460,27 +604,49 @@ This is a list of useful programs to help you write and debug C code which are *
|
||||
* [CScout][410] - A source code analyzer and refactoring browser for C
|
||||
programs. [GNU GPLv3][41] only.
|
||||
* [c99sh][113] - Run C files using hash-bang. [FreeBSD][24].
|
||||
* [CBMC][309] - C Bounded Model Checker; a tool for verification of array bounds, pointer safety and user-specified assertions. [Original BSD][310].
|
||||
* [cdecl][348] - An online service to translate C declarations into English and vice versa. Public domain.
|
||||
* [cflow][404] - Analyzes a collection of source files and prints a graph charting control flow in the program. [GNU GPLv3][41] or later.
|
||||
* [cinclude2dot][280] - Graphs include dependencies in a project using Graphviz. Any GNU GPL version (due to underspecification in the file).
|
||||
* [Complexity][307] - A tool for measuring the complexity of source code. [GNU GPLv3][41] or later.
|
||||
* [DDD][320] - A graphical front-end for a range of command-line debuggers. [GNU GPLv3][41] or later.
|
||||
* [fab][323] - A build system that helps build optimally every time. [GNU GPLv3][41] only.
|
||||
* [CBMC][309] - C Bounded Model Checker; a tool for verification of array
|
||||
bounds, pointer safety and user-specified assertions. [Original BSD][310].
|
||||
* [cdecl][348] - An online service to translate C declarations into English and
|
||||
vice versa. Public domain.
|
||||
* [cflow][404] - Analyzes a collection of source files and prints a graph
|
||||
charting control flow in the program. [GNU GPLv3][41] or later.
|
||||
* [cinclude2dot][280] - Graphs include dependencies in a project using
|
||||
Graphviz. Any GNU GPL version (due to underspecification in the file).
|
||||
* [Complexity][307] - A tool for measuring the complexity of source
|
||||
code. [GNU GPLv3][41] or later.
|
||||
* [DDD][320] - A graphical front-end for a range of command-line
|
||||
debuggers. [GNU GPLv3][41] or later.
|
||||
* [fab][323] - A build system that helps build optimally every
|
||||
time. [GNU GPLv3][41] only.
|
||||
* [GDB][87] - The GNU Project debugger. [GNU GPLv3][41] or later.
|
||||
* [Glade][328] - A RAD tool to enable quick development of GTK+ GUIs. [GNU GPLv2.1][8] only.
|
||||
* [GMSL][331] - GNU Make Standard Library; a collection of additional functionality for GNU Make. [3-clause BSD][6].
|
||||
* [Glade][328] - A RAD tool to enable quick development of GTK+
|
||||
GUIs. [GNU GPLv2.1][8] only.
|
||||
* [GMSL][331] - GNU Make Standard Library; a collection of additional
|
||||
functionality for GNU Make. [3-clause BSD][6].
|
||||
* [GNU Global][330] - A source code tagging tool. [GNU GPLv3][41] only.
|
||||
* [gprof][86] - A performance analysis tool. Part of GNU binutils. [GNU GPLv3][41] or later.
|
||||
* [Highlight][333] - Converts source code to formatted text with nice highlighting. [GNU GPLv3][41] only.
|
||||
* [include-what-you-use][289] - Helps find unecessary inclusions and make suggestions for fixing them. Based on LLVM/Clang (and only works with it). [NCSA][39].
|
||||
* [indent][315] - Formats C source code automatically to make it easier to read. Also converts from one style of source to another. [GNU GPLv3][41] or later.
|
||||
* [Make][324] - A tool which controls the generation of executables and other non-source files of a program. [GNU GPLv3][41] or later (link to the GNU implementation).
|
||||
* [gprof][86] - A performance analysis tool. Part of GNU
|
||||
binutils. [GNU GPLv3][41] or later.
|
||||
* [Highlight][333] - Converts source code to formatted text with nice
|
||||
highlighting. [GNU GPLv3][41] only.
|
||||
* [include-what-you-use][289] - Helps find unecessary inclusions and make
|
||||
suggestions for fixing them. Based on LLVM/Clang (and only works with
|
||||
it). [NCSA][39].
|
||||
* [indent][315] - Formats C source code automatically to make it easier to
|
||||
read. Also converts from one style of source to another. [GNU GPLv3][41] or
|
||||
later.
|
||||
* [Make][324] - A tool which controls the generation of executables and other
|
||||
non-source files of a program. [GNU GPLv3][41] or later (link to the GNU
|
||||
implementation).
|
||||
* [qo][274] - A build system that works without a separate config file. [Expat][11].
|
||||
* [rr][95] - A debugger that records non-deterministic executions to allow for deterministic debugging. [FreeBSD][24].
|
||||
* [tup][326] - A very fast, file-based, cross-platform build system. [GNU GPLv2.1][8] only.
|
||||
* [unifdef][290] - Removes #ifdef and #if directives with their delimited text without touching any other part of the file. [3-clause BSD][6] and [FreeBSD][24].
|
||||
* [Valgrind][85] - A range of dynamic analysis tools, including a leak checker. [GNU GPLv2.1][8] only.
|
||||
* [rr][95] - A debugger that records non-deterministic executions to allow for
|
||||
deterministic debugging. [FreeBSD][24].
|
||||
* [tup][326] - A very fast, file-based, cross-platform build
|
||||
system. [GNU GPLv2.1][8] only.
|
||||
* [unifdef][290] - Removes #ifdef and #if directives with their delimited text
|
||||
without touching any other part of the file. [3-clause BSD][6]
|
||||
and [FreeBSD][24].
|
||||
* [Valgrind][85] - A range of dynamic analysis tools, including a leak
|
||||
checker. [GNU GPLv2.1][8] only.
|
||||
|
||||
## Utilities ##
|
||||
|
||||
@@ -489,76 +655,119 @@ This is a 'catch-all' category for anything that doesn't fit well anywhere else.
|
||||
* [ApeTagLibs][345] - A library for working with APEv2 tags. [Expat][11].
|
||||
* [argparse][413] - A command-line argument parsing library, inspired by
|
||||
Python's argparse module. [Expat][11].
|
||||
* [bfd][157] - A library for manipulating binary object files. Part of GNU binutils. [GNU GPLv3][41] or later.
|
||||
* [ccv][195] - C-based/Cached/Core Computer Vision library; modern computer vision. [3-clause BSD][6].
|
||||
* [cf4ocl][311] - The C Framework for OpenCL; a cross-platform object-oriented framework for developing and benchmarking [OpenCL][312] projects. [GNU LGPLv3][5] only (library), [GNU GPLv3][41] or later (other code).
|
||||
* [CommonMark][223] - An implementation of the CommonMark spec. [Variety of licenses, all free][224].
|
||||
* [bfd][157] - A library for manipulating binary object files. Part of GNU
|
||||
binutils. [GNU GPLv3][41] or later.
|
||||
* [ccv][195] - C-based/Cached/Core Computer Vision library; modern computer
|
||||
vision. [3-clause BSD][6].
|
||||
* [cf4ocl][311] - The C Framework for OpenCL; a cross-platform object-oriented
|
||||
framework for developing and benchmarking [OpenCL][312]
|
||||
projects. [GNU LGPLv3][5] only (library), [GNU GPLv3][41] or later (other
|
||||
code).
|
||||
* [CommonMark][223] - An implementation of the CommonMark
|
||||
spec. [Variety of licenses, all free][224].
|
||||
* [CException][298] - An implementation of exceptions. [Expat][11].
|
||||
* [dlx][388] - An implementation of [Knuth's Algorithm X][389], with example solvers. [GNU GPLv3][41] or later.
|
||||
* [dlx][388] - An implementation of [Knuth's Algorithm X][389], with example
|
||||
solvers. [GNU GPLv3][41] or later.
|
||||
* [docopt.c][270] - An implementation of a command-line option parser. [Expat][11].
|
||||
* [dyncall][281] - Another foreign function interface library. [Expat][11].
|
||||
* [FANN][325] - Fast Artifical Neural Network library; an implementation of neural networks. [GNU GPLv2.1][8] only.
|
||||
* [Firm][361] - A 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. [GNU LGPLv2.1][15] only.
|
||||
* [FANN][325] - Fast Artifical Neural Network library; an implementation of
|
||||
neural networks. [GNU GPLv2.1][8] only.
|
||||
* [Firm][361] - A 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. [GNU LGPLv2.1][15] only.
|
||||
* [Genann][412] - A simple ANN in C89, without additional dependencies. [zlib][49].
|
||||
* [gjrand][327] - A library of random-number generation routines. [GNU GPLv2.1][8] only or [GNU GPLv3][41] only (user's choice).
|
||||
* [GNU FreeIPMI][158] - An in-band and out-of-band IPMI implementation. [GNU GPLv3][41] only.
|
||||
* [GNU gperf][351] - A perfect hash function generator, given a list of strings. Outputs C code. [GNU GPLv3][41] or later.
|
||||
* [GNU Libffcall][162] - A collection of libraries for building foreign function interfaces. [GNU GPLv3][41] or later.
|
||||
* [gperftools][295] - A collection of utilities for measuring and improving performance. [3-clause BSD][6].
|
||||
* [gjrand][327] - A library of random-number generation
|
||||
routines. [GNU GPLv2.1][8] only or [GNU GPLv3][41] only (user's choice).
|
||||
* [GNU FreeIPMI][158] - An in-band and out-of-band IPMI
|
||||
implementation. [GNU GPLv3][41] only.
|
||||
* [GNU gperf][351] - A perfect hash function generator, given a list of
|
||||
strings. Outputs C code. [GNU GPLv3][41] or later.
|
||||
* [GNU Libffcall][162] - A collection of libraries for building foreign function
|
||||
interfaces. [GNU GPLv3][41] or later.
|
||||
* [gperftools][295] - A collection of utilities for measuring and improving
|
||||
performance. [3-clause BSD][6].
|
||||
* [hammer][356] - Parser combinators for binary formats. [GNU GPLv2.1][8] only.
|
||||
* [Hans Boehm GC][125] - Garbage collection for C? Don't mind if I do! Various licenses, all free.
|
||||
* [Hoedown][405] - A fully-standards-compliant, extension-supporting, UTF-8 aware, fast Markdown parser. [Expat][11].
|
||||
* [Hans Boehm GC][125] - Garbage collection for C? Don't mind if I do! Various
|
||||
licenses, all free.
|
||||
* [Hoedown][405] - A fully-standards-compliant, extension-supporting, UTF-8
|
||||
aware, fast Markdown parser. [Expat][11].
|
||||
* [huffandpuff][214] - A minimal Huffman encoder and decoder. Public domain.
|
||||
* [iniparser][336] - A parser for .ini files. [Expat][11].
|
||||
* [jemalloc][293] - A malloc implementation that emphasizes avoidance of fragmentation and scalable concurrency support. [FreeBSD][24].
|
||||
* [jemalloc][293] - A malloc implementation that emphasizes avoidance of
|
||||
fragmentation and scalable concurrency support. [FreeBSD][24].
|
||||
* [jwHash][350] - A fast hashtable implementation. [Apache2.0][32].
|
||||
* [kdtree][337] - A simple library for working with KD-trees. [3-clause BSD][6].
|
||||
* [Kitsune][355] - An efficient, general-purpose framework for dynamic software updating. [GNU LGPLv3][5] or later.
|
||||
* [libavl][156] - A library containing a range of self-balancing binary trees. [GNU GPLv3][41] or later.
|
||||
* [Kitsune][355] - An efficient, general-purpose framework for dynamic software
|
||||
updating. [GNU LGPLv3][5] or later.
|
||||
* [libavl][156] - A library containing a range of self-balancing binary
|
||||
trees. [GNU GPLv3][41] or later.
|
||||
* [libbson][235] - A BSON utility library. [Apache2.0][32].
|
||||
* [libCello][96] - A library introducing higher-level programming to C. [3-clause BSD][6].
|
||||
* [libcox][373] - A library which permits cross-platform system calls and standard utilities across different operating systems. [FreeBSD][24].
|
||||
* [libCello][96] - A library introducing higher-level programming to
|
||||
C. [3-clause BSD][6].
|
||||
* [libcox][373] - A library which permits cross-platform system calls and
|
||||
standard utilities across different operating systems. [FreeBSD][24].
|
||||
* [libcsv][387] - A simple, streaming CSV parser. [GNU LGPLv2.1][15] or later.
|
||||
* [libffi][128] - A portable foreign-function interface library. [Expat][11].
|
||||
* [libgit2][108] - Pure C implementation of Git. [GNU GPL2 only, with a linking exception][109].
|
||||
* [liblfds][411] - A portable lock-free data structure library. Public domain
|
||||
(more exactly, whatever license you want).
|
||||
* [libimobiledevice][354] - A cross-platform protocol library to communicate with iThings. [GNU LGPLv2.1][15] or later (library), [GNU GPLv2.1][8] or later (tools).
|
||||
* [libmpv][348] - A music-playing library. Compile with ``./waf configure --disable-cplayer --enable-libmpv-shared`` to not have the music player. [GNU GPLv2.1][8] or later.
|
||||
* [libnfc][332] - A platform-independent Near-Field Communication library. [GNU LGPLv3][5] only.
|
||||
* [libPhenom][31] - An eventing framework for building high-scalability and high-performance systems. [Apache2.0][32].
|
||||
* [libsoundio][372] - A library for cross-platform, real-time audio input and output. Has a range of back-ends. [Expat][11].
|
||||
* [libimobiledevice][354] - A cross-platform protocol library to communicate
|
||||
with iThings. [GNU LGPLv2.1][15] or later (library), [GNU GPLv2.1][8] or later
|
||||
(tools).
|
||||
* [libmpv][348] - A music-playing library. Compile with ``./waf configure
|
||||
--disable-cplayer --enable-libmpv-shared`` to not have the music
|
||||
player. [GNU GPLv2.1][8] or later.
|
||||
* [libnfc][332] - A platform-independent Near-Field Communication
|
||||
library. [GNU LGPLv3][5] only.
|
||||
* [libPhenom][31] - An eventing framework for building high-scalability and
|
||||
high-performance systems. [Apache2.0][32].
|
||||
* [libsoundio][372] - A library for cross-platform, real-time audio input and
|
||||
output. Has a range of back-ends. [Expat][11].
|
||||
* [libucl][239] - A universal configuration library parser. [FreeBSD][24].
|
||||
* [libuv][56] - Cross-platform asynchronous I/O. [Expat][11].
|
||||
* [libYAML][341] - A YAML 1.1 parser and emitter. [Expat][11].
|
||||
* [libxo][407] - Allows an application to generate plain text, XML, JSON and HTML output using a common set of function calls. The application decides at runtime what output style should be produced. [FreeBSD][24].
|
||||
* [libxo][407] - Allows an application to generate plain text, XML, JSON and
|
||||
HTML output using a common set of function calls. The application decides at
|
||||
runtime what output style should be produced. [FreeBSD][24].
|
||||
* [lzo][338] - A very fast data compression library. [GNU GPLv2.1][8] or later.
|
||||
* [mpc][238] - A parser combinator library. [FreeBSD][24].
|
||||
* [ncurses][178] - Coloured terminal UI library. [GNU GPLv3][41] or later.
|
||||
* [nope.c][209] - An ultra-light software platform for scalable server-side and networking applications (think node.js for C programmers). [GNU GPLv2.1][8] only.
|
||||
* [nope.c][209] - An ultra-light software platform for scalable server-side and
|
||||
networking applications (think node.js for C programmers). [GNU GPLv2.1][8]
|
||||
only.
|
||||
* [pbc][236] - A protocol buffers library. [Expat][11].
|
||||
* [rabbitmq-c][228] - A client library for [RabbitMQ][229]. [Expat][11].
|
||||
* [Ragel][54] - A DSL for state machines that compiles to C. [GNU GPLv2.1][8] only.
|
||||
* [sort][190] - A collection of sorting routines, designed to run at compile-time with a user-defined type. [Expat][11].
|
||||
* [squash][393] - A compression abstraction library, complete with some utilities. [Expat][11].
|
||||
* [sort][190] - A collection of sorting routines, designed to run at
|
||||
compile-time with a user-defined type. [Expat][11].
|
||||
* [squash][393] - A compression abstraction library, complete with some
|
||||
utilities. [Expat][11].
|
||||
* [termbox][396] - A library for writing text-based interfaces. [Expat][11].
|
||||
* [tinyexpr][395] - A tiny recursive-descent parser, compiler and evaluation engine for simple mathematical expressions. [3-clause BSD][6].
|
||||
* [uthash][117] - A hash table implementation, allowing existing structures to be stored in a hash table easily. [1-clause BSD][118]
|
||||
* [tinyexpr][395] - A tiny recursive-descent parser, compiler and evaluation
|
||||
engine for simple mathematical expressions. [3-clause BSD][6].
|
||||
* [uthash][117] - A hash table implementation, allowing existing structures to
|
||||
be stored in a hash table easily. [1-clause BSD][118].
|
||||
* [vector.h][152] - A header library for typed lists. [Expat][11].
|
||||
* [Viola][241] - A simplification of libCello. [Expat][11].
|
||||
* [XLSX I/O][344] - A cross-platform library for reading and writing .xlsx files. [Expat][11].
|
||||
* [zlib][230] - A massively-spiffy yet delicately-unobtrusive compression library. [3-clause BSD][6].
|
||||
* [XLSX I/O][344] - A cross-platform library for reading and writing .xlsx
|
||||
files. [Expat][11].
|
||||
* [zlib][230] - A massively-spiffy yet delicately-unobtrusive compression
|
||||
library. [3-clause BSD][6].
|
||||
|
||||
## 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
|
||||
> "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
|
||||
|
||||
* [Expat][89] - A stream-oriented XML parser. [Expat][11].
|
||||
* [libroxml][409] - Another XML
|
||||
library. [GNU LGPLv2.1 with static linking exception][217] only.
|
||||
* [libxml2][62] - A standards-compliant, portable XML parser. [Expat][11].
|
||||
* [mini-xml][216] - A small XML reading and writing library. No dependencies aside from C standard library. [GNU LGPLv2.1 with static linking exception][217] only.
|
||||
|
||||
* [mini-xml][216] - A small XML reading and writing library. No dependencies
|
||||
aside from C standard
|
||||
library. [GNU LGPLv2.1 with static linking exception][217] only.
|
||||
|
||||
[1]: https://wiki.gnome.org/Projects/GLib
|
||||
[2]: https://developer.gnome.org/gio/
|
||||
@@ -973,3 +1182,4 @@ This is a 'catch-all' category for anything that doesn't fit well anywhere else.
|
||||
[412]: https://github.com/codeplea/genann
|
||||
[413]: https://github.com/cofyc/argparse
|
||||
[414]: https://github.com/anholt/libepoxy
|
||||
[415]: https://kore.io/
|
||||
Reference in new issue
Block a user