[package]
name = "lumen-rag"
version = "0.1.0"
edition = "2021"
description = "A modular, database-agnostic RAG framework for Rust supporting MongoDB and Qdrant."
license = "MIT"
repository = "https://github.com/Maki-Grz/lumen-rag"
homepage = "https://github.com/Maki-Grz/lumen-rag"
documentation = "https://docs.rs/lumen-rag"
readme = "README.md"
keywords = ["rag", "llm", "search", "vector-database", "nlp"]
categories = ["science", "web-programming"]
exclude = ["/tests", "/examples", ".github"]

[lib]
name = "lumen_rag"
path = "src/lib.rs"

[features]
default = ["mongodb"]
mongodb = ["dep:mongodb"]
qdrant = ["dep:qdrant-client"]

[dependencies]
anyhow = "1.0.100"
thiserror = "1.0"
serde = { version = "1.0.228", features = ["derive"] }
serde_json = "1.0.145"
async-trait = "0.1.89"
futures = "0.3.31"
futures-util = "0.3.31"
twox-hash = "2.1.2"
regex = "1.11.2"
rayon = "1.11.0"
tokio = { version = "1.48.0", features = ["full"] }
reqwest = { version = "0.12.23", features = ["json"] }
candle-core = { version = "0.9.1" }
candle-transformers = { version = "0.9.1" }
candle-nn = "0.9.1"
hf-hub = "0.4.3"
tokenizers = "0.22.0"
mongodb = { version = "3.3.0", features = ["zstd-compression"], optional = true }
qdrant-client = { version = "1.7", optional = true }

[dev-dependencies]
actix-web = "4.11.0"
actix-cors = "0.7.1"
dotenv = "0.15.0"
tracing-subscriber = "0.3.20"
qdrant-client = "1.7"
