1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
// Copyright 2025 DataStax Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
// in compliance with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software distributed under the License
// is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
// or implied. See the License for the specific language governing permissions and limitations under
// the License.
//! # stepflow-client
//!
//! Rust client SDK for the [Stepflow](https://stepflow.org) 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
//!
//! ```rust,no_run
//! 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(())
//! # }
//! ```
pub use ;
pub use ;
pub use ;
// Re-export stepflow-flow so users can access all types.
pub use stepflow_flow;
// Re-export StatusEvent so callers don't need to depend on stepflow-proto directly.
pub use StatusEvent;