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

Uploaded CPython 3.10+Windows x86-64

manyfold-0.1.18-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (556.1 kB view details)

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

manyfold-0.1.18-cp310-abi3-macosx_11_0_arm64.whl (509.9 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

manyfold-0.1.18-cp310-abi3-macosx_10_12_x86_64.whl (517.2 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: manyfold-0.1.18.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.18.tar.gz
Algorithm Hash digest
SHA256 0f2a68447e7a04f161a98412650747c41a5ab597bcc253c5ef8de014d1be2859
MD5 1dacf8b3ee93d4e579f307be09a2f20f
BLAKE2b-256 9b0b270546dcf7d706df962116785a4b3c3b7dae5946f812ff591d9645fd0546

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: manyfold-0.1.18-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 394.2 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.18-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 5b4a90f35fe9e9a498386aeb126012d333a3850e1c44a88119be406f8fa73842
MD5 58dd90d62baef6ca7a9090d80e14f193
BLAKE2b-256 074ddf819058d6a1d52818678262412ca491dfb6c328d90198bc86114d4acd83

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for manyfold-0.1.18-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3db194dfcf44a45c8f41424e3fe662f07f92ba70e1162684a99ebc0057f267f9
MD5 2c8b737ea434fa3759b0cae55a1e14a2
BLAKE2b-256 5de9900e99813b7dbc38af7e072a2657b3239d730fbe7f30450916014d2599df

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for manyfold-0.1.18-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bdac6f3feaf50e7c928c72799fcd5858f26fe952b54711bf653e557ee62910e8
MD5 23284ccaf0b6945d3c338711ebb54191
BLAKE2b-256 8a10206694f21530cd55deda9069fd0edb6009e59423f1c78f8b39d525048597

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for manyfold-0.1.18-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 80bd51934deb3f651dbdfaf45f677f8b478c8ebe62e1fc38b116f5429dbdad9c
MD5 bf7bcf18cd446c9bea5c622da35b6e30
BLAKE2b-256 46841de610ead8ce715c367c6c396611a24cecb75ca61680409b90e64229ded5

See more details on using hashes here.

Provenance

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