/** * @mainpage * * @section libusual libusual * * libusual is utility library. * * Unlike APR or GLIB which create their own API world, libusual * tries to use standardized API's whenever possible. * * Goals for portability APIs: * - Follow modern POSIX, BSD, glibc. Make the APIs available everywhere. * - If compat is impossible, allow the user code to compile - eg. UNIX * sockets on win32. * - Assume cooparating user: * - libusual needs to implement only API that are used and useful. No need try to provide full POSIX. * - user code survives gracefully when libusual provides less functionality. * * Goals for new APIs: * - Simple, clear API * - Simple, clear implementation. * - It is preferable to have simple code which can be copied and modified * for some special case than complex code that tries to handle * everything at once. * * @section antimake Antimake build system. * * Build system demos and docs. * * @section modules Module list. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Compat includes
Base C environment
ctype compat
Command line argument processing
Error handling for command-line tools
Async DNS lookup
Pthreads compat
Signal compat
Socket compat and helper functions
String compat and helper functions
Time compat and helper functions
fnmatch compat
Data Structures
Binary Tree
Crit-Bit Tree
Hash table
Binary heap
Double-linked list
Memory buffer
Minimal dict
Double-linked list for shared mem
List with stats
Refcounted strings
Data Processing
Bit arithmetic
Byte processing
Config parser
Endianess conversion
Misc arithmetic
POSIX regex compat
PostgreSQL data formats
Low-level UTF8 handling
Non-cryptographic hashing
CRC32
Jenkins' lookup3 hash
Siphash
In-memory hashing
Jenkins' SpookyHash for 64-bit CPUs
XXHash for 32-bit CPUs
Cryptography
Cryptographically Secure Randomness
Common API for cryptographic message digests
HMAC with digest
MD5 hash
SHA1 hash
SHA256/224 hashes
SHA512/384 hashes
SHA3/SHAKE hashes
Keccak sponge API
PRNG based on Keccak
Memory Allocation
Context Allocator framework
Extra allocators
Simple append-only memory pool
Slab allocator for same-size objects
OS support
libevent compat
Process daemonization
Various file I/O tools
Logging framework for daemons
Async Postgres connection framework
Safety wrappers around OS I/O
*/