Sahou runtime — schema-first typed messaging for creative installations (on Zenoh)
Project description
sahou (Python runtime)
Typed communication over real Zenoh, using just a contract (descriptor.json) plus a node name. The
boundary semantics are delegated to the Rust core (sahou-core / sahou._core); this glue layer only
handles the transport (zenoh-python) and threading.
Usage
import sahou
node = sahou.connect("descriptor.json", node="sensor") # default = automatic discovery on the same LAN
# (the path is up to you. When using the output of `sahou gen --out-dir gen`, use "gen/descriptor.json")
node.publish("touch", {"x": 0.5, "phase": "move"}) # a NO is SahouRejected (nothing is put)
@node.subscribe("cue")
def on_cue(payload): ... # a NO never reaches the handler (goes to on_reject)
res = node.query_confirmed("get_state", {"sel": "levels"}) # 200/400/500 equivalent + smart retry
node.answer("get_state", lambda req: {"level": 3})
Development
uv venv && uv pip install maturin pytest "eclipse-zenoh>=1.9,<2"
.venv/Scripts/maturin develop # build the core with feature "python"
.venv/Scripts/python -m pytest tests/
- Contract version differences are decided by a handshake (contract queryable + verdict cache): additive = pass through / breaking = NO / unfetchable = conservative NO. There is no path that silently passes or drops.
- Not yet implemented (planned follow-ups): auto-launch of sahou link (for Node/browser, ②b) / tap, doctor, type stubs (②c).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sahou-0.0.2.tar.gz.
File metadata
- Download URL: sahou-0.0.2.tar.gz
- Upload date:
- Size: 95.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cbfb85dfdc1caf3649d520a681f748b48e37e447104e07375129dbbf177b075a
|
|
| MD5 |
80349bd2ae042079cbf3a180752dcbfa
|
|
| BLAKE2b-256 |
dad1b9239f307fd5736781dd1115941152e0745cdf042ec6f9d2e99d3e71e844
|
Provenance
The following attestation bundles were made for sahou-0.0.2.tar.gz:
Publisher:
python-release.yml on craf-te/sahou
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sahou-0.0.2.tar.gz -
Subject digest:
cbfb85dfdc1caf3649d520a681f748b48e37e447104e07375129dbbf177b075a - Sigstore transparency entry: 2171354340
- Sigstore integration time:
-
Permalink:
craf-te/sahou@b17b030f295f0f7aece2c0a815c9e3267d6529d7 -
Branch / Tag:
refs/tags/py-v0.0.2 - Owner: https://github.com/craf-te
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-release.yml@b17b030f295f0f7aece2c0a815c9e3267d6529d7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file sahou-0.0.2-cp310-abi3-win_amd64.whl.
File metadata
- Download URL: sahou-0.0.2-cp310-abi3-win_amd64.whl
- Upload date:
- Size: 354.4 kB
- Tags: CPython 3.10+, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b120193c89b5c1618694f3f853fe4ceab3ed3134628b682123b407de938b3936
|
|
| MD5 |
ff7ccf6796f63254ef68259b9b899eec
|
|
| BLAKE2b-256 |
5e485daed2a079eeab912384477f65a6882ee10038589667302c70e1560aa065
|
Provenance
The following attestation bundles were made for sahou-0.0.2-cp310-abi3-win_amd64.whl:
Publisher:
python-release.yml on craf-te/sahou
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sahou-0.0.2-cp310-abi3-win_amd64.whl -
Subject digest:
b120193c89b5c1618694f3f853fe4ceab3ed3134628b682123b407de938b3936 - Sigstore transparency entry: 2171354357
- Sigstore integration time:
-
Permalink:
craf-te/sahou@b17b030f295f0f7aece2c0a815c9e3267d6529d7 -
Branch / Tag:
refs/tags/py-v0.0.2 - Owner: https://github.com/craf-te
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-release.yml@b17b030f295f0f7aece2c0a815c9e3267d6529d7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file sahou-0.0.2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: sahou-0.0.2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 516.9 kB
- Tags: CPython 3.10+, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ee66c0e00e903bd0905b8308b6aaef4b4bf53ed40ded8ddac02554df2ab0c8df
|
|
| MD5 |
b2d0639cd866396ac4e5e7c0fc48b8ed
|
|
| BLAKE2b-256 |
10bf96d84763f2e112a76047f776e2a24d2ac40694c249b3d190582d3a863804
|
Provenance
The following attestation bundles were made for sahou-0.0.2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
python-release.yml on craf-te/sahou
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sahou-0.0.2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
ee66c0e00e903bd0905b8308b6aaef4b4bf53ed40ded8ddac02554df2ab0c8df - Sigstore transparency entry: 2171354349
- Sigstore integration time:
-
Permalink:
craf-te/sahou@b17b030f295f0f7aece2c0a815c9e3267d6529d7 -
Branch / Tag:
refs/tags/py-v0.0.2 - Owner: https://github.com/craf-te
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-release.yml@b17b030f295f0f7aece2c0a815c9e3267d6529d7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file sahou-0.0.2-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: sahou-0.0.2-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 507.7 kB
- Tags: CPython 3.10+, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
82861783eaa84148bb4f5b548702081f8d770a9c9081834e01bda771c7ac57aa
|
|
| MD5 |
1cdd9271cab82117196100210aedc1b6
|
|
| BLAKE2b-256 |
cd8b03d51e90b2ce20829989571f79134aa070c0d1e339911082ac76cf5e0a6f
|
Provenance
The following attestation bundles were made for sahou-0.0.2-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:
Publisher:
python-release.yml on craf-te/sahou
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sahou-0.0.2-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl -
Subject digest:
82861783eaa84148bb4f5b548702081f8d770a9c9081834e01bda771c7ac57aa - Sigstore transparency entry: 2171354356
- Sigstore integration time:
-
Permalink:
craf-te/sahou@b17b030f295f0f7aece2c0a815c9e3267d6529d7 -
Branch / Tag:
refs/tags/py-v0.0.2 - Owner: https://github.com/craf-te
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-release.yml@b17b030f295f0f7aece2c0a815c9e3267d6529d7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file sahou-0.0.2-cp310-abi3-macosx_11_0_arm64.whl.
File metadata
- Download URL: sahou-0.0.2-cp310-abi3-macosx_11_0_arm64.whl
- Upload date:
- Size: 465.9 kB
- Tags: CPython 3.10+, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
38c61a5f66d917462ff50f3e5195107fdcf70b20455072d13d0c9d17aad37f56
|
|
| MD5 |
12b1ebc723012e345b21d02100c84f17
|
|
| BLAKE2b-256 |
77d2268266bc18dcb417a9b3710a54d2fbaebc1f1f2d8cbba09d56bd47839477
|
Provenance
The following attestation bundles were made for sahou-0.0.2-cp310-abi3-macosx_11_0_arm64.whl:
Publisher:
python-release.yml on craf-te/sahou
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sahou-0.0.2-cp310-abi3-macosx_11_0_arm64.whl -
Subject digest:
38c61a5f66d917462ff50f3e5195107fdcf70b20455072d13d0c9d17aad37f56 - Sigstore transparency entry: 2171354346
- Sigstore integration time:
-
Permalink:
craf-te/sahou@b17b030f295f0f7aece2c0a815c9e3267d6529d7 -
Branch / Tag:
refs/tags/py-v0.0.2 - Owner: https://github.com/craf-te
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-release.yml@b17b030f295f0f7aece2c0a815c9e3267d6529d7 -
Trigger Event:
push
-
Statement type: