[package]
name = "vectordb-cli"
description = "A CLI tool for semantic code search."
version = "1.6.0"
edition = "2021"
authors = ["Adam Mulvany <amulvany@gitlab.com>"]
license = "MIT"
readme = "README.md"
repository = "https://gitlab.com/amulvany/vectordb-cli"
keywords = ["search", "semantic", "code", "vector", "onnx"]
categories = ["command-line-utilities", "development-tools"]
homepage = "https://gitlab.com/amulvany/vectordb-cli"
documentation = "https://docs.rs/vectordb-cli"
exclude = [
"onnx/",
"repo-collection/",
"test_data/",
"qdrant_storage/",
"scripts/",
"examples/",
"docs/",
"tests/",
".env",
]
[workspace]
members = [
"crates/vectordb-client",
"proto/rust",
]
[features]
default = ["cli", "onetime_rayon", "ort"]
cli = []
server = [
"dep:tonic",
"dep:tonic-reflection",
"dep:vectordb-proto",
"dep:arc-swap",
"dep:axum",
"dep:ctrlc",
"dep:tower",
"dep:futures-util",
"dep:http-body-util",
]
onetime_rayon = ["dep:rayon"]
onnx = ["ort"]
cuda = ["ort/cuda"]
[dependencies]
clap = { version = "4.5.7", features = ["derive", "env"] }
indicatif = { version = "0.17.8", features = ["rayon"] }
walkdir = "2.5.0"
anyhow = "1.0"
thiserror = "1.0.61"
async-trait = "0.1.77"
rayon = { version = "1.10.0", optional = true }
ndarray = "0.16"
tokenizers = { version = "0.21.1", features = ["http"] }
serde = { version = "1.0.203", features = ["derive"] }
serde_json = "1.0.140"
serde_yaml = "0.9"
colored = "2.0"
dirs = "5.0.1"
tempfile = "3.5"
regex = "1.10.3"
rand = "0.8"
fastrand = "2.0"
num_cpus = "1.16.0"
log = "0.4"
chrono = { version = "0.4", features = ["serde"] }
tree-sitter = "0.22.6"
tree-sitter-rust = "0.21.0"
tree-sitter-ruby = "0.21.0"
tree-sitter-go = "0.21.0"
tree-sitter-md = "0.2.3"
tree-sitter-javascript = "0.21.0"
tree-sitter-typescript = "0.21.0"
tree-sitter-yaml = "0.6.1"
tree-sitter-python = "0.21.0"
lsp-types = "0.94"
crossbeam-channel = "0.5.13"
ctrlc = { version = "3.4.6", features = ["termination"], optional = true }
ort = { version = "2.0.0-rc.9", default-features = false, optional = true, features = ["download-binaries"] }
lru = "0.11.0"
lazy_static = "1.4.0"
notify = "6.1.1"
notify-debouncer-full = "0.3.1"
tokio = { version = "1.37.0", features = ["full"] }
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = [ "env-filter", "fmt" ] }
bincode = "1.3"
qdrant-client = "1.13.0"
uuid = { version = "1.8", features = ["v4", "serde"] }
env_logger = "0.11.3"
toml = "0.8.20"
futures = "0.3.31"
git2 = "0.18.3"
tonic = { version = "0.12", features = ["codegen", "transport", "tls", "tls-roots"], optional = true }
prost = { version = "0.13" }
tonic-reflection = { version = "0.12", optional = true }
tower = { version = "0.4", optional = true, features = ["limit"] }
vectordb-proto = { path = "proto/rust", optional = true, version = "0.1.0" }
vectordb-client = { path = "crates/vectordb-client", version = "0.1.0" }
arc-swap = { version = "1.6", optional = true }
axum = { version = "0.7.5", optional = true }
futures-util = { version = "0.3", optional = true }
http-body-util = { version = "0.1.2", optional = true }
[dev-dependencies]
mockall = "0.12.1"
tempfile = "3"
anyhow = "1.0"
test-log = "0.2"
assert_cmd = "2.0"
predicates = "3.1"
qdrant-client = { version = "1.13.0", features = ["serde"] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
toml = "0.8"
[lib]
name = "vectordb_lib"
path = "src/lib.rs"
[[bin]]
name = "vectordb-cli"
path = "src/bin/vectordb-cli.rs"
[build-dependencies]
fs_extra = "1.3"
dirs = "5.0"
tonic-build = { version = "0.12", features = ["transport", "prost"] }
prost-build = "0.13"