[package]
edition = "2021"
rust-version = "1.75"
name = "leindex"
version = "1.5.2"
authors = ["LeIndex Contributors"]
build = false
include = [
"/src/lib.rs",
"/src/bin/**",
"/src/cli/**",
"/src/edit/**",
"/src/global/**",
"/src/graph/**",
"/src/parse/**",
"/src/phase/**",
"/src/search/**",
"/src/server/**",
"/src/storage/**",
"/src/validation/**",
"/tests/**",
"/benches/**",
"/Cargo.toml",
"/Cargo.lock",
"/README.md",
"/CHANGELOG.md",
"/LICENSE",
"/leindex.jpeg",
"/docs/MCP.md",
"/docs/TOOL_SUPREMACY_BENCHMARKS.md",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "High-performance semantic code search engine with INT8 quantization and HNSW indexing"
homepage = "https://github.com/scooter-lacroix/LeIndex"
documentation = "https://docs.rs/leindex"
readme = "README.md"
keywords = [
"search",
"code",
"semantic",
"indexing",
"language-server",
]
categories = [
"development-tools",
"text-processing",
"data-structures",
"algorithms",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/scooter-lacroix/LeIndex.git"
[features]
cli = [
"parse",
"graph",
"search",
"storage",
"phase",
"edit",
"mcp-server",
"dep:clap",
"dep:toml",
"dep:walkdir",
"dep:dirs",
"dep:notify",
"dep:psutil",
"dep:diffy",
]
default = ["full"]
edit = [
"storage",
"graph",
"parse",
"dep:git2",
"dep:diffy",
]
full = [
"parse",
"graph",
"storage",
"search",
"phase",
"cli",
"global",
"server",
"edit",
"validation",
]
global = [
"storage",
"dep:walkdir",
"dep:notify",
]
graph = [
"parse",
"dep:petgraph",
]
mcp-server = [
"cli",
"dep:axum-06",
"dep:tower-04",
"dep:tower-http-04",
"dep:tokio-stream",
"dep:futures-util",
"dep:bytes",
"dep:http-body-util",
"dep:http",
]
minimal = [
"parse",
"search",
]
parse = [
"dep:tree-sitter",
"dep:tree-sitter-python",
"dep:tree-sitter-javascript",
"dep:tree-sitter-typescript",
"dep:tree-sitter-go",
"dep:tree-sitter-rust",
"dep:tree-sitter-java",
"dep:tree-sitter-cpp",
"dep:tree-sitter-c-sharp",
"dep:tree-sitter-ruby",
"dep:tree-sitter-php",
"dep:tree-sitter-c",
"dep:tree-sitter-bash",
"dep:tree-sitter-json",
"dep:tree-sitter-lua",
"dep:tree-sitter-scala",
"dep:rayon",
"dep:once_cell",
]
phase = [
"parse",
"graph",
"search",
"storage",
"dep:walkdir",
]
search = [
"parse",
"graph",
"dep:regex",
"dep:hnsw_rs",
"dep:lru",
"dep:bytemuck",
"dep:wide",
"dep:unicode-normalization",
]
server = [
"storage",
"graph",
"search",
"dep:axum",
"dep:tower",
"dep:tower-http",
"dep:http",
"dep:futures",
"dep:tokio-tungstenite",
"dep:walkdir",
]
storage = [
"parse",
"graph",
"dep:rusqlite",
"dep:libsql",
"dep:rusqlite_migration",
]
validation = [
"parse",
"storage",
"graph",
]
[lib]
name = "leindex"
path = "src/lib.rs"
[[bin]]
name = "leindex"
path = "src/bin/leindex.rs"
doc = false
required-features = ["cli"]
[[test]]
name = "cli_integration_test"
path = "tests/cli_integration_test.rs"
[[test]]
name = "cli_mcp_stdio_e2e"
path = "tests/cli_mcp_stdio_e2e.rs"
[[test]]
name = "graph_import_edges_test"
path = "tests/graph_import_edges_test.rs"
[[test]]
name = "phase_integration"
path = "tests/phase_integration.rs"
[[test]]
name = "search_hnsw_integration"
path = "tests/search_hnsw_integration.rs"
[[test]]
name = "storage_cross_project_integration"
path = "tests/storage_cross_project_integration.rs"
[[bench]]
name = "phase_bench"
path = "benches/phase_bench.rs"
harness = false
required-features = ["phase"]
[[bench]]
name = "search_benchmarks"
path = "benches/search_benchmarks.rs"
harness = false
required-features = ["search"]
[[bench]]
name = "simd_benchmarks"
path = "benches/simd_benchmarks.rs"
harness = false
required-features = ["search"]
[dependencies.anyhow]
version = "1.0"
[dependencies.axum]
version = "0.7"
features = ["ws"]
optional = true
[dependencies.axum-06]
version = "0.6"
features = [
"json",
"headers",
]
optional = true
package = "axum"
[dependencies.bincode]
version = "1.3"
[dependencies.blake3]
version = "1.5"
[dependencies.bytemuck]
version = "1.15"
optional = true
[dependencies.bytes]
version = "1"
optional = true
[dependencies.chrono]
version = "0.4"
[dependencies.clap]
version = "4.5"
features = ["derive"]
optional = true
[dependencies.diffy]
version = "0.3"
optional = true
[dependencies.dirs]
version = "5"
optional = true
[dependencies.futures]
version = "0.3"
optional = true
[dependencies.futures-util]
version = "0.3"
optional = true
[dependencies.git2]
version = "0.18"
optional = true
[dependencies.hnsw_rs]
version = "0.1.0"
optional = true
[dependencies.http]
version = "1"
optional = true
[dependencies.http-body-util]
version = "0.1"
optional = true
[dependencies.libsql]
version = "0.5.0"
optional = true
[dependencies.lru]
version = "0.12"
optional = true
[dependencies.notify]
version = "6.0"
optional = true
[dependencies.once_cell]
version = "1.19"
optional = true
[dependencies.petgraph]
version = "0.7"
features = ["serde"]
optional = true
[dependencies.psutil]
version = "3"
optional = true
[dependencies.rayon]
version = "1.10"
optional = true
[dependencies.regex]
version = "1.10"
optional = true
[dependencies.rusqlite]
version = "0.32"
features = ["bundled"]
optional = true
[dependencies.rusqlite_migration]
version = "1.0.0"
optional = true
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.serde_json]
version = "1.0"
[dependencies.thiserror]
version = "2.0"
[dependencies.tokio]
version = "1.40"
features = ["full"]
[dependencies.tokio-stream]
version = "0.1"
optional = true
[dependencies.tokio-tungstenite]
version = "0.21"
optional = true
[dependencies.toml]
version = "0.8"
optional = true
[dependencies.tower]
version = "0.5"
features = ["full"]
optional = true
[dependencies.tower-04]
version = "0.4"
features = ["full"]
optional = true
package = "tower"
[dependencies.tower-http]
version = "0.5"
features = [
"cors",
"trace",
]
optional = true
[dependencies.tower-http-04]
version = "0.4"
features = [
"cors",
"trace",
"limit",
]
optional = true
package = "tower-http"
[dependencies.tracing]
version = "0.1"
[dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]
[dependencies.tree-sitter]
version = "0.24"
optional = true
[dependencies.tree-sitter-bash]
version = "0.23"
optional = true
[dependencies.tree-sitter-c]
version = "0.23"
optional = true
[dependencies.tree-sitter-c-sharp]
version = "0.23"
optional = true
[dependencies.tree-sitter-cpp]
version = "0.23"
optional = true
[dependencies.tree-sitter-go]
version = "0.23"
optional = true
[dependencies.tree-sitter-java]
version = "0.23"
optional = true
[dependencies.tree-sitter-javascript]
version = "0.23"
optional = true
[dependencies.tree-sitter-json]
version = "0.23"
optional = true
[dependencies.tree-sitter-lua]
version = "0.2"
optional = true
[dependencies.tree-sitter-php]
version = "0.23"
optional = true
[dependencies.tree-sitter-python]
version = "0.23"
optional = true
[dependencies.tree-sitter-ruby]
version = "0.23"
optional = true
[dependencies.tree-sitter-rust]
version = "0.23"
optional = true
[dependencies.tree-sitter-scala]
version = "0.24"
optional = true
[dependencies.tree-sitter-typescript]
version = "0.23"
optional = true
[dependencies.unicode-normalization]
version = "0.1"
optional = true
[dependencies.walkdir]
version = "2.5"
optional = true
[dependencies.wide]
version = "0.7"
optional = true
[dev-dependencies.criterion]
version = "0.5"
features = ["html_reports"]
[dev-dependencies.proptest]
version = "1.6"
[dev-dependencies.rand]
version = "0.8"
[dev-dependencies.rstest]
version = "0.23"
[dev-dependencies.tempfile]
version = "3.13"
[dev-dependencies.tokio-test]
version = "0.4"
[profile.bench]
debug = 2
[profile.release]
opt-level = 3
lto = "thin"
codegen-units = 1
strip = true