vectordb-cli 1.6.0

A CLI tool for semantic code search.
[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 large files and directories not needed for the crate build
exclude = [
    "onnx/",
    "repo-collection/",
    "test_data/",
    "qdrant_storage/",
    "scripts/",
    "examples/",
    "docs/",
    "tests/",
    ".env",
    # Add other specific file patterns if needed, e.g., "*.onnx"
]

[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"]
# Add server feature
# server = ["tonic/tls", "prost", "tonic-reflection", "tower", "vectordb-proto"]

[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"] }
# Code parsing dependencies
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"
# Syntax parsing dependencies
# syn = { version = "2.0", features = ["full", "parsing", "extra-traits", "visit"] }
# proc-macro2 = "1.0"
# quote = "1.0"
ctrlc = { version = "3.4.6", features = ["termination"], optional = true }
# ONNX Runtime dependencies
ort = { version = "2.0.0-rc.9", default-features = false, optional = true, features = ["download-binaries"] }
lru = "0.11.0"
lazy_static = "1.4.0"
# File watching dependency
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"
# Add Qdrant client
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"
# Add gRPC dependencies (Update versions)
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"] }
# Add this for code generation
vectordb-proto = { path = "proto/rust", optional = true, version = "0.1.0" }
# Add new client dependency
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"
# Add test-log dependency
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"
# Add build dependencies for proto compilation (Update versions)
tonic-build = { version = "0.12", features = ["transport", "prost"] }
prost-build = "0.13"
# Add other build dependencies if needed