Define a data pipeline as Python functions and let rivers resolve the run order automatically.
Run pipeline steps in parallel locally or deploy each step as its own pod on Kubernetes.
Backfill historical time partitioned data using declarative partition ranges.
| ion-elgreco/rivers | sbhattap/claude-pee | funinkina/openeffects | |
|---|---|---|---|
| Stars | 45 | 45 | 44 |
| Language | Rust | Rust | Rust |
| Setup difficulty | moderate | moderate | moderate |
| Complexity | 4/5 | 3/5 | 4/5 |
| Audience | data | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
Full production use needs a SurrealDB server and, for distributed execution, a Kubernetes cluster.
Rivers is an orchestration platform for data and machine learning pipelines. Orchestration means coordinating when and in what order your data processing steps run, for example pulling raw data, then transforming it, then writing the result, while handling dependencies, scheduling, and failures automatically. You define your pipeline in Python by decorating ordinary functions with an Asset decorator, and Rivers figures out the execution order by resolving the dependency graph automatically. Under the hood, graph resolution, execution planning, and scheduling all run in compiled Rust, so the control plane stays fast even on graphs with thousands of nodes. Python is only the interface you write against, it never runs on the scheduler itself. Rivers supports several asset types: single outputs, multi output, sub pipeline graphs, and external assets. It handles partitioning, slicing your data by time windows such as daily, hourly, or custom cron, by multiple dimensions, or by dynamic partitions defined at runtime. Built in storage handlers include in memory, pickle based object stores, and Delta Lake with merge support. For execution, you can run steps concurrently with parallel subprocess workers or deploy each step as its own pod on Kubernetes using the included operator and custom resource definitions. The single binary development experience boots the embedded database, scheduler, and web interface together in one command. Production deployments connect to a SurrealDB server backed by RocksDB instead. Rivers suits you when you need a pipeline tool light enough to run locally but structured enough to scale to Kubernetes without rewriting your definitions.
A Rust powered orchestration platform for data and ML pipelines, defined in Python but scheduled by a fast Rust core.
Mainly Rust. The stack also includes Rust, Python, SurrealDB.
No license information is provided in the README.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly data.
This repo across BitVibe Labs
Verify against the repo before relying on details.