Skip to main content

Rivlet

English | 简体中文

Rivlet is an explicit, composable DAG declaration and execution library with a Python API and a Rust execution core.

It provides steps, subgraphs, conditional dependencies, thread-based and async execution, result access, execution state, and graph rendering. Logging, terminal integration, and request-level control belong to the host application and are connected through explicit interfaces.

When to use it

  • Compose build or automation tasks with explicit dependencies.
  • Run independent data-processing or validation tasks concurrently, then join them.
  • Reuse subgraphs inside a larger workflow while keeping execution observable.

This is an in-process task graph library, not a distributed workflow service. Your application owns the actions and integration; the library handles dependency ordering and execution state.

Architecture

On main, Rust implements declaration compilation, execution-graph validation, and the scheduling state machine. Python retains graph declarations, arbitrary callables, result objects, and host integration. Complete Rust-native subgraphs can join the same execution graph and concurrency budget.

See Rust architecture for implementation boundaries.

Local development

Install the published package with pip install rivlet. The Python import name is also rivlet; there is no rivetoo_graph compatibility package. See release policy for wheel coverage and publishing.

You need Python 3.13 or later, a Rust toolchain, and maturin. With a virtual environment activated, install the native extension into that environment:

maturin develop

The native extension is required. There is no pure-Python execution fallback.

Quick example

from rivlet import GraphExecution, Step, ThreadGraphRunOptions

prepare = Step(lambda: print("prepare"), label="prepare")
validate = Step(lambda: print("validate"), label="validate")
test = Step(lambda: print("test"), label="test")
finish = Step(lambda: print("finish"), label="finish")

checks = (validate | test).graph(label="checks")
graph = (prepare >> checks >> finish).graph(label="example")
GraphExecution(graph=graph).run(ThreadGraphRunOptions(workers=2))

After prepare, the checks subgraph can run validate and test concurrently. finish waits for both to succeed; their print order is not guaranteed.

>> declares ordering; | composes independent branches. Run options determine actual concurrency. An ordinary action failure blocks dependent work while unrelated branches continue; the run ultimately reports the failures.

See the documentation for the model, composition API, and execution rules.

License

This project is licensed under the MIT License.

Metadata

Release files for rivlet 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for rivlet 0.2.0
File Size Uploaded Provenance Actions
rivlet-0.2.0.tar.gz 122.9 kB With provenance Details for rivlet-0.2.0.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for rivlet 0.2.0
File Actions
rivlet-0.2.0-cp315-cp315-manylinux_2_28_x86_64.whl CPython 3.15 CPython 3.15 Linux glibc 2.28+ x86-64 Details for rivlet-0.2.0-cp315-cp315-manylinux_2_28_x86_64.whl
rivlet-0.2.0-cp315-cp315-macosx_11_0_arm64.whl CPython 3.15 CPython 3.15 macOS 11.0+ ARM64 Details for rivlet-0.2.0-cp315-cp315-macosx_11_0_arm64.whl
rivlet-0.2.0-cp314-cp314-manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64 Details for rivlet-0.2.0-cp314-cp314-manylinux_2_28_x86_64.whl
rivlet-0.2.0-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details for rivlet-0.2.0-cp314-cp314-macosx_11_0_arm64.whl
rivlet-0.2.0-cp313-cp313-manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64 Details for rivlet-0.2.0-cp313-cp313-manylinux_2_28_x86_64.whl
rivlet-0.2.0-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details for rivlet-0.2.0-cp313-cp313-macosx_11_0_arm64.whl

Total release size: 4.1 MB

Release files / rivlet-0.2.0.tar.gz

Download URL rivlet-0.2.0.tar.gz
Size 122.9 kB
Tags Source
SHA-256 checksum
How to use checksums
a29a6ac01302928555e1310710da596218d6ef6fe080f20efbbe0ae6e3471c73
BLAKE2b-256 checksum
How to use checksums
9ddf23e9bdc551d684cb5c628d4c9771faa6ed609e9b3c390d1f9427b64de34b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 28, 2026.

Transparency log

Release files / rivlet-0.2.0-cp315-cp315-manylinux_2_28_x86_64.whl

Download URL rivlet-0.2.0-cp315-cp315-manylinux_2_28_x86_64.whl
Size 694.9 kB
Tags CPython 3.15 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
622892f5ab87b4c9df40820a1ea623f7b6a9d196572b9af391eafb45edb78397
BLAKE2b-256 checksum
How to use checksums
ffa97d312ec88b17506b277beb1e1ea3e8a9d1c3f2140af3a79be203205f52e3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 28, 2026.

Transparency log

Release files / rivlet-0.2.0-cp315-cp315-macosx_11_0_arm64.whl

Download URL rivlet-0.2.0-cp315-cp315-macosx_11_0_arm64.whl
Size 627.5 kB
Tags CPython 3.15 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
435fd78ae3cda050355db0939f6546baa2132bfdabaacbe035e9e395fe8352e6
BLAKE2b-256 checksum
How to use checksums
56d7a9ac7717938bd42871a3ee8bea1c4c61863738043ba8911088f16c30d1ec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 28, 2026.

Transparency log

Release files / rivlet-0.2.0-cp314-cp314-manylinux_2_28_x86_64.whl

Download URL rivlet-0.2.0-cp314-cp314-manylinux_2_28_x86_64.whl
Size 693.9 kB
Tags CPython 3.14 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
8bfd55bfa937ad64d79bfd0e3187a985e4150fde386123e996cc6f1c602bb3ae
BLAKE2b-256 checksum
How to use checksums
6b008e1c84e9224e2ebc792c7a2a940b7cf24e7f049fb479d047c51d3e079cdc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 28, 2026.

Transparency log

Release files / rivlet-0.2.0-cp314-cp314-macosx_11_0_arm64.whl

Download URL rivlet-0.2.0-cp314-cp314-macosx_11_0_arm64.whl
Size 627.1 kB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
f129370a9989b5a81065bc9d1179fed622ff08e0a1e544ee930bb2084efcca80
BLAKE2b-256 checksum
How to use checksums
f89f9b79bdab31532761f9b6c7a0418f9d3060636671701cb41d345507966aa8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 28, 2026.

Transparency log

Release files / rivlet-0.2.0-cp313-cp313-manylinux_2_28_x86_64.whl

Download URL rivlet-0.2.0-cp313-cp313-manylinux_2_28_x86_64.whl
Size 693.4 kB
Tags CPython 3.13 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
e14b811d0f87a8541386b844a67b2751af85651570e6490bd22e294835f81102
BLAKE2b-256 checksum
How to use checksums
756eff57fae3d2c055eec1dd1bbd834a566c8d3fd62244b1645d1fced91338b8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 28, 2026.

Transparency log

Release files / rivlet-0.2.0-cp313-cp313-macosx_11_0_arm64.whl

Download URL rivlet-0.2.0-cp313-cp313-macosx_11_0_arm64.whl
Size 626.2 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
50bc0bfb61982a4fbf716ba3e172205514f6b2162a2f89e5819e4381e219d3f6
BLAKE2b-256 checksum
How to use checksums
d7a987a02dc623cd233d550b8aca43823fd415ce18f1fb8ef15e7c431dd86911
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 28, 2026.

Transparency log

Security for rivlet 0.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 7 files in this release have been uploaded with provenance metadata.

Select from 7 files

Attestation for rivlet-0.2.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 28, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page