[package]
edition = "2021"
name = "rust-langgraph"
version = "0.1.1"
authors = ["Rust LangGraph contributors"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = """
Stateful graph runtime for LLM workflows in Rust (community project; not affiliated with LangChain).
Pregel-style execution: nodes, conditional edges, checkpoints, streaming. Optional adapters for
Ollama, OpenAI, OpenRouter (OpenAI-compatible), and Anthropic; optional ReAct agent + tools.
Crate import: rust_langgraph (underscore). Default features include in-memory checkpoints.
Enable Cargo features explicitly for LLM modules (e.g. ollama, openai, openrouter, anthropic, prebuilt).
See README.md on crates.io for copy-paste Cargo.toml, env vars, and common mistakes.
"""
documentation = "https://docs.rs/rust-langgraph"
readme = "README.md"
keywords = [
"langgraph",
"llm",
"agent",
"workflow",
"async",
]
categories = [
"asynchronous",
"web-programming",
]
license = "MIT"
repository = "https://github.com/kareem2002-k/rust-langgraph"
[features]
anthropic = ["dep:reqwest"]
default = ["memory-checkpoint"]
memory-checkpoint = []
ollama = ["dep:reqwest"]
openai = [
"dep:reqwest",
"dep:async-openai",
]
openrouter = [
"dep:reqwest",
"dep:async-openai",
]
postgres = [
"dep:sqlx",
"sqlx/postgres",
"sqlx/runtime-tokio",
]
prebuilt = []
sqlite = [
"dep:sqlx",
"sqlx/sqlite",
"sqlx/runtime-tokio",
]
[lib]
name = "rust_langgraph"
path = "src/lib.rs"
[[example]]
name = "checkpointing"
path = "examples/03_checkpointing.rs"
[[example]]
name = "conditional_edges"
path = "examples/02_conditional_edges.rs"
[[example]]
name = "custom_state"
path = "examples/08_custom_state.rs"
[[example]]
name = "ollama_chat"
path = "examples/05_ollama_chat.rs"
required-features = ["ollama"]
[[example]]
name = "openrouter_chat"
path = "examples/07_openrouter_chat.rs"
required-features = ["openrouter"]
[[example]]
name = "react_agent_ollama"
path = "examples/06_react_agent_ollama.rs"
required-features = [
"ollama",
"prebuilt",
]
[[example]]
name = "simple_graph"
path = "examples/01_simple_graph.rs"
[[example]]
name = "streaming"
path = "examples/04_streaming.rs"
[[test]]
name = "test_ollama_integration"
path = "tests/test_ollama_integration.rs"
[dependencies.anyhow]
version = "1.0"
[dependencies.async-openai]
version = "0.24"
optional = true
[dependencies.async-trait]
version = "0.1"
[dependencies.chrono]
version = "0.4"
features = ["serde"]
[dependencies.futures]
version = "0.3"
[dependencies.pin-project]
version = "1.1"
[dependencies.reqwest]
version = "0.12"
features = ["json"]
optional = true
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.serde_json]
version = "1.0"
[dependencies.sqlx]
version = "0.8"
features = ["json"]
optional = true
[dependencies.thiserror]
version = "1.0"
[dependencies.tokio]
version = "1.40"
features = ["full"]
[dependencies.tokio-stream]
version = "0.1"
[dependencies.tracing]
version = "0.1"
[dependencies.uuid]
version = "1.10"
features = [
"v4",
"serde",
]
[dev-dependencies.proptest]
version = "1.5"
[dev-dependencies.tokio-test]
version = "0.4"