Expand description
GraphBuilder -> App::compile -> AppRunner
| |
| +-> Scheduler -> Nodes -> NodePartial
| |
| +-> Reducers -> VersionedState
| +-> EventBus (diagnostics / LLM)
|
+-> RuntimeConfig (persistence, sinks, execution knobs)Weavegraph is a graph-driven workflow framework for concurrent, stateful execution.
You define nodes and edges with graphs::GraphBuilder, compile to an app::App,
and run with either high-level invocation helpers or the lower-level runtimes::AppRunner.
§Quick Start
use async_trait::async_trait;
use weavegraph::graphs::GraphBuilder;
use weavegraph::message::Message;
use weavegraph::node::{Node, NodeContext, NodeError, NodePartial};
use weavegraph::state::{StateSnapshot, VersionedState};
use weavegraph::types::NodeKind;
struct EchoNode;
#[async_trait]
impl Node for EchoNode {
async fn run(
&self,
snapshot: StateSnapshot,
_ctx: NodeContext,
) -> Result<NodePartial, NodeError> {
let reply = snapshot
.messages
.last()
.map(|m| format!("Echo: {}", m.content))
.unwrap_or_else(|| "Echo: (no input)".to_string());
Ok(NodePartial::new().with_messages(vec![Message::assistant(&reply)]))
}
}
let app = GraphBuilder::new()
.add_node(NodeKind::Custom("echo".into()), EchoNode)
.add_edge(NodeKind::Start, NodeKind::Custom("echo".into()))
.add_edge(NodeKind::Custom("echo".into()), NodeKind::End)
.compile()?;
let initial = VersionedState::new_with_user_message("hello");
let final_state = app.invoke(initial).await?;
assert!(!final_state.snapshot().messages.is_empty());§Feature Flags
| Feature | Default | Purpose |
|---|---|---|
sqlite-migrations | yes | Enables SQLite persistence support via sqlx and migration wiring. |
sqlite | no | Enables SQLite checkpointer APIs and runtime backend. |
postgres-migrations | no | Enables Postgres migration support for checkpointer setup. |
postgres | no | Enables PostgreSQL checkpointer APIs and runtime backend. |
rig | no | Enables Rig-based LLM interop and adapters. |
llm | no | Compatibility alias to rig for 0.3.x (planned removal in 0.4.0). |
diagnostics | no | Adds miette diagnostic metadata to error types. |
examples | no | Pulls additional deps used by selected examples. |
petgraph-compat | no | Exposes petgraph conversion helpers for graph analysis and visualization. |
§Documentation
docs/QUICKSTART.mdfor API-first onboarding and composition patterns.docs/OPERATIONS.mdfor runtime operations, persistence, and deployment concerns.docs/STREAMING.mdfor event streaming patterns and production guidance.docs/ARCHITECTURE.mdfor internal architecture and execution model details.
Re-exports§
pub use control::FrontierCommand;pub use control::NodeRoute;
Modules§
- app
- channels
- control
- Control-flow primitives emitted by nodes to influence subsequent scheduling.
- event_
bus - Event bus utilities providing fan-out, sinks, and subscriber APIs.
- graphs
- Graph definition and compilation for workflow execution.
- llm
- Framework-agnostic LLM abstractions and optional adapters.
- message
- node
- Node execution framework for the Weavegraph workflow system.
- reducers
- runtimes
- Workflow runtime infrastructure for session management and state persistence.
- schedulers
- state
- State management for the Weavegraph workflow framework.
- telemetry
- types
- Core types for the Weavegraph workflow framework.
- utils
- Utilities module for common functionality across the Weavegraph framework.