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.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| rivlet-0.1.0.tar.gz | 118.1 kB | With provenance | Details for rivlet-0.1.0.tar.gz |
Built distributions (wheels)
Total release size: 4.1 MB
Release files / rivlet-0.1.0.tar.gz
| Download URL | rivlet-0.1.0.tar.gz |
|---|---|
| Size | 118.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
dde62c92bb90bb7fc8cc8669a62211275b76df7600838d5e724288d7e71faf61
|
|
BLAKE2b-256 checksum How to use checksums |
fb011af136836f958696f80be46aefaeb0ef357c1fe41d772975ba5a5b5bf490
|
| 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 27, 2026.
Transparency logRelease files / rivlet-0.1.0-cp315-cp315-manylinux_2_28_x86_64.whl
| Download URL | rivlet-0.1.0-cp315-cp315-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 691.5 kB |
| Tags | CPython 3.15 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
eb7460b1dfd225d8e92863ff52515d3fe12bb7062dd253ef8f40098a7d5b37d0
|
|
BLAKE2b-256 checksum How to use checksums |
8c4f729d0e620bb820fa3278aaa47b0f5ac2acb1caa4f76a989ab3d7ce19993d
|
| 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 27, 2026.
Transparency logRelease files / rivlet-0.1.0-cp315-cp315-macosx_11_0_arm64.whl
| Download URL | rivlet-0.1.0-cp315-cp315-macosx_11_0_arm64.whl |
|---|---|
| Size | 622.7 kB |
| Tags | CPython 3.15 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
b82a35281383fe57097738f22d9757c6c8346e6e1421c3568eb3efaa57c65fc6
|
|
BLAKE2b-256 checksum How to use checksums |
ed464bde43fbb88e0db01b00ff3402dabaf5ac0cecc5e60a77db78b033cee6b8
|
| 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 27, 2026.
Transparency logRelease files / rivlet-0.1.0-cp314-cp314-manylinux_2_28_x86_64.whl
| Download URL | rivlet-0.1.0-cp314-cp314-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 690.8 kB |
| Tags | CPython 3.14 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
480f666c12fea8791fcd281e77eb666a629086e91925c6a88610cd3702f7cdf8
|
|
BLAKE2b-256 checksum How to use checksums |
c13391fb60d9f63a9b1953b7bed095d8186a62e35b2d397166d7eb29c4c7667d
|
| 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 27, 2026.
Transparency logRelease files / rivlet-0.1.0-cp314-cp314-macosx_11_0_arm64.whl
| Download URL | rivlet-0.1.0-cp314-cp314-macosx_11_0_arm64.whl |
|---|---|
| Size | 621.9 kB |
| Tags | CPython 3.14 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
fb3c3746cee6e5c45e4d166b13a289691e74f003ac4b9abf93e1889f4aeed0e7
|
|
BLAKE2b-256 checksum How to use checksums |
a22df35a169f03fa4e3ae5f41b3de74d3ad4137a123e4ba206300494fff35a70
|
| 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 27, 2026.
Transparency logRelease files / rivlet-0.1.0-cp313-cp313-manylinux_2_28_x86_64.whl
| Download URL | rivlet-0.1.0-cp313-cp313-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 687.9 kB |
| Tags | CPython 3.13 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
50002c89b78faa7c6cfcc90ddba932ae37e05217ad9724902923fd4ceb28272e
|
|
BLAKE2b-256 checksum How to use checksums |
c1ce54476fc0613f8b91aa925648d1668292b283f7f02af1933a18089d8decac
|
| 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 27, 2026.
Transparency logRelease files / rivlet-0.1.0-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | rivlet-0.1.0-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 619.3 kB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
727922f2a763653e4a95d8178378c154a1c3a5272a47800741b3cdaac1fc371f
|
|
BLAKE2b-256 checksum How to use checksums |
5716687d5224a9410883b4ef8d61dd4fc88d264faa56d97e0374d1b07a7007e7
|
| 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 27, 2026.
Transparency logSecurity for rivlet 0.1.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.
Attestation for rivlet-0.1.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 27, 2026.
Transparency logA 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.