# ZUtil

C++ utility library providing RAII wrappers around the libsst C modules, plus
custom containers, serialization, and logging.

## Memory management
- `ZAlloc` / `ZAllocWindow` -- tracked allocation with checkpoint support
- `ZSlabAllocator` -- slab-based allocator
- `ZSmartPointer<T>` (alias `ZPtr<T>`) -- thread-safe reference-counted smart pointer
- `ZWeakPointer<T>` -- weak references
- `ZReferenceCounter`, `ZReferenceBuffer`

## Containers (ZSTL)
- `ZArray` -- dynamic array with sort/search algorithms
- `ZList` -- linked list with algorithms
- `ZHashMap` -- hash table
- `ZRingBuffer` -- circular buffer
- `ZBasicString` / `ZString` -- string with algorithms
- `ZName` -- immutable string with hash-cached comparison
- `ZKVTree` -- hierarchical key-value tree (path-addressable)
- `ZRegistry` -- thread-safe key-value store

## Threading
- `ZThread` -- base class with `run()` override and request marshaling
- `ZMutex` / `ZLock` -- RAII mutex and scoped lock
- `ZEvent`, `ZSemaphore`, `ZReadWriteLock` -- RAII sync wrappers
- `ZTaskStream` -- multi-threaded task execution with `ZFuture<R,A>`

## Serialization
- `ZBinaryReader` / `ZBinaryWriter` -- abstract binary I/O
- `ZBinaryBufferReader` / `ZBinaryBufferWriter` -- in-memory binary streams
- `ZBinaryFileReader` / `ZBinaryFileWriter` -- file-backed binary streams
- `ZXMLReader` / `ZXMLWriter` -- XML via ZKVTree
- `ZJSONReader` / `ZJSONWriter` -- JSON via ZKVTree
- `ZIniReader` / `ZIniWriter` -- INI format

## Logging
- `ZLog` -- thread-safe, multi-file logging with severity levels
- Macros: `SystemLogError`, `SystemLogWarning`, `SystemLogInfo`, `SystemLogSpam`

## Utilities
- `ZRandomGenerator` -- PRNG wrapper with Gaussian support
- `ZSimplexNoise` / `ZSimplexNoiseMap` -- noise generation
- `ZAssert` -- debug/runtime assertion macros
- `ZBitmap` -- bitmap data structure
