|
libusual
0.1
|
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:
Goals for new APIs:
| Compat includes | |
|---|---|
| <usual/base.h> | Base C environment |
| <usual/ctype.h> | ctype compat |
| <usual/getopt.h> | Command line argument processing |
| <usual/err.h> | Error handling for command-line tools |
| <usual/netdb.h> | Async DNS lookup |
| <usual/pthread.h> | Pthreads compat |
| <usual/signal.h> | Signal compat |
| <usual/socket.h> | Socket compat and helper functions |
| <usual/string.h> | String compat and helper functions |
| <usual/time.h> | Time compat and helper functions |
| <usual/fnmatch.h> | fnmatch compat |
| <usual/wchar.h> | wchar compat |
| Data Structures | |
| <usual/aatree.h> | Binary Tree |
| <usual/cbtree.h> | Crit-Bit Tree |
| <usual/hashtab-impl.h> | Hash table |
| <usual/heap.h> | Binary heap |
| <usual/list.h> | Double-linked list |
| <usual/mbuf.h> | Memory buffer |
| <usual/mdict.h | Minimal dict |
| <usual/shlist.h> | Double-linked list for shared mem |
| <usual/statlist.h> | List with stats |
| <usual/strpool.h> | Refcounted strings |
| Data Processing | |
| <usual/bits.h> | Bit arithmetic |
| <usual/bytemap.h> | Byte processing |
| <usual/cfparser.h> | Config parser |
| <usual/endian.h> | Endianess conversion |
| <usual/misc.h> | Misc arithmetic |
| <usual/json.h> | Read/write JSON |
| <usual/regex.h> | POSIX regex compat |
| <usual/pgutil.h> | PostgreSQL data formats |
| <usual/utf8.h> | Low-level UTF8 handling |
| Non-cryptographic hashing | |
| <usual/hashing/crc32.h> | CRC32 |
| <usual/hashing/lookup3.h> | Jenkins' lookup3 hash |
| <usual/hashing/siphash.h> | Siphash |
| <usual/hashing/memhash.h> | In-memory randomized hashing |
| <usual/hashing/spooky.h> | Jenkins' SpookyHash for 64-bit CPUs |
| <usual/hashing/xxhash.h> | Fast hash for 32-bit CPUs |
| Cryptography | |
| <usual/crypto/csrandom.h> | Cryptographically Secure Randomness |
| <usual/crypto/digest.h> | Common API for cryptographic message digests |
| <usual/crypto/hmac.h> | HMAC with digest |
| <usual/crypto/md5.h> | MD5 hash |
| <usual/crypto/sha1.h> | SHA1 hash |
| <usual/crypto/sha256.h> | SHA256/224 hashes |
| <usual/crypto/sha512.h> | SHA512/384 hashes |
| <usual/crypto/sha3.h> | SHA3/SHAKE hashes |
| <usual/crypto/keccak.h> | Keccak sponge API |
| <usual/crypto/keccak_prng.h> | PRNG based on Keccak |
| <usual/crypto/entropy.h> | Entropy collector |
| <usual/crypto/chacha.h> | ChaCha cipher |
| Memory Allocation | |
| <usual/cxalloc.h> | Context Allocator framework |
| <usual/cxextra.h> | Extra allocators |
| <usual/mempool.h> | Simple append-only memory pool |
| <usual/slab.h> | Slab allocator for same-size objects |
| <usual/talloc.h> | Hierarchical allocator |
| OS support | |
| <usual/event.h> | libevent compat |
| <usual/daemon.h> | Process daemonization |
| <usual/fileutil.h> | Various file I/O tools |
| <usual/logging.h> | Logging framework for daemons |
| <usual/pgsocket.h> | Async Postgres connection framework |
| <usual/safeio.h> | Safety wrappers around OS I/O |
1.7.6.1