Skip to main content

PyO3-backed Manyfold RFC scaffolding and in-memory runtime.

Project description

manyfold

A schematic logical board with overlapping graph regions and circuit-style routes

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

What It Models

  • Typed routes for logical signals.
  • Replayable latest-value reads and Rx-style observation.
  • Graph-visible node thread placement for main, background, pooled, or isolated execution.
  • 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/: unittest suite.
  • docs/: onboarding, usage, performance notes, release notes, and RFC docs.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

manyfold-0.1.21.tar.gz (2.4 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

manyfold-0.1.21-cp310-abi3-win_amd64.whl (399.7 kB view details)

Uploaded CPython 3.10+Windows x86-64

manyfold-0.1.21-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (561.1 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ x86-64

manyfold-0.1.21-cp310-abi3-macosx_11_0_arm64.whl (515.0 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

manyfold-0.1.21-cp310-abi3-macosx_10_12_x86_64.whl (522.0 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

Details for the file manyfold-0.1.21.tar.gz.

File metadata

  • Download URL: manyfold-0.1.21.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

Hashes for manyfold-0.1.21.tar.gz
Algorithm Hash digest
SHA256 f92760c172e3082a8f36b1fa76ed417cbc20e4d0a5bb89084bf88963d41bb2ac
MD5 effd66eb5cae0f5f2dd1b644dd00d562
BLAKE2b-256 a4785d1feccdf9a2ad8893322921d3dc2a1bea183dc63784fd21edd9b5a81794

See more details on using hashes here.

Provenance

The following attestation bundles were made for manyfold-0.1.21.tar.gz:

Publisher: pypi.yml on Organization5762/manyfold

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file manyfold-0.1.21-cp310-abi3-win_amd64.whl.

File metadata

  • Download URL: manyfold-0.1.21-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 399.7 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

Hashes for manyfold-0.1.21-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 f59ccb4fb4a440138a931d9bb15177f46b929020761a15376ce6a75cf61ecf67
MD5 10e7f1335ef234dcfc96f24c993dacb5
BLAKE2b-256 c0b26522c72eee9f978a083bed25dc67eab27e213ce4aa09bd77366b23a1f50b

See more details on using hashes here.

Provenance

The following attestation bundles were made for manyfold-0.1.21-cp310-abi3-win_amd64.whl:

Publisher: pypi.yml on Organization5762/manyfold

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file manyfold-0.1.21-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for manyfold-0.1.21-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5191dacc98c97cb23cece5ce954a3b8cac588170799965da7201e25bc0f1655a
MD5 222c3f74ff81d125f54e33cb3eb850be
BLAKE2b-256 25be0a5966c52b6b9a77a423aac9e063b29a9758c3fe705ed27ea776ac459dfe

See more details on using hashes here.

Provenance

The following attestation bundles were made for manyfold-0.1.21-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: pypi.yml on Organization5762/manyfold

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file manyfold-0.1.21-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for manyfold-0.1.21-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5d33d5dd74a3b25be68906e1d559c2bd5f2ecc440c3c35bb731ede604296431e
MD5 203cb4728320e67b4e21d99d5b0935e3
BLAKE2b-256 fac9dd7c8783fb1ed35657e306e634cfbd342ad9dca93cf315c1c399c31cd217

See more details on using hashes here.

Provenance

The following attestation bundles were made for manyfold-0.1.21-cp310-abi3-macosx_11_0_arm64.whl:

Publisher: pypi.yml on Organization5762/manyfold

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file manyfold-0.1.21-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for manyfold-0.1.21-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 96ed5a0d1cf67272bfbd486e1caf42f12270321c349db49f4da210536cd65b21
MD5 fdf1d121de3627cf286e4fb90b17f907
BLAKE2b-256 cc9f6ce324de516a5b07ed92d7cb202f9acbebc092f63d1cde77449f32cc7e14

See more details on using hashes here.

Provenance

The following attestation bundles were made for manyfold-0.1.21-cp310-abi3-macosx_10_12_x86_64.whl:

Publisher: pypi.yml on Organization5762/manyfold

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page