[package]
edition = "2024"
name = "leann-core"
version = "0.2.2"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "LEANN is a revolutionary vector database that democratizes personal AI. Transform your laptop into a powerful RAG system that can index and search through millions of documents while using 97% less storage than traditional solutions without accuracy loss."
readme = "README.md"
keywords = [
"hnsw",
"vector-search",
"nearest-neighbor",
"rag",
]
categories = [
"algorithms",
"science",
]
license = "MIT"
repository = "https://github.com/starpit/LEANN"
[features]
bm25 = []
chat = ["dep:reqwest"]
default = [
"chat",
"embedding-remote",
"parallel",
"bm25",
"watch",
"pdf",
"multi-vector",
]
embedding-remote = [
"dep:reqwest",
"dep:tokio",
]
full = [
"chat",
"embedding-remote",
"parallel",
"bm25",
"watch",
"pdf",
"tree-sitter",
"multi-vector",
]
multi-vector = ["dep:memmap2"]
parallel = ["dep:rayon"]
pdf = ["dep:pdf-extract"]
tree-sitter = [
"tree-sitter-python",
"tree-sitter-java",
"tree-sitter-c-sharp",
"tree-sitter-typescript",
"tree-sitter-javascript",
]
tree-sitter-c-sharp = [
"dep:tree-sitter",
"dep:tree-sitter-c-sharp",
]
tree-sitter-java = [
"dep:tree-sitter",
"dep:tree-sitter-java",
]
tree-sitter-javascript = [
"dep:tree-sitter",
"dep:tree-sitter-javascript",
]
tree-sitter-python = [
"dep:tree-sitter",
"dep:tree-sitter-python",
]
tree-sitter-typescript = [
"dep:tree-sitter",
"dep:tree-sitter-typescript",
]
watch = ["dep:sha2"]
[lib]
name = "leann_core"
path = "src/lib.rs"
[[test]]
name = "test_backend"
path = "tests/test_backend.rs"
[[test]]
name = "test_build_search"
path = "tests/test_build_search.rs"
[[test]]
name = "test_chat_pipeline"
path = "tests/test_chat_pipeline.rs"
[[test]]
name = "test_document_loading"
path = "tests/test_document_loading.rs"
[[test]]
name = "test_embedding_manager"
path = "tests/test_embedding_manager.rs"
[[test]]
name = "test_fuzz_io"
path = "tests/test_fuzz_io.rs"
[[test]]
name = "test_hybrid_search"
path = "tests/test_hybrid_search.rs"
[[test]]
name = "test_index_format"
path = "tests/test_index_format.rs"
[[test]]
name = "test_metadata_filtering"
path = "tests/test_metadata_filtering.rs"
[[test]]
name = "test_multi_vector"
path = "tests/test_multi_vector.rs"
[[test]]
name = "test_python_compat"
path = "tests/test_python_compat.rs"
[[test]]
name = "test_search_with_provider"
path = "tests/test_search_with_provider.rs"
[[test]]
name = "test_sync"
path = "tests/test_sync.rs"
[[bench]]
name = "bench_json_output"
path = "benches/bench_json_output.rs"
harness = false
[[bench]]
name = "hnsw_benchmarks"
path = "benches/hnsw_benchmarks.rs"
harness = false
[dependencies.anyhow]
version = "1"
[dependencies.indicatif]
version = "0.18"
optional = true
[dependencies.libc]
version = "0.2"
[dependencies.memmap2]
version = "0.9"
optional = true
[dependencies.ndarray]
version = "0.17"
[dependencies.pdf-extract]
version = "0.10"
optional = true
[dependencies.rand]
version = "0.9"
[dependencies.rayon]
version = "1"
optional = true
[dependencies.regex]
version = "1"
[dependencies.reqwest]
version = "0.13"
features = [
"json",
"blocking",
]
optional = true
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.sha2]
version = "0.10"
optional = true
[dependencies.thiserror]
version = "2"
[dependencies.tiktoken-rs]
version = "0.9"
optional = true
[dependencies.tokio]
version = "1"
features = ["full"]
optional = true
[dependencies.tracing]
version = "0.1"
[dependencies.tree-sitter]
version = "0.26"
optional = true
[dependencies.tree-sitter-c-sharp]
version = "0.23"
optional = true
[dependencies.tree-sitter-java]
version = "0.23"
optional = true
[dependencies.tree-sitter-javascript]
version = "0.25"
optional = true
[dependencies.tree-sitter-python]
version = "0.25"
optional = true
[dependencies.tree-sitter-typescript]
version = "0.23"
optional = true
[dependencies.uuid]
version = "1"
features = ["v4"]
optional = true
[dev-dependencies.criterion]
version = "0.8"
features = ["html_reports"]
[dev-dependencies.rayon]
version = "1"
[dev-dependencies.tempfile]
version = "3"
[dev-dependencies.tokio]
version = "1"
features = [
"full",
"test-util",
"macros",
]