Partager Envoyer

(Document) C libraries resources

Resources for the C Programming Language

This is a short list of online resources that we found very helpful to develop C applications (simply copy & paste the links in your browser).

General (multi-) purpose libraries

GLib: https://github.com/GNOME/glib
Documentation: https://developer.gnome.org/glib/
Tutorial: https://developer.ibm.com/technologies/linux/tutorials/l-glib/

STB (Steve Barett's single-file public-domain/open source libraries with minimal dependencies):

-lite: [...] holds useful functions and macros developed by both Finit and the OpenBSD project. Most notably the string functions: strlcpy(3), strlcat(3) and the highly useful *BSD sys/queue.h and sys/tree.h API's.
(taken from: https://github.com/troglobit/libite)

Embeddable NoSQL database


Handle UTF8 strings

GNU libunistring : https://www.gnu.org/software/libunistring/manual/libunistring.html

utf8-* functions to drop as replacements for str-* functions: https://github.com/sheredom/utf8.h

Parse JSON

https://github.com/kgabis/parson (also check libraries featured in https://github.com/miloyip/nativejson-benchmark)

Parse INI file


Store C structures in hash tables

Uthash: https://github.com/troydhanson/uthash

Documentation: https://troydhanson.github.io/uthash/userguide.html

Send file descriptors over sockets


Send structs over sockets

Implementation of Google Protocol Buffers in C: https://github.com/protobuf-c/protobuf-c/wiki/Examples

Also check: https://stackoverflow.com/questions/8000851/passing-a-struct-over-tcp-sock-stream-socket-in-c

Graphic Libraries

https://www.sfml-dev.org/download/csfml/ (written in C++, requires C bindings: CSFML)

https://www.raylib.com/ (compile easily as static library)

Documentation: https://www.raylib.com/cheatsheet/cheatsheet.html

In the terminal

Display png images as ASCII chars: https://github.com/posva/catimg/tree/master/src

ASCII Video chat: https://github.com/zfogg/ascii-chat


Ce document a été publié le 2020-02-10 10:28:01. (Dernière mise à jour : 2021-03-07 11:30:15.)

This website uses 'cookies' to enhance user experience and provide authentification. You may change which cookies are set at any time by clicking on more info. Accept