workspace = { members = ["examples/vector_store_surrealdb"] } [package] name = "langchain-rust" version = "4.6.0" edition = "2021" publish = true repository = "https://github.com/Abraxas-365/langchain-rust" license = "MIT" description = "LangChain for Rust, the easiest way to write LLM-based programs in Rust" keywords = ["chain", "chatgpt", "llm", "langchain"] documentation = "https://langchain-rust.sellie.tech/get-started/quickstart" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] scraper = "0.20" serde = { version = "1.0", features = ["derive"] } async-trait = "0.1.80" tokio = { version = "1", features = ["full"] } reqwest = { version = "0.12", features = ["json", "stream"] } serde_json = "1.0" futures = "0.3" regex = "1.10.4" log = "0.4.21" html-escape = "0.2.13" reqwest-eventsource = "0.6.0" async-openai = "0.24.0" mockito = "1.4.0" tiktoken-rs = "0.5.8" sqlx = { version = "0.8.0", default-features = false, features = [ "postgres", "sqlite", "runtime-tokio-native-tls", "json", "uuid", ], optional = true } uuid = { version = "1.8.0", features = ["v4"], optional = true } pgvector = { version = "0.4.0", features = [ "postgres", "sqlx", ], optional = true } text-splitter = { version = "0.16", features = ["tiktoken-rs", "markdown"] } surrealdb = { version = "2.0.2", optional = true, default-features = false } csv = "1.3.0" urlencoding = "2.1.3" lopdf = { version = "0.34.0", features = ["nom_parser"], optional = true } pdf-extract = { version = "0.7.8", optional = true } thiserror = "1.0.59" futures-util = "0.3.30" async-stream = "0.3.5" tokio-stream = "0.1.15" secrecy = "0.8.0" readability = "0.3.0" url = "2.5.0" fastembed = { version = "4", optional = true } flume = { version = "0.11.0", optional = true } gix = { version = "0.66.0", default-features = false, optional = true, features = [ "parallel", "revision", "serde", ] } opensearch = { version = "2", optional = true, features = ["aws-auth"] } aws-config = { version = "1.2", optional = true, features = [ "behavior-version-latest", ] } glob = "0.3.1" strum_macros = "0.26.2" async-recursion = "1.1.0" tree-sitter = { version = "0.24", optional = true } tree-sitter-rust = { version = "0.23", optional = true } tree-sitter-cpp = { version = "0.23", optional = true } tree-sitter-javascript = { version = "0.23", optional = true } tree-sitter-c = { version = "0.23", optional = true } tree-sitter-go = { version = "0.23", optional = true } tree-sitter-python = { version = "0.23", optional = true } tree-sitter-typescript = { version = "0.23", optional = true } qdrant-client = { version = "1.10.1", optional = true } ollama-rs = { version = "0.2.0", optional = true, features = [ "stream", "chat-history", ] } mistralai-client = { version = "0.14.0", optional = true } [features] default = [] fastembed = ["dep:fastembed"] git = ["gix", "flume"] mistralai = ["mistralai-client"] lopdf = ["dep:lopdf"] pdf-extract = ["dep:lopdf", "dep:pdf-extract"] ollama = ["ollama-rs"] opensearch = ["dep:opensearch", "aws-config"] postgres = ["pgvector", "sqlx", "uuid"] qdrant = ["qdrant-client", "uuid"] sqlite = ["sqlx"] surrealdb = ["dep:surrealdb"] tree-sitter = [ "cc", "dep:tree-sitter", "dep:tree-sitter-rust", "dep:tree-sitter-cpp", "dep:tree-sitter-javascript", "dep:tree-sitter-c", "dep:tree-sitter-go", "dep:tree-sitter-python", "dep:tree-sitter-typescript", ] [dev-dependencies] base64 = "0.22.1" tokio-test = "0.4.4" testcontainers = "0.23" [build-dependencies] cc = { version = "1", optional = true }