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