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

Uploaded CPython 3.10+Windows x86-64

manyfold-0.1.33-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (561.6 kB view details)

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

manyfold-0.1.33-cp310-abi3-macosx_11_0_arm64.whl (515.5 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

manyfold-0.1.33-cp310-abi3-macosx_10_12_x86_64.whl (522.6 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: manyfold-0.1.33.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.33.tar.gz
Algorithm Hash digest
SHA256 95b6ae34124c7a80631bef05b51cfb124cf7248366345f9bf7d984ebc6e0ff88
MD5 1cd512ac57ec12d7ba5c5aa553e4095c
BLAKE2b-256 ad34f21a8250436281dd68562f17eb372bd908954415f716cc73a359b7ffbec8

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: manyfold-0.1.33-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.33-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 5e88568a0a64208c280f124bcf6505b830b62899643afa4a4d8e123f789079df
MD5 fc1727338f992895dc8dce1c45456fc9
BLAKE2b-256 10c6fb4ae77eafe0492f2f2071b360f477344801e40c17d2e0dc1808288dcd5a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for manyfold-0.1.33-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9695a41de5531690143ffedc4923254bc3595bf7c645b666ec6cd43586ca7e7b
MD5 6fdebb40de19cc6aa159f9d02c243a7d
BLAKE2b-256 b24162ea44b22cbb73c9a92b04045651c27f7f91226b3d27cee7f2e0fef95810

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for manyfold-0.1.33-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7c960e97da0d857a306638dc2f93dc7a47c1de2ded91838d2f96c96558899934
MD5 f5cb481da2bf9fb3af1209aff742a33c
BLAKE2b-256 f04ef715c9700089f929c417293fdc6cd381e3632bd753f8efe39219c4a9b998

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for manyfold-0.1.33-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 173466880acd36f714f0c1b4e76dc7632866a4dce883c549062e5e57b39ad5cc
MD5 833ee7c74c3fe631e1b13e336436bfe2
BLAKE2b-256 e0bc06d7b7d9eb382630a37e8b9ca1c4cfe1080faa263ca5b08107f6f1d0dee2

See more details on using hashes here.

Provenance

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