[package]
edition = "2021"
rust-version = "1.82"
name = "langchainrust"
version = "0.15.0"
authors = ["atliliw"]
build = false
exclude = [
"/docs",
"/.github",
"/langchain",
"/demo",
"/CONTRIBUTING.md",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A LangChain-inspired framework for building LLM applications in Rust. Supports OpenAI, Agents, Tools, Memory, Chains, RAG, BM25, Hybrid Retrieval, LangGraph, HyDE, Reranking, MultiQuery, and native Function Calling."
homepage = "https://github.com/atliliw/langchainrust"
documentation = "https://docs.rs/langchainrust"
readme = "README.md"
keywords = [
"llm",
"langchain",
"ai",
"rag",
"agent",
]
categories = [
"algorithms",
"asynchronous",
"api-bindings",
"science",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/atliliw/langchainrust"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
default = []
experimental = []
fastembed = ["lc-embeddings/fastembed"]
local-embeddings = ["lc-embeddings/local-embeddings"]
mongodb-persistence = [
"mongodb",
"lc-memory/mongodb-persistence",
"lc-vector-stores/mongodb-persistence",
"lc-langgraph/mongodb-persistence",
]
opentelemetry = [
"dep:opentelemetry",
"lc-callbacks/opentelemetry",
]
pgvector-storage = []
qdrant-integration = [
"qdrant-client",
"lc-vector-stores/qdrant-integration",
]
redis-storage = [
"redis",
"lc-vector-stores/redis-storage",
]
sqlite-storage = [
"rusqlite",
"lc-vector-stores/sqlite-storage",
]
vectorstore-memory = ["lc-memory/vectorstore-memory"]
[lib]
name = "langchainrust"
path = "src/lib.rs"
[[example]]
name = "a2a_http_server"
path = "examples/a2a_http_server.rs"
[[example]]
name = "agent_assistants"
path = "examples/agent/assistants.rs"
[[example]]
name = "agent_deep_research"
path = "examples/agent/deep_research.rs"
[[example]]
name = "agent_extended_thinking"
path = "examples/agent/extended_thinking.rs"
[[example]]
name = "agent_function_calling"
path = "examples/agent/function_calling.rs"
[[example]]
name = "agent_handoffs"
path = "examples/agent/handoffs.rs"
[[example]]
name = "agent_multi_tool"
path = "examples/agent/multi_tool.rs"
[[example]]
name = "agent_plan_execute"
path = "examples/agent/plan_execute.rs"
[[example]]
name = "basic_batch_api"
path = "examples/basic/batch_api.rs"
[[example]]
name = "basic_chat"
path = "examples/basic/chat.rs"
[[example]]
name = "basic_multi_provider"
path = "examples/basic/multi_provider.rs"
[[example]]
name = "basic_quick_start"
path = "examples/basic/quick_start.rs"
[[example]]
name = "basic_responses_api"
path = "examples/basic/responses_api.rs"
[[example]]
name = "basic_sandbox"
path = "examples/basic/sandbox.rs"
[[example]]
name = "basic_streaming"
path = "examples/basic/streaming.rs"
[[example]]
name = "basic_token_counter"
path = "examples/basic/token_counter.rs"
[[example]]
name = "chains_llm_chain"
path = "examples/chains/llm_chain.rs"
[[example]]
name = "chains_sequential_chain"
path = "examples/chains/sequential_chain.rs"
[[example]]
name = "evaluation"
path = "examples/evaluation/evaluation.rs"
[[example]]
name = "file_vectorstore"
path = "examples/rag/file_vectorstore.rs"
[[example]]
name = "guardrails"
path = "examples/guardrails/guardrails.rs"
[[example]]
name = "langgraph_basic_graph"
path = "examples/langgraph/basic_graph.rs"
[[example]]
name = "langgraph_conditional_edge"
path = "examples/langgraph/conditional_edge.rs"
[[example]]
name = "lcel_compose"
path = "examples/lcel/lcel_compose.rs"
[[example]]
name = "lcel_pipe"
path = "examples/lcel/lcel_pipe.rs"
[[example]]
name = "mcp_server"
path = "examples/mcp_server/mcp_server.rs"
[[example]]
name = "mcp_sse_server"
path = "examples/mcp_sse_server.rs"
[[example]]
name = "mcp_stdio_server"
path = "examples/mcp_stdio_server.rs"
[[example]]
name = "memory_buffer_memory"
path = "examples/memory/buffer_memory.rs"
[[example]]
name = "memory_context_window"
path = "examples/memory/context_window.rs"
[[example]]
name = "memory_sessions"
path = "examples/memory/sessions.rs"
[[example]]
name = "otel_tracing"
path = "examples/otel/otel_tracing.rs"
required-features = ["opentelemetry"]
[[example]]
name = "rag_adaptive_rag"
path = "examples/rag/adaptive_rag.rs"
[[example]]
name = "rag_bm25_search"
path = "examples/rag/bm25_search.rs"
[[example]]
name = "rag_corrective_rag"
path = "examples/rag/corrective_rag.rs"
[[example]]
name = "rag_document_loaders"
path = "examples/rag/document_loaders.rs"
[[example]]
name = "rag_graph_rag"
path = "examples/rag/graph_rag.rs"
[[example]]
name = "semantic_splitter"
path = "examples/rag/semantic_splitter.rs"
[[example]]
name = "vectorstore_memory"
path = "examples/memory/vectorstore_memory.rs"
[[bench]]
name = "embedding"
path = "benches/embedding.rs"
harness = false
[[bench]]
name = "retrieval"
path = "benches/retrieval.rs"
harness = false
[[bench]]
name = "splitter"
path = "benches/splitter.rs"
harness = false
[dependencies.async-trait]
version = "0.1"
[dependencies.bincode]
version = "1.3"
[dependencies.chrono]
version = "0.4"
features = ["serde"]
[dependencies.csv]
version = "1.3"
[dependencies.futures-util]
version = "0.3"
[dependencies.lc-a2a]
version = "0.15.0"
[dependencies.lc-agents]
version = "0.15.0"
[dependencies.lc-callbacks]
version = "0.15.0"
[dependencies.lc-chains]
version = "0.15.0"
[dependencies.lc-core]
version = "0.15.0"
[dependencies.lc-embeddings]
version = "0.15.0"
[dependencies.lc-evaluation]
version = "0.15.0"
[dependencies.lc-guardrails]
version = "0.15.0"
[dependencies.lc-langgraph]
version = "0.15.0"
[dependencies.lc-mcp]
version = "0.15.0"
[dependencies.lc-memory]
version = "0.15.0"
[dependencies.lc-prompts]
version = "0.15.0"
[dependencies.lc-providers]
version = "0.15.0"
[dependencies.lc-rag]
version = "0.15.0"
[dependencies.lc-schema]
version = "0.15.0"
[dependencies.lc-sessions]
version = "0.15.0"
[dependencies.lc-shared]
version = "0.15.0"
[dependencies.lc-tools]
version = "0.15.0"
[dependencies.lc-vector-stores]
version = "0.15.0"
[dependencies.log]
version = "0.4"
[dependencies.mongodb]
version = "2.8"
optional = true
[dependencies.opentelemetry]
version = "0.27"
optional = true
[dependencies.pdf-extract]
version = "0.7"
[dependencies.qdrant-client]
version = "1.7"
optional = true
[dependencies.redis]
version = "0.25"
features = ["tokio-comp"]
optional = true
[dependencies.regex]
version = "1"
[dependencies.reqwest]
version = "0.12"
features = [
"json",
"stream",
"multipart",
]
[dependencies.rusqlite]
version = "0.31"
features = ["bundled"]
optional = true
[dependencies.schemars]
version = "0.8"
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.serde_json]
version = "1.0"
[dependencies.thiserror]
version = "2.0"
[dependencies.tiktoken-rs]
version = "0.5"
[dependencies.tokio]
version = "1.0"
features = ["full"]
[dependencies.tokio-stream]
version = "0.1"
[dependencies.url]
version = "2"
[dependencies.urlencoding]
version = "2"
[dependencies.uuid]
version = "1.10"
features = [
"v4",
"v7",
"serde",
]
[dependencies.zip]
version = "2"
[dev-dependencies.criterion]
version = "0.5"
[dev-dependencies.lc-a2a]
version = "0.15.0"
features = ["axum"]
[dev-dependencies.tempfile]
version = "3.0"
[dev-dependencies.tokio-test]
version = "0.4"
[dev-dependencies.wiremock]
version = "0.6"