[package]
edition = "2021"
name = "ri-agent-graph"
version = "0.2.2"
build = false
include = [
"src/",
"tests/",
"examples/",
"benches/",
"README.md",
"LICENSE-MIT",
"assets/",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Graph-based agent orchestration for Rust — LangGraph-inspired execution engine with checkpointing, parallel fan-out/fan-in, interrupt/resume, and event streaming"
homepage = "https://github.com/RecursiveIntell/ri-agent-graph"
documentation = "https://docs.rs/ri-agent-graph"
readme = "README.md"
keywords = [
"ai",
"llm",
"agents",
"graph",
"workflow",
]
categories = [
"algorithms",
"asynchronous",
]
license = "MIT"
repository = "https://github.com/RecursiveIntell/ri-agent-graph"
[features]
checkpointing = ["rusqlite"]
default = ["checkpointing"]
[lib]
name = "ri_agent_graph"
path = "src/lib.rs"
[[example]]
name = "basic"
path = "examples/basic.rs"
[[example]]
name = "checkpointing"
path = "examples/checkpointing.rs"
[[example]]
name = "conditional"
path = "examples/conditional.rs"
[[example]]
name = "human_in_loop"
path = "examples/human_in_loop.rs"
[[example]]
name = "loop_example"
path = "examples/loop_example.rs"
[[example]]
name = "map_reduce"
path = "examples/map_reduce.rs"
[[example]]
name = "parallel"
path = "examples/parallel.rs"
[[example]]
name = "pipeline_node"
path = "examples/pipeline_node.rs"
[[example]]
name = "reducers"
path = "examples/reducers.rs"
[[example]]
name = "research_agent"
path = "examples/research_agent.rs"
[[example]]
name = "retry"
path = "examples/retry.rs"
[[example]]
name = "streaming"
path = "examples/streaming.rs"
[[example]]
name = "subgraph"
path = "examples/subgraph.rs"
[[example]]
name = "visualization"
path = "examples/visualization.rs"
[[test]]
name = "checkpoint_store_failure_contract"
path = "tests/checkpoint_store_failure_contract.rs"
[[test]]
name = "checkpointer_tests"
path = "tests/checkpointer_tests.rs"
[[test]]
name = "execution_tests"
path = "tests/execution_tests.rs"
[[test]]
name = "integration_tests"
path = "tests/integration_tests.rs"
[[test]]
name = "interrupt_failure_contract"
path = "tests/interrupt_failure_contract.rs"
[[test]]
name = "interrupt_tests"
path = "tests/interrupt_tests.rs"
[[test]]
name = "parallel_tests"
path = "tests/parallel_tests.rs"
[[test]]
name = "public_error_surface"
path = "tests/public_error_surface.rs"
[[test]]
name = "reducer_tests"
path = "tests/reducer_tests.rs"
[[test]]
name = "retry_tests"
path = "tests/retry_tests.rs"
[[test]]
name = "routing_tests"
path = "tests/routing_tests.rs"
[[test]]
name = "runtime_tests"
path = "tests/runtime_tests.rs"
[[test]]
name = "state_tests"
path = "tests/state_tests.rs"
[[test]]
name = "step5_verification"
path = "tests/step5_verification.rs"
[[test]]
name = "streaming_tests"
path = "tests/streaming_tests.rs"
[[test]]
name = "subgraph_tests"
path = "tests/subgraph_tests.rs"
[[bench]]
name = "graph_bench"
path = "benches/graph_bench.rs"
harness = false
[dependencies.async-trait]
version = "0.1"
[dependencies.chrono]
version = "0.4"
features = ["serde"]
[dependencies.futures]
version = "0.3"
[dependencies.rusqlite]
version = "0.32"
features = ["bundled"]
optional = true
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.stack-ids]
version = "0.1"
[dependencies.thiserror]
version = "2"
[dependencies.tokio]
version = "1"
features = ["full"]
[dependencies.tracing]
version = "0.1"
[dependencies.uuid]
version = "1"
features = [
"v4",
"serde",
]
[dev-dependencies.criterion]
version = "0.5"
[dev-dependencies.tokio-test]
version = "0.4"
[lints.rust]
unsafe_code = "deny"