stepflow-client
Rust client SDK for the Stepflow orchestrator.
Provides two main capabilities:
- Flow authoring — build [
Flow] definitions programmatically using
[FlowBuilder] and [ValueExpr]
- Orchestrator client — store flows, submit runs, and monitor results via
[
StepflowClient]
Example: store and run a flow
use stepflow_client::{StepflowClient, FlowBuilder, ValueExpr};
# async fn run() -> Result<(), Box<dyn std::error::Error>> {
let mut client = StepflowClient::connect("http://localhost:7840").await?;
let mut builder = FlowBuilder::new();
builder.add_step(
"process",
"/python/my_func",
ValueExpr::object(vec![("data".to_string(), ValueExpr::workflow_input(Default::default()))]),
);
let flow = builder
.output(ValueExpr::step_output("process"))
.build()?;
let flow_id = client.store_flow(&flow).await?;
let output = client.run(&flow_id, serde_json::json!({"key": "value"})).await?;
println!("{output}");
# Ok(())
# }