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.19.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.19-cp310-abi3-win_amd64.whl (397.6 kB view details)

Uploaded CPython 3.10+Windows x86-64

manyfold-0.1.19-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (559.2 kB view details)

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

manyfold-0.1.19-cp310-abi3-macosx_11_0_arm64.whl (512.9 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

manyfold-0.1.19-cp310-abi3-macosx_10_12_x86_64.whl (520.1 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: manyfold-0.1.19.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.19.tar.gz
Algorithm Hash digest
SHA256 b6f8a6ee7df0e9318f18f6d98a9105b72ce675b2882041c5efe444b738f53159
MD5 ce1d69c85702d36c077d09068f77bdc8
BLAKE2b-256 6bdec202db6c7c3cae2e478ff71f9cbedc54267087321d404a1b08c64aee6e82

See more details on using hashes here.

Provenance

The following attestation bundles were made for manyfold-0.1.19.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.19-cp310-abi3-win_amd64.whl.

File metadata

  • Download URL: manyfold-0.1.19-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 397.6 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.19-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 362c27aee1f1d8e71eb1cb19608fb17f67aeebc87be1d42bfe767f7d76c88250
MD5 4aa4aea344ad79b6cc16d238b9faf46f
BLAKE2b-256 b33de7747ebdf67a5d3a678ed8dca60e1c45c55a75bee53001f2cc6dc109ff4c

See more details on using hashes here.

Provenance

The following attestation bundles were made for manyfold-0.1.19-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.19-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for manyfold-0.1.19-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 68765f2ded0146797986a903ff6a4b3f4a175d05aefde49ef7efe4cb42f36155
MD5 3659fdf703c70bf1d716320fff116d66
BLAKE2b-256 ca52729b3ac843c0ac5841f9029c8e11752866079593cc275b1ff04a82569dcd

See more details on using hashes here.

Provenance

The following attestation bundles were made for manyfold-0.1.19-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.19-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for manyfold-0.1.19-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ea131b32edd064b518d3d5d713fa0848c370eb3f59da64c830f3c1680059c25b
MD5 f52f74768240c8ff759197c9f4abe0c5
BLAKE2b-256 678c76f67494406d5f3e3c349c39025583674915ab978e1da1957d977c029c3e

See more details on using hashes here.

Provenance

The following attestation bundles were made for manyfold-0.1.19-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.19-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for manyfold-0.1.19-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 5a799d6bfbfc3bcf33123d03cd704322ba1c87636534e81f34f8f494cf10451a
MD5 14d27672f45157f912343888e55e6bb3
BLAKE2b-256 cd7669df8a9bd6592a43edf24f31912f1217a19af9a60151dd4d909f19536ff9

See more details on using hashes here.

Provenance

The following attestation bundles were made for manyfold-0.1.19-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