Pureflow
A flow-based programming (FBP) workflow engine for building concurrent data pipelines in Rust.
Overview
Pureflow models computation as a directed graph of nodes connected by typed message-passing edges. Nodes run concurrently, communicate through bounded channels, and are composed into workflows that the engine orchestrates end-to-end.
Quick start
[]
= "0.1"
Implement the NodeExecutor trait for each node in your graph:
use ;
use NodeContext;
;
Define a workflow, register your nodes, and run:
use ;
let registry = new;
let summary = run_workflow_with_registry_summary.await?;
Feature flags
| Feature | Description |
|---|---|
wasm |
Wasmtime-backed WebAssembly batch node execution |
introspection |
Read-only workflow introspection with JSON serialization |
tracing |
tracing crate integration for runtime observability |
arrow |
Apache Arrow columnar data support in message payloads |
toml |
TOML workflow definition parser |
yaml |
YAML workflow definition parser |
full |
All of the above |
Enable features in your Cargo.toml:
= { = "0.1", = ["toml", "tracing"] }
Crate structure
The pureflow crate is a facade over a set of focused internal crates. Each is
also available individually if you only need part of the stack:
| Crate | Role |
|---|---|
pureflow-types |
Opaque identifier types |
pureflow-workflow |
Workflow graph structure and validation |
pureflow-core |
NodeExecutor trait, ports, messages, errors |
pureflow-contract |
Node contract metadata and port schemas |
pureflow-engine |
Orchestration, run policies, registries |
pureflow-runtime |
Low-level async node runner |
pureflow-workflow-format |
JSON / TOML / YAML workflow parsers |
pureflow-introspection |
Read-only workflow introspection |
pureflow-wasm |
Wasmtime batch node adapter |
pureflow-test-kit |
Test builders and property strategies |
License
MIT