A distributed parameter store for compute pipelines, powered by Eclipse zenoh.
sitos (σῖτος — Greek for grain) delivers typed parameters and look-up tables to distributed compute processes without timing bugs and without copies on the read hot path.
sitos is under active development. The repository contains the C++20 core, Python bindings, in-memory and RocksDB storage engines, session snapshots and caches, raw-Zenoh interoperability, executable examples, package validation, and cross-platform CI. The remaining work toward the v1.0 quality boundary is tracked in the issue roadmap.
The architecture document describes the complete component model and lifecycle:
- StorageNode connects Zenoh queryables and subscribers to a storage engine and owns session snapshots and overlays.
- ParamStore is the client for remote put, get, list, delete, and batch operations.
- ParamCache attaches to a session and provides synchronized local reads, including zero-copy byte and NumPy views.
The typed key space supports bool, int64, double, string, and bytes. Plain Zenoh clients
can use the documented wire format without linking sitos.
CMake 3.20 or newer and a C++20 compiler are required. The development presets configure tests and the supported optional components for each platform.
cmake --preset dev-linux
cmake --build --preset dev-linux
ctest --preset dev-linuxRun these commands from a Visual Studio developer shell with Ninja available:
cmake --preset dev-windows
cmake --build --preset dev-windows
ctest --preset dev-windowsFor an installable C++ package, configure the release preset, build it, and choose an install
prefix:
cmake --preset release
cmake --build --preset release
cmake --install build/release --prefix /opt/sitosA local Python wheel can be built from the same source tree:
python -m build --wheel python --outdir distSee build, test, and packaging for optional Zenoh and RocksDB configuration, installed CMake consumers, and repaired-wheel validation.
- C++ quickstart opens one transport, starts an in-memory StorageNode, submits values with ParamStore, creates a session, and reads them through ParamCache.
- Python quickstart runs the public Python APIs in isolated processes with bounded startup, observation, and cleanup.
The examples are executable acceptance tutorials rather than installed library artifacts. Follow the build document's example configuration before running them.
- Overview and document map
- Requirements
- Architecture
- Wire protocol
- C++ API
- Python API
- Build, test, and packaging
- Issue roadmap
- Public contract registry
- Dependency policy
- ADR process
- Contributing
Apache-2.0. See LICENSE.