leann-core 0.2.3

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.
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
name = "leann-core"
version = "0.2.3"
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",
]