sitos
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.
Status
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.
Core components
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.
Build and install
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.
Linux
cmake --preset dev-linux
cmake --build --preset dev-linux
ctest --preset dev-linux
Windows
Run these commands from a Visual Studio developer shell with Ninja available:
cmake --preset dev-windows
cmake --build --preset dev-windows
ctest --preset dev-windows
For 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/sitos
A local Python wheel can be built from the same source tree:
python -m build --wheel python --outdir dist
See build, test, and packaging for optional Zenoh and RocksDB configuration, installed CMake consumers, and repaired-wheel validation.
Quickstarts
- 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.
Documentation
- 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
License
Apache-2.0. See LICENSE.
Metadata
Release files for sitos 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| sitos-0.1.0-cp312-cp312-manylinux_2_28_x86_64.whl | CPython 3.12 | CPython 3.12 | Linux glibc 2.28+ x86-64 | Details |
Release files / sitos-0.1.0-cp312-cp312-manylinux_2_28_x86_64.whl
| Download URL | sitos-0.1.0-cp312-cp312-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 6.6 MB |
| Tags | CPython 3.12 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
4d8e03f9e09f344f91ef04e671bb909ff9a88aa5bb8437c82a98a89b3e791c7f
|
|
BLAKE2b-256 checksum How to use checksums |
07bea800fc115756040e8c4f7d7891b18da20f57c940044bed4807673ee66352
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.
Transparency log