/** * @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 |