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 (2000K).

Name Summary / Link to details Download
a_star A straightforward implementation of the a-star path finding algorithm 11K / 11K
aga Abstract Graph Algorithms 52K / 28K
agar Re-entrant Abstract Graph Algorithms 278K / 17K
alignof ALIGNOF() macro to determine alignment of a type. 5K / 5K
altstack run a function with a dedicated stack, and then release the memory 9K / 9K
antithread Accelerated Native Technology Implementation of "threads" 158K / 57K
antithread/alloc memory allocator routines 61K / 22K
argcheck macros to check arguments at runtime 47K / 5K
array_size routine for safely deriving the size of a visible array. 6K / 5K
asearch typesafe binary search (bsearch) 17K / 12K
asort typesafe array sort (qsort) 25K / 14K
asprintf asprintf wrapper (and if necessary, implementation). 8K / 3K
autodata stash pointers in your binary for automatic registration 14K / 5K
avl Key-value dictionary based on AVL trees 21K / 8K
base64 base64 encoding and decoding (rfc4648). 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 23K / 14K
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. 271K / 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
coroutine Co-routines 23K / 14K
cppmagic Abuse of the C preprocessor 4K / 4K
cpuid a CPUID instruction parser for x86/x86_64 CPUs. 13K / 9K
crc routines for crc of bytes 22K / 18K
crcsync routines to use crc for an rsync-like protocol. 33K / 16K
crypto/hkdf_sha256 RFC5869 Hardened Key Derivation Functions using SHA256 33K / 4K
crypto/hmac_sha256 RFC2104 HMAC using SHA256. 31K / 6K
crypto/ripemd160 implementation of RIPEMD 160 bit digest algorithm. 14K / 7K
crypto/sha256 implementation of SHA-2 with 256 bit digest. 28K / 21K
crypto/sha512 implementation of SHA-2 with 512 bit digest. 15K / 8K
crypto/shachain compactly-representable chain of 256-bit numbers. 36K / 7K
crypto/siphash24 implementation of SipHash-2-4. 10K / 8K
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
deque type-preserving resizing circular deque 10K / 10K
dgraph simple directed graph module 286K / 12K
edit_distance calculate the edit distance between two strings 12K / 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. 83K / 20K
fdpass routines to pass a file descriptor over a socket. 5K / 5K
foreach macro for simple iteration of arrays 25K / 8K
generator generators for C 29K / 13K
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 25K / 21K
idtree id allocation tree 247K / 11K
ilog Integer logarithm. 10K / 7K
intmap ordered map integers to various types 27K / 8K
invbloom implementation of invertible bloom lookup tables. 249K / 6K
io simple library for asynchronous io handling. 281K / 28K
io/fdpass IO helper for passing file descriptors across local sockets 282K / 12K
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) 27K / 17K
jset set of pointers (based on libJudy) 23K / 13K
json Parse and generate JSON (JavaScript Object Notation) 14K / 14K
lbalance helpers for loadbalancing parallel tasks 42K / 17K
likely macros for annotating likely/unlikely branches in the code 44K / 7K
list double linked list routines 20K / 11K
lpq Simple, slow priority queue implementation 30K / 12K
lqueue Simple, singly-linked-list queue implementation 11K / 4K
lstack Simple, singly-linked-list stack implementation 11K / 4K
md4 MD4 Message Digest Algorithm (RFC1320). 16K / 10K
mem Provide mem*() functions if missing from C library 10K / 8K
minmax typesafe minimum and maximum functions 6K / 5K
net simple IPv4/IPv6 socket library 11K / 7K
nfs nfs client library 47K / 43K
noerr routines for cleaning up without blatting errno 5K / 5K
objset unordered set of pointers. 44K / 12K
ogg_to_pcm decode ogg vorbis audio files to PCM data using libvorbis 9K / 9K
opt simple command line parsing 42K / 26K
order Simple, common value comparison functions 14K / 7K
permutation Generate permutations 22K / 13K
pipecmd code to fork and run a command in a pipe. 7K / 6K
pr_log print things with varying levels of importance 20K / 11K
ptr_valid test whether a pointer is safe to dereference. 9K / 6K
ptrint Encoding integers in pointer values 8K / 5K
pushpull simple marshalling/unmarshalling routines 9K / 7K
rbtree talloc-aware Red Black Tree 126K / 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 291K / 45K
rszshm resizable pointer-safe shared memory 11K / 11K
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
str/hex hex-to-string conversions and vice-versa 5K / 5K
strgrp group/cluster similar strings. 598K / 11K
stringbuilder join lists of strings 6K / 6K
stringmap Macros for mapping strings to things 53K / 8K
strmap an ordered map of strings to values 27K / 8K
strset an ordered set of strings 59K / 10K
structeq bitwise comparison of structs. 4K / 4K
take routines to mark pointers to be consumed by called functions. 46K / 6K
tal compact tree allocator routines (inspired by talloc) 239K / 179K
tal/autoptr automatic updates of pointers to tal objects. 241K / 3K
tal/grab_file file helper routines 242K / 11K
tal/link link helper for tal 244K / 5K
tal/path routines to manipulate paths 258K / 9K
tal/stack stack of tal contextes (inspired by talloc_stack) 241K / 3K
tal/str string helper routines which use tal 254K / 8K
tal/talloc an implementation of the tal interface in terms of talloc. 57K / 10K
talloc tree allocator routines 43K / 36K
tally running tally of integers 52K / 10K
tap Test Anything Protocol 15K / 11K
tcon routines for creating typesafe generic containers 9K / 9K
time routines for dealing with time 8K / 8K
timer efficient implementation of rarely-expiring timers. 76K / 22K
tlist typesafe double linked list routines 28K / 8K
tlist2 typesafe double linked list routines, alternative form 28K / 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
xstring bounded string builder with three valued comparator 9K / 9K

Contents of Junkcode:

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