PyO3-backed Manyfold RFC scaffolding and in-memory runtime.
Project description
manyfold
Manyfold is a component library for execution graphs.
It helps make graph-shaped programs easier to build, inspect, and explain. Routes, schemas, buffers, demand, time, payload access, writes, taints, and lineage are modeled as graph concerns instead of being hidden in callback code or queue configuration.
Think of it as a logical board: routes are traces, ports are pads, components shape execution, and overlapping regions show where ownership, policy, and data flow meet.
This repository is an RFC-stage Python package with a PyO3/Rust extension. It is not a production runtime yet, but the package is runnable and the examples exercise the supported surface.
Start Fast
uv sync
uv run python examples/simple_latest.py
uv run python -m unittest tests.test_examples
Smallest useful shape:
from manyfold import Graph, Layer, OwnerName, Plane, Schema, StreamFamily, StreamName, Variant, route
graph = Graph()
temperature = route(
plane=Plane.Read,
layer=Layer.Logical,
owner=OwnerName("sensor"),
family=StreamFamily("environment"),
stream=StreamName("temperature"),
variant=Variant.Meta,
schema=Schema.bytes("Temperature"),
)
graph.publish(temperature, b"72.4F")
latest = graph.latest(temperature)
assert latest is not None
print(latest.value)
Read Next
- Onboarding: repo setup, first commands, and where to look first.
- Using Manyfold: routes, graphs, observation, flow components, and examples.
- Performance: how to represent performance concerns as graph concerns.
- Distributed systems catalog: higher-level component ideas.
- Wiregraph RFC: the larger design target.
What It Models
- Typed routes for logical signals.
- Replayable latest-value reads and Rx-style observation.
- Graph-visible capacitors, resistors, watchdogs, mailboxes, windows, and joins.
- Explicit demand, retention, lazy payload access, and write-shadow state.
- Lineage, taints, route audit snapshots, and topology queries.
- Local file-backed stores and a small consensus component scaffold.
The public Python surface is intentionally narrow at the top level. Advanced
helpers live under manyfold.graph, and the examples are the best way to see
which parts are supported today.
Examples
The examples/ directory is organized as a short path through the mental
model. Start with a route, add explicit demand, then move into joins,
watermarks, planning, and taint-aware runtime behavior. The supported
examples are validated by the regular unittest run so they do not drift
away from the API.
Start here: create one typed route and read it back
examples/simple_latest.py: Smallest publish/read-back example.
Control the flow: make downstream demand visible
examples/rate_matched_sensor.py: A one-slot capacitor coalesces bursty reads behind explicit demand.
Fuse streams: coordinate independent sensors
examples/imu_fusion_join.py: Capacitors stage accelerometer and gyro streams before an event-time join.
Reason in time: release data by watermark progress
examples/rolling_window_aggregate.py: A capacitor discharges samples behind explicit event-time watermarks.
Scale the graph: plan repartition work explicitly
examples/cross_partition_join.py: A repartition join with skew metrics and planner output.
Audit the hard parts: mark nondeterminism on purpose
examples/ephemeral_entropy_stream.py: Per-request entropy derivation that taints determinism explicitly.
More involved operator, query, transport, mesh, and security coverage stays
in tests/test_graph_reactive.py, with archived exploratory scripts kept
under examples/archived/. The example manifest, README featured-example
list, and RFC reference suite all derive from the shared example catalog,
so supported versus archived status lives in one place.
Verify
Use uv run for Python commands.
cargo test
uv run ruff check
uv run python -m unittest discover -s tests -p 'test_*.py'
uv run python -m manyfold.rfc_checklist_gen --check
uv run manyfold-example-catalog --check
uv run python -m examples.catalog --check-readme
Repo Map
python/manyfold/: Python wrapper API.src/: Rust in-memory runtime and PyO3 extension.examples/: runnable examples covered by tests.tests/:unittestsuite.docs/: onboarding, usage, performance notes, release notes, and RFC docs.
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 manyfold-0.1.17.tar.gz.
File metadata
- Download URL: manyfold-0.1.17.tar.gz
- Upload date:
- Size: 2.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1d395d462593bd958f1fe1d28c352bacc85a7c7dc88a703f38c52a89b77a6d7c
|
|
| MD5 |
13f995e4fb95f55c54cbf1b69a341abe
|
|
| BLAKE2b-256 |
b1fa29dec7abbaccc87348bd02988510f9e87dc28cafe88dc24dd65f03476db6
|
Provenance
The following attestation bundles were made for manyfold-0.1.17.tar.gz:
Publisher:
pypi.yml on Organization5762/manyfold
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
manyfold-0.1.17.tar.gz -
Subject digest:
1d395d462593bd958f1fe1d28c352bacc85a7c7dc88a703f38c52a89b77a6d7c - Sigstore transparency entry: 1435915829
- Sigstore integration time:
-
Permalink:
Organization5762/manyfold@66dcefe370b29393b047e6505f4575c79240ef9d -
Branch / Tag:
refs/tags/v0.1.17 - Owner: https://github.com/Organization5762
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@66dcefe370b29393b047e6505f4575c79240ef9d -
Trigger Event:
release
-
Statement type:
File details
Details for the file manyfold-0.1.17-cp310-abi3-win_amd64.whl.
File metadata
- Download URL: manyfold-0.1.17-cp310-abi3-win_amd64.whl
- Upload date:
- Size: 392.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 |
55ce565383291780a155ff404f6f99d6f96e5c4d49dcbda0532cd4e9af040cdc
|
|
| MD5 |
dc5504f920414539497cc009959554b9
|
|
| BLAKE2b-256 |
fadf3f8699d95d5a4267a2ff9608a968ef3a8e258258a250582d954c44c113d2
|
Provenance
The following attestation bundles were made for manyfold-0.1.17-cp310-abi3-win_amd64.whl:
Publisher:
pypi.yml on Organization5762/manyfold
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
manyfold-0.1.17-cp310-abi3-win_amd64.whl -
Subject digest:
55ce565383291780a155ff404f6f99d6f96e5c4d49dcbda0532cd4e9af040cdc - Sigstore transparency entry: 1435915848
- Sigstore integration time:
-
Permalink:
Organization5762/manyfold@66dcefe370b29393b047e6505f4575c79240ef9d -
Branch / Tag:
refs/tags/v0.1.17 - Owner: https://github.com/Organization5762
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@66dcefe370b29393b047e6505f4575c79240ef9d -
Trigger Event:
release
-
Statement type:
File details
Details for the file manyfold-0.1.17-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: manyfold-0.1.17-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 554.1 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 |
296f7e851b5860ad2a7051d73510d7ca157eb928b81badc0f578fcee1eb3a6ca
|
|
| MD5 |
bff82acc27360d51f9cbb18d38cf8958
|
|
| BLAKE2b-256 |
d51ac5ae6eca3d5681cef895e3bafd777a22d48115fc0bdc958b3a2630cfb3f6
|
Provenance
The following attestation bundles were made for manyfold-0.1.17-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
pypi.yml on Organization5762/manyfold
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
manyfold-0.1.17-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
296f7e851b5860ad2a7051d73510d7ca157eb928b81badc0f578fcee1eb3a6ca - Sigstore transparency entry: 1435915836
- Sigstore integration time:
-
Permalink:
Organization5762/manyfold@66dcefe370b29393b047e6505f4575c79240ef9d -
Branch / Tag:
refs/tags/v0.1.17 - Owner: https://github.com/Organization5762
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@66dcefe370b29393b047e6505f4575c79240ef9d -
Trigger Event:
release
-
Statement type:
File details
Details for the file manyfold-0.1.17-cp310-abi3-macosx_11_0_arm64.whl.
File metadata
- Download URL: manyfold-0.1.17-cp310-abi3-macosx_11_0_arm64.whl
- Upload date:
- Size: 508.1 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 |
3e439ac7f7d353ba8fc4aed6c98aa1852d7044f7ca92e791087e8bcf971d190b
|
|
| MD5 |
ac1279d01409487ca2a009a544b28be3
|
|
| BLAKE2b-256 |
e904698491a6d200588150ddbb726e413593b54063e1ff48a5f4bf9cb394d56e
|
Provenance
The following attestation bundles were made for manyfold-0.1.17-cp310-abi3-macosx_11_0_arm64.whl:
Publisher:
pypi.yml on Organization5762/manyfold
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
manyfold-0.1.17-cp310-abi3-macosx_11_0_arm64.whl -
Subject digest:
3e439ac7f7d353ba8fc4aed6c98aa1852d7044f7ca92e791087e8bcf971d190b - Sigstore transparency entry: 1435915855
- Sigstore integration time:
-
Permalink:
Organization5762/manyfold@66dcefe370b29393b047e6505f4575c79240ef9d -
Branch / Tag:
refs/tags/v0.1.17 - Owner: https://github.com/Organization5762
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@66dcefe370b29393b047e6505f4575c79240ef9d -
Trigger Event:
release
-
Statement type:
File details
Details for the file manyfold-0.1.17-cp310-abi3-macosx_10_12_x86_64.whl.
File metadata
- Download URL: manyfold-0.1.17-cp310-abi3-macosx_10_12_x86_64.whl
- Upload date:
- Size: 515.2 kB
- Tags: CPython 3.10+, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
89cbb05d26dde44384ae888022d23a18d49897729481272e55c9bed46510863f
|
|
| MD5 |
fddf7c7070eab120ec80bfe001ad3b2a
|
|
| BLAKE2b-256 |
966545ca9ebcb71562f51c6dfb24dbc50c5a5ada2b06645d060621ead7b1fdf4
|
Provenance
The following attestation bundles were made for manyfold-0.1.17-cp310-abi3-macosx_10_12_x86_64.whl:
Publisher:
pypi.yml on Organization5762/manyfold
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
manyfold-0.1.17-cp310-abi3-macosx_10_12_x86_64.whl -
Subject digest:
89cbb05d26dde44384ae888022d23a18d49897729481272e55c9bed46510863f - Sigstore transparency entry: 1435915845
- Sigstore integration time:
-
Permalink:
Organization5762/manyfold@66dcefe370b29393b047e6505f4575c79240ef9d -
Branch / Tag:
refs/tags/v0.1.17 - Owner: https://github.com/Organization5762
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@66dcefe370b29393b047e6505f4575c79240ef9d -
Trigger Event:
release
-
Statement type: