Icon

Partager Envoyer

(Document) C libraries resources

Resources for the C Programming Language

This is a simple list of resources that we found very helpful to develop C applications (just copy & paste the urls).

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):
https://github.com/nothings/stb
 

-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

https://unqlite.org/intro.html

Handle UTF8 strings

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

Parse JSON

https://github.com/udp/json-parser/blob/master/examples/test_json.c

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

https://github.com/sharvil/flingfd/tree/master/src

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

Graphics 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 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 : 2020-08-05 12:47:40.)




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
x