Skip to content

Repository files navigation

sitos

CI

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

License

Apache-2.0. See LICENSE.

About

No description, website, or topics provided.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages