Skip to content

atlas-form/workflow-rs

Repository files navigation

workflow-rs

A modular and async workflow execution engine written in Rust.

workflow-rs is a flexible and extensible workflow execution engine built in Rust.
It is designed to model and execute complex data and control flows using an acyclic graph structure with support for custom nodes, subgraphs, and parallel execution.


✨ Features

  • ✅ Directed Acyclic Graph (DAG)-based workflow modeling
  • ✅ Multiple node types: Aggregator, Parallel, Repeat, SubGraph
  • ✅ Input/output data modeling via DataPayload and OutputData
  • ✅ Support for nested subgraphs
  • ✅ Runtime graph execution engine (Runner)
  • ✅ Type-safe and async execution flow
  • ✅ Designed for integration into larger AI/data platforms

📦 Project Structure

workflow-rs/
├── src/
│ ├── graph.rs # DAG structure definition
│ ├── runner.rs # Execution engine
│ ├── node/ # Node definitions and logic
│ ├── model/ # Data payloads, output types, context
│ ├── error.rs # Error handling
│ └── lib.rs
├── Cargo.toml
└── README.md

🚀 Quick Start

You must have Rust (≥ 1.70) installed.

  1. Clone the repo
git clone https://github.com/arthasyou/workflow-rs.git
cd workflow-rs
  1. Build the project
cargo build
  1. (Optional) Run example workflow

Example files are currently under development.


🧠 Core Concepts

Nodes

Each node represents a unit of execution. Supported node types:

  • AggregatorNode: Collects outputs from multiple nodes and merges them
  • ParallelNode: Executes multiple branches concurrently
  • RepeatNode: Loops execution of a node N times
  • SubGraphNode: Executes an embedded subgraph as a single node

Data Flow

  • Inputs and outputs are managed through DataPayload and OutputData
  • Node outputs are connected via edges (data or control type)

Runner

  • Runner handles runtime scheduling of nodes based on graph topology
  • Supports input injection, result collection, and execution tracing

🔧 Planned Features

  • Configurable error handling (continue, stop, retry)
  • Persistent state and checkpointing
  • Web API service (see flow-runner)
  • CLI for local workflow execution and debugging
  • Visual editor integration (optional)

📄 License

MIT License © 2025 @arthasyou


💬 Feedback & Contribution

Feel free to open issues or submit PRs. The project is in active development — feedback and feature requests are welcome!

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages