[package]
name = "vecboost"
version = "0.2.0"
edition = "2024"
authors = ["Kirky-X <kirky-x@outlook.com>"]
description = "High-performance embedding vector service written in Rust"
repository = "https://github.com/Kirky-X/vecboost"
documentation = "https://github.com/Kirky-X/vecboost"
homepage = "https://github.com/Kirky-X/vecboost"
license = "MIT"
keywords = ["embedding", "vector", "ml", "ai", "inference"]
categories = ["asynchronous", "science", "web-programming::http-server"]
[dependencies]
tokio = { version = "1.53", default-features = false, features = ["full"] }
async-trait = { version = "0.1", default-features = false }
futures = { version = "0.3", default-features = false, features = ["std", "async-await"] }
sys-info = { version = "0.9", default-features = false }
num_cpus = { version = "1.0", default-features = false }
xxhash-rust = { version = "0.8", default-features = false, features = ["xxh3"] }
chrono = { version = "0.4", default-features = false, features = ["serde", "clock", "std"] }
regex = { version = "1.13", default-features = false, features = ["std"] }
sha2 = { version = "0.11", default-features = false, features = ["alloc"] }
rand = { version = "0.10", default-features = false, features = ["thread_rng", "alloc"] }
hex = { version = "0.4", default-features = false, features = ["std"] }
url = { version = "2.0", default-features = false }
zeroize = { version = "1.0", default-features = false, features = ["alloc"] }
serde = { version = "1.0", default-features = false, features = ["derive", "std"] }
serde_json = { version = "1.0", default-features = false, features = ["std"] }
thiserror = { version = "2.0", default-features = false }
anyhow = { version = "1.0", default-features = false, features = ["std"] }
trait-kit = { version = "0.3", default-features = false, features = ["async"] }
confers = { version = "0.4", default-features = false, features = ["toml", "env", "config-bus"] }
inklog = { version = "0.1", default-features = false }
log = { version = "0.4", default-features = false }
oxcache = { version = "0.3", default-features = false, features = ["core"] }
limiteron = { version = "0.2", default-features = false }
dbnexus = { version = "0.4", optional = true, default-features = false, features = ["sqlite", "runtime-tokio-rustls", "macros", "permission", "cache"] }
sea-orm = { version = "2.0.0", optional = true, default-features = false }
candle-core = { version = "0.11", default-features = false, features = [] }
candle-nn = { version = "0.11", default-features = false }
candle-transformers = { version = "0.11", default-features = false }
hf-hub = { version = "1.0", default-features = false, features = ["blocking", "rustls-tls"] }
axum = { version = "0.8", optional = true, default-features = false, features = ["http1", "json", "tokio", "tracing", "macros", "matched-path", "original-uri", "query"] }
axum-extra = { version = "0.12", optional = true, default-features = false, features = ["typed-header"] }
tower-http = { version = "0.7", optional = true, default-features = false, features = ["trace", "cors", "add-extension", "validate-request", "set-header", "timeout"] }
utoipa = { version = "5.5", optional = true, default-features = false, features = ["axum_extras", "chrono", "uuid"] }
utoipa-swagger-ui = { version = "9.0", optional = true, default-features = false, features = ["axum", "url"] }
uuid = { version = "1.23", optional = true, default-features = false, features = ["v4", "serde"] }
prometheus = { version = "0.14", optional = true, default-features = false, features = ["process"] }
axum-prometheus = { version = "0.10", optional = true, default-features = false }
reqwest = { version = "0.13", optional = true, default-features = false, features = ["stream", "charset", "http2", "default-tls"] }
jsonwebtoken = { version = "10.0", optional = true, default-features = false, features = ["aws_lc_rs"] }
argon2 = { version = "0.6.0-rc.8", optional = true, default-features = false, features = ["alloc", "password-hash", "getrandom"] }
aes-gcm = { version = "0.11", optional = true, default-features = false, features = ["alloc", "aes", "getrandom", "rand_core"] }
redis = { version = "1.0", optional = true, default-features = false, features = ["tokio-comp", "connection-manager"] }
ndarray = { version = "0.17", optional = true, default-features = false, features = ["std"] }
ort = { version = "2.0.0-rc.12", optional = true, default-features = false }
sdforge = { version = "0.4", optional = true, default-features = false }
clap = { version = "4.6", optional = true, default-features = false, features = ["derive", "std", "help", "usage", "error-context"] }
rmcp = { version = "2.1", optional = true, default-features = false, features = ["server", "transport-io"] }
[features]
default = ["http"]
http = ["dep:axum", "dep:axum-extra", "dep:tower-http", "dep:utoipa", "dep:utoipa-swagger-ui", "dep:uuid", "dep:prometheus", "dep:axum-prometheus", "dep:reqwest", "sdforge/http", "sdforge/security"]
grpc = ["sdforge/grpc", "sdforge/ratelimit", "sdforge/security"]
cli = ["sdforge/cli", "dep:clap"]
openapi = ["dep:utoipa", "dep:utoipa-swagger-ui", "sdforge/openapi", "sdforge/docs"]
mcp = ["sdforge/mcp", "dep:rmcp"]
db = ["dep:dbnexus", "dep:sea-orm"]
postgres = ["db", "dbnexus/postgres"]
auth = ["dep:jsonwebtoken", "dep:argon2", "dep:aes-gcm"]
redis = ["dep:redis"]
cuda = ["candle-core/cuda", "candle-nn/cuda"]
metal = ["candle-core/metal", "candle-nn/metal"]
onnx = ["dep:ndarray", "dep:ort", "ort/ndarray", "ort/std", "ort/alternative-backend"]
[target.'cfg(target_os = "macos")'.dependencies]
tokenizers = { version = "0.15", default-features = false, features = ["http"] }
[target.'cfg(target_os = "linux")'.dependencies]
[target.'cfg(target_os = "windows")'.dependencies]
[dev-dependencies]
mockall = { version = "0.15", default-features = false }
tower = { version = "0.5", default-features = false, features = ["util"] }
tokio = { version = "1.53", default-features = false, features = ["test-util", "macros", "rt-multi-thread"] }
tempfile = { version = "3.0", default-features = false }
tracing = { version = "0.1", default-features = false, features = ["std"] }
tracing-subscriber = { version = "0.3", default-features = false, features = ["env-filter"] }
toml = { version = "1.1", default-features = false }
[profile.dev]
opt-level = 1
[workspace]
members = [".", "examples"]
resolver = "2"
[workspace.package]
license = "MIT"
edition = "2024"
authors = ["Kirky-X <kirky-x@outlook.com>"]