Zix is a lightweight C library of portability wrappers and data structures.
-
Allocation
ZixAllocator
: A customizable allocator.ZixBumpAllocator
: A simple realtime-safe "bump-pointer" allocator.
-
Algorithms
zix/digest.h
: Digest functions suitable for hashing arbitrary data.
-
Data Structures
ZixBTree
: A page-allocated B-tree.ZixHash
: An open-addressing hash table.ZixRing
: A lock-free realtime-safe ring buffer.ZixTree
: A binary search tree.
-
Threading
ZixSem
: A portable semaphore wrapper.ZixThread
: A portable thread wrapper.
-
File System
zix/filesystem.h
: Functions for working with filesystems.zix/path.h
: Functions for working with filesystem paths lexically.
-
Environment
zix/environment.h
: Function to expand shell-style variables in a string.
Zix is continually tested on:
- Debian 11 (x86, x64, arm32, and arm64)
- Fedora 36 (x64)
- FreeBSD 14 (x64)
- MacOS 14 (M2)
- Node 12 (as wasm via emscripten 2.0.12)
- Windows 10 (x64)
None, except the C standard library, and some POSIX and platform-specific APIs where necessary.
-- David Robillard d@drobilla.net