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.)