[package]
name = "pithdb"
version = "0.4.0"
edition = "2021"
rust-version = "1.92"
description = "Pith: lightweight local vector database with built-in ONNX embeddings and an MCP server for code search"
license = "MIT OR Apache-2.0"
repository = "https://github.com/vanjamodrinjak21/pith"
readme = "README.md"
exclude = [".superpowers/", ".claude/", ".remember/", ".madelog/", ".github/", "docs/", "eval/", ".pithignore", "PRD.md"]
keywords = ["vector-database", "embeddings", "onnx", "search"]
categories = ["database-implementations"]
[dependencies]
blake3 = "1.8.7"
bytemuck = "1.25.2"
clap = { version = "4.6.7", features = ["derive"] }
ignore = "0.4.33"
memmap2 = "0.9.11"
crossterm = { version = "0.29.0", default-features = false, features = ["events"], optional = true }
ort = { version = "=2.0.0-rc.14", default-features = false, features = ["std", "download-binaries", "tls-rustls"], optional = true }
ratatui = { version = "0.30.2", default-features = false, features = ["crossterm"], optional = true }
rmcp = { version = "3.5.1", default-features = false, features = ["server", "macros", "transport-io"], optional = true }
serde = { version = "1.0.229", features = ["derive"], optional = true }
sha2 = "0.11.1"
tempfile = "3.27.0"
thiserror = "2.0.21"
tokenizers = { version = "0.23.2", default-features = false, features = ["fancy-regex"], optional = true }
tokio = { version = "1.53.3", default-features = false, features = ["rt", "io-std", "time"], optional = true }
ureq = { version = "3.4.2", default-features = false, features = ["rustls"] }
zstd = "0.14.3"
[[example]]
name = "search_project"
required-features = ["onnx"]
[[bench]]
name = "search"
harness = false
[[bench]]
name = "index"
harness = false
required-features = ["onnx"]
[[bin]]
name = "pith"
path = "src/main.rs"
[features]
default = ["onnx", "mcp", "tui"]
onnx = ["dep:ort", "dep:tokenizers"]
mcp = ["dep:rmcp", "dep:tokio", "dep:serde"]
tui = ["dep:ratatui", "dep:crossterm"]
test-hooks = []
[dev-dependencies]
proptest = "1.12.0"
serde_json = "1.0.154"
pithdb = { path = ".", default-features = false, features = ["test-hooks"] }
criterion = { version = "0.8.2", default-features = false }
[target."cfg(unix)".dependencies]
rustix = { version = "1.1.5", features = ["fs", "process"] }