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

Uploaded CPython 3.10+Windows x86-64

manyfold-0.1.17-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (554.1 kB view details)

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

manyfold-0.1.17-cp310-abi3-macosx_11_0_arm64.whl (508.1 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

manyfold-0.1.17-cp310-abi3-macosx_10_12_x86_64.whl (515.2 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

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

Hashes for manyfold-0.1.17.tar.gz
Algorithm Hash digest
SHA256 1d395d462593bd958f1fe1d28c352bacc85a7c7dc88a703f38c52a89b77a6d7c
MD5 13f995e4fb95f55c54cbf1b69a341abe
BLAKE2b-256 b1fa29dec7abbaccc87348bd02988510f9e87dc28cafe88dc24dd65f03476db6

See more details on using hashes here.

Provenance

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

Hashes for manyfold-0.1.17-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 55ce565383291780a155ff404f6f99d6f96e5c4d49dcbda0532cd4e9af040cdc
MD5 dc5504f920414539497cc009959554b9
BLAKE2b-256 fadf3f8699d95d5a4267a2ff9608a968ef3a8e258258a250582d954c44c113d2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for manyfold-0.1.17-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 296f7e851b5860ad2a7051d73510d7ca157eb928b81badc0f578fcee1eb3a6ca
MD5 bff82acc27360d51f9cbb18d38cf8958
BLAKE2b-256 d51ac5ae6eca3d5681cef895e3bafd777a22d48115fc0bdc958b3a2630cfb3f6

See more details on using hashes here.

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

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.17-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for manyfold-0.1.17-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3e439ac7f7d353ba8fc4aed6c98aa1852d7044f7ca92e791087e8bcf971d190b
MD5 ac1279d01409487ca2a009a544b28be3
BLAKE2b-256 e904698491a6d200588150ddbb726e413593b54063e1ff48a5f4bf9cb394d56e

See more details on using hashes here.

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

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.17-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for manyfold-0.1.17-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 89cbb05d26dde44384ae888022d23a18d49897729481272e55c9bed46510863f
MD5 fddf7c7070eab120ec80bfe001ad3b2a
BLAKE2b-256 966545ca9ebcb71562f51c6dfb24dbc50c5a5ada2b06645d060621ead7b1fdf4

See more details on using hashes here.

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

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