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

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 280K / 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" 160K / 57K
antithread/alloc memory allocator routines 63K / 22K
argcheck macros to check arguments at runtime 50K / 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) 26K / 14K
asprintf asprintf wrapper (and if necessary, implementation). 8K / 3K
autodata stash pointers in your binary for automatic registration 15K / 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
bitops bit counting routines 6K / 6K
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 24K / 14K
cast routines for safer casting. 15K / 12K
ccan_tokenizer A full-text lexer for C source files 382K / 32K
cdump routines to parse simple C structures. 274K / 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 7K / 7K
container_of routine for upcasting 7K / 5K
coroutine Co-routines 24K / 14K
cppmagic Abuse of the C preprocessor 4K / 4K
cpuid a CPUID instruction parser for x86/x86_64 CPUs. 12K / 9K
crc routines for crc of bytes 18K / 14K
crc32c routine for Castagnoli CRC (crc32c) of bytes 13K / 8K
crcsync routines to use crc for an rsync-like protocol. 28K / 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. 15K / 7K
crypto/sha256 implementation of SHA-2 with 256 bit digest. 28K / 21K
crypto/sha512 implementation of SHA-2 with 512 bit digest. 16K / 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 305K / 305K
deque type-preserving resizing circular deque 10K / 10K
dgraph simple directed graph module 289K / 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 19K / 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. 85K / 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 32K / 23K
idtree id allocation tree 249K / 11K
ilog Integer logarithm. 10K / 7K
intmap ordered map integers to various types 27K / 11K
invbloom implementation of invertible bloom lookup tables. 251K / 6K
io simple library for asynchronous io handling. 285K / 30K
io/fdpass IO helper for passing file descriptors across local sockets 287K / 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 / 18K
jset set of pointers (based on libJudy) 23K / 13K
json Parse and generate JSON (JavaScript Object Notation) 14K / 14K
json_escape Escape sequences for JSON strings 244K / 4K
json_out Code for creating simple JSON output. 257K / 7K
lbalance helpers for loadbalancing parallel tasks 42K / 17K
likely macros for annotating likely/unlikely branches in the code 47K / 7K
list double linked list routines 20K / 11K
lpq Simple, slow priority queue implementation 31K / 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 11K / 8K
membuf simple linear memory buffer routines. 12K / 5K
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. 50K / 12K
ogg_to_pcm decode ogg vorbis audio files to PCM data using libvorbis 9K / 9K
opt simple command line parsing 43K / 27K
order Simple, common value comparison functions 15K / 7K
permutation Generate permutations 22K / 13K
pipecmd code to fork and run a command in a pipe. 8K / 7K
pr_log print things with varying levels of importance 21K / 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 10K / 7K
rbtree talloc-aware Red Black Tree 128K / 19K
rbuf buffered I/O input primitive. 15K / 6K
read_write_all read_all and write_all routines. 11K / 11K
rfc822 Parsing of RFC822 emails 294K / 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/base32 RFC4648 base32 encoder/decoder. 9K / 6K
str/hex hex-to-string conversions and vice-versa 5K / 5K
strgrp group/cluster similar strings. 600K / 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 28K / 8K
strset an ordered set of strings 61K / 10K
structeq bitwise comparison of structs. 9K / 4K
take routines to mark pointers to be consumed by called functions. 49K / 6K
tal compact tree allocator routines (inspired by talloc) 242K / 179K
tal/autoptr automatic updates of pointers to tal objects. 243K / 3K
tal/grab_file file helper routines 244K / 11K
tal/link link helper for tal 245K / 5K
tal/path routines to manipulate paths 260K / 9K
tal/stack stack of tal contexts (inspired by talloc_stack) 243K / 3K
tal/str string helper routines which use tal 257K / 8K
tal/talloc an implementation of the tal interface in terms of talloc. 59K / 10K
talloc tree allocator routines 44K / 36K
tally running tally of integers 54K / 10K
tap Test Anything Protocol 16K / 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. 51K / 23K
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
utf8 Simple routines to encode/decode valid UTF-8. 6K / 6K
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.)
[email protected] (2K) Browse contents...
[email protected] (410K) Browse contents...
[email protected] (2K) Browse contents...
[email protected] (2K) Browse contents...
[email protected] (3K) Browse contents...
[email protected] (2K) Browse contents...
[email protected] (4K) Browse contents...
[email protected] (6K) Browse contents...
[email protected] (1K) Browse contents...
[email protected] (241K) Browse contents...
[email protected] (3K) Browse contents...
[email protected] (7K) Browse contents...
[email protected] (10K) Browse contents...