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 |