Skip to content

A smattering of miscellaneous C libraries. Includes sane argument parsing, a thread-safe multi-producer/multi-consumer queue, and implementation of common data structures (hashmaps, vectors and linked lists).

License

Notifications You must be signed in to change notification settings

BurntSushi/clibs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

clibs
=====
This is a collection of C libraries that I find frequent use for.

libds
=====
Contains implementations of commonly used data structures: hashmap, vector, 
linked list and a thread-safe queue that can be used in a 
multi-producer/multi-consumer algorithm.

The thread-safe queue is greatly inspired by the semantics of Go channels, 
although they are not emulated precisely. (Namely, there is no notion of an 
unbuffered channel, and there is no 'select' statement. I'm sure there are 
other differences, too.)

libopt
======
Contains a sane implementation of command line argument parsing. It is greatly 
inspired by Go's standard library 'flag' package.

(I really couldn't believe how horrendous 'getopt' was, and the Internet seems 
to expect me to use it since it's so ubiquitous. I found this distasteful, 
particularly as someone who has been spoiled with Python's 'argparse' module, 
and Go's 'flag' package.)

`libopt` can be used by compiling with `-lopt`, assuming that 'opt.h' and
'libopt.so' are in your C_INCLUDE_PATH and LIBRARY_PATH, respectively.

About

A smattering of miscellaneous C libraries. Includes sane argument parsing, a thread-safe multi-producer/multi-consumer queue, and implementation of common data structures (hashmaps, vectors and linked lists).

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages