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

Uploaded CPython 3.10+Windows x86-64

manyfold-0.1.34-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (562.9 kB view details)

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

manyfold-0.1.34-cp310-abi3-macosx_11_0_arm64.whl (516.7 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

manyfold-0.1.34-cp310-abi3-macosx_10_12_x86_64.whl (523.8 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: manyfold-0.1.34.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.34.tar.gz
Algorithm Hash digest
SHA256 4cd180c113e0184be5b2649802c639fb0a8774d8145ed8d9041e92ee3c10708b
MD5 fd7f8eae8e913d2596695df845541fba
BLAKE2b-256 7e84a85b4bac72001b39f432219a5fa0a0d11dd1e20362cf8c86a153dca8ba19

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: manyfold-0.1.34-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 401.1 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.34-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 8ea575715802fded3c0fca5189ed973ae7009fff089890264662aa62508a64b2
MD5 7b299e261b4f0737e2431f1499ac6377
BLAKE2b-256 4ddaaa77c1aae95344166f54ba9b492782d9463fee5d12f11bcfee74cf6debec

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for manyfold-0.1.34-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f739f2fc837dcbdb1cc1cd065f22a7e3c06a9ddcd14c8dc91718ac4a01ed9e07
MD5 afb76065d8afe994611a8ebeca288fe7
BLAKE2b-256 a36b53b17e51f49989e10a02d6921b0f8c95830a63aee249bd579b858348e5eb

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for manyfold-0.1.34-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ddc6018fc069b09cad2fe4b5d31be90952c275fae92ee9871d3943bb0ac19de0
MD5 2c11f7e5d77054d4da56112bab63977f
BLAKE2b-256 f3a1d1fd1ffc36bc48dc858e1683790c1df7771b8f2b31a6e9549baa12309236

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for manyfold-0.1.34-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 c71ffb237ad4297dbca816ffcf032524d9b41daab7f5c46893552526e02c3c0e
MD5 d69f9e1f3fa01b9be3c40bb1f792d771
BLAKE2b-256 a95788bb5c035d154597aa4176313c151eebd45fe0524839e9dc3189a1a80495

See more details on using hashes here.

Provenance

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