List of all CCAN modules:

Note that two downloads are offered: the first includes with all the other ccan modules this module uses, the second is a standalone download.

Or you can just download the tarball of everything including CCAN tools (1585K).

Name Summary / Link to details Download
alignof ALIGNOF() macro to determine alignment of a type. 5K / 5K
antithread Accelerated Native Technology Implementation of "threads" 155K / 57K
antithread/alloc memory allocator routines 60K / 22K
argcheck macros to check arguments at runtime 46K / 5K
array_size routine for safely deriving the size of a visible array. 6K / 5K
asearch typesafe binary search (bsearch) 17K / 11K
asort typesafe array sort (qsort) 19K / 14K
asprintf asprintf wrapper (and if necessary, implementation). 8K / 4K
autodata stash pointers in your binary for automatic registration 14K / 5K
avl Key-value dictionary based on AVL trees 8K / 8K
bdelta Generate and apply binary deltas 13K / 13K
bitmap bitmap handling 17K / 13K
block_pool An efficient allocator for blocks that don't need to be resized or freed. 47K / 5K
breakpoint break if the program is run under gdb. 7K / 4K
btree Efficient sorted associative container based on B-trees. 15K / 15K
build_assert routines for build-time assertions 5K / 5K
bytestring simple bytestring handling 20K / 13K
cast routines for safer casting. 15K / 12K
ccan_tokenizer A full-text lexer for C source files 381K / 32K
cdump routines to parse simple C structures. 263K / 10K
charset character set conversion and validation routines 9K / 9K
check_type routines for compile time type checking 6K / 5K
ciniparser easily parse and manipulate ini style configuration files 12K / 12K
compiler macros for common compiler extensions 6K / 6K
container_of routine for upcasting 7K / 5K
cpuid a CPUID instruction parser for x86/x86_64 CPUs. 13K / 10K
crc routines for crc of bytes 22K / 18K
crcsync routines to use crc for an rsync-like protocol. 33K / 16K
daemon_with_notify daemonize a process, can wait for child to signal readiness 5K / 5K
daemonize routine to turn a process into a well-behaved daemon. 4K / 4K
darray Generic resizable arrays 306K / 306K
dgraph simple directed graph module 37K / 12K
endian endian conversion macros for simple types 6K / 6K
eratosthenes Sieve of Eratosthenes 18K / 11K
err err(), errx(), warn() and warnx(), as per BSD's err.h. 8K / 5K
failtest unit test helpers for testing malloc and other failures. 77K / 20K
foreach macro for simple iteration of arrays 24K / 8K
grab_file file helper routines 46K / 11K
hash routines for hashing bytes 18K / 17K
heap a simple heap implementation 5K / 5K
htable hash table routines 23K / 19K
idtree id allocation tree 243K / 12K
ilog Integer logarithm. 10K / 7K
invbloom implementation of invertible bloom lookup tables. 245K / 5K
io simple library for asynchronous io handling. 270K / 27K
isaac A fast, high-quality pseudo-random number generator. 24K / 18K
iscsi async library for iscsi functionality 32K / 28K
jacobson_karels Jacobson/Karels Round Trip Time algorithm 14K / 10K
jmap map from indices to values (based on libJudy) 24K / 18K
jset set of pointers (based on libJudy) 20K / 13K
json Parse and generate JSON (JavaScript Object Notation) 14K / 14K
lbalance helpers for loadbalancing parallel tasks 38K / 17K
likely macros for annotating likely/unlikely branches in the code 43K / 7K
list double linked list routines 19K / 10K
lqueue Simple, singly-linked-list queue implementation 9K / 4K
lstack Simple, singly-linked-list stack implementation 9K / 4K
md4 MD4 Message Digest Algorithm (RFC1320). 16K / 10K
mem Provide mem*() functions if missing from C library 4K / 4K
minmax typesafe minimum and maximum functions 6K / 5K
net simple IPv4/IPv6 socket library 11K / 8K
nfs nfs client library 47K / 43K
noerr routines for cleaning up without blatting errno 5K / 5K
objset unordered set of pointers. 40K / 12K
ogg_to_pcm decode ogg vorbis audio files to PCM data using libvorbis 9K / 9K
opt simple command line parsing 42K / 26K
ptr_valid test whether a pointer is safe to dereference. 9K / 6K
pushpull simple marshalling/unmarshalling routines 9K / 7K
rbtree talloc-aware Red Black Tree 120K / 19K
rbuf buffered I/O input primitive. 5K / 5K
read_write_all read_all and write_all routines. 11K / 11K
rfc822 Parsing of RFC822 emails 286K / 45K
short_types shorter names for standard integer types 5K / 5K
siphash a keyed hash function 15K / 10K
sparse_bsearch search a sorted array with some invalid entries 19K / 11K
str string helper routines 9K / 8K
stringmap Macros for mapping strings to things 53K / 8K
strmap an ordered map of strings to values 25K / 6K
strset an ordered set of strings 57K / 10K
structeq bitwise comparison of structs. 4K / 4K
take routines to mark pointers to be consumed by called functions. 44K / 6K
tal compact tree allocator routines (inspired by talloc) 235K / 178K
tal/grab_file file helper routines 238K / 11K
tal/link link helper for tal 240K / 5K
tal/path routines to manipulate paths 254K / 9K
tal/str string helper routines which use tal 251K / 8K
tal/talloc an implementation of the tal interface in terms of talloc. 55K / 10K
talloc tree allocator routines 43K / 36K
tally running tally of integers 50K / 10K
tap Test Anything Protocol 15K / 11K
tcon routines for creating typesafe generic containers 6K / 6K
time routines for dealing with time 8K / 8K
timer efficient implementation of rarely-expiring timers. 68K / 17K
tlist typesafe double linked list routines 25K / 7K
ttxml tiny XML library for parsing (trusted!) XML documents. 16K / 16K
typesafe_cb macros for safe callbacks. 8K / 8K
version helper functions for major.minor-style version numbers 3K / 3K
wwviaudio realtime playback and mixing of 16 bit signed PCM audio data. 13K / 12K

Contents of Junkcode:

(This is contributed code which was dumped here: these gems may need some polishing.) (2K) Browse contents... (411K) Browse contents... (2K) Browse contents... (2K) Browse contents... (3K) Browse contents... (2K) Browse contents... (4K) Browse contents... (6K) Browse contents... (1K) Browse contents... (3K) Browse contents... (7K) Browse contents... (10K) Browse contents...