Note that two downloads are offered: the first includes with all the other ccan modules this module uses, the second is a standalone download.
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
|
(This is contributed code which was dumped here: these gems may need some polishing.)