Initial release of Vix KV, a durable, local-first key-value engine built on top of Softadastra.
set,get,erase,list- hierarchical keys via
KeyPath - prefix-based queries (
list(prefix))
KvValue(binary-safe abstraction)KeyEncoder(structured key encoding)ValueCodec(value serialization)
- Built on top of Softadastra Store
- WAL-backed persistence (write-ahead log)
- Automatic recovery on startup
- Deterministic state reconstruction
KvEngine:- thin abstraction over
StoreEngine - clear separation between API and storage
- thin abstraction over
- Uses
apply_operation()for mutation flow
Simple usage:
auto db = vix::kv::open();
db.set({"users","1"}, vix::kv::values::KvValue("Alice"));- automatic WAL directory creation
- minimal and predictable API
- no server required
basic_kv.cpp→ basic usagedurable_restart.cpp→ persistence across restartsprefix_scan.cpp→ prefix queries
- Full CMake support
- Compatible with Vix dependency system
Works with:
- monorepo usage
- Vix registry usage
- Removed unused components:
KvMapperKvOperation
- Simplified architecture
- Aligned KV layer with Softadastra Store
Added:
- API documentation
- architecture overview
- concepts and use cases
- Softadastra integration
This is the first stable version of Vix KV.
Focus of this release:
- correctness
- durability
- clean architecture
Planned improvements:
- transactions
- watch (reactive updates)
- sync integration (Softadastra)
- richer value handling