[package]
edition = "2024"
rust-version = "1.91"
name = "vecboost"
version = "0.3.0-rc.1"
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 = "Apache-2.0"
repository = "https://github.com/Kirky-X/vecboost"
resolver = "2"
[features]
accelerate = [
"candle-core/accelerate",
"candle-nn/accelerate",
"candle-transformers/accelerate",
]
auth = [
"dep:garrison",
"dep:aes-gcm",
]
cli = [
"sdforge/cli",
"dep:clap",
]
cuda = [
"candle-core/cuda",
"candle-nn/cuda",
"dep:nvml-wrapper",
"dep:cudarc",
]
db = ["dep:dbnexus"]
default = ["http"]
grpc = [
"sdforge/grpc",
"sdforge/ratelimit",
"sdforge/security",
"dep:tonic",
]
http = [
"dep:axum",
"dep:axum-extra",
"dep:tower-http",
"schema",
"dep:utoipa-swagger-ui",
"dep:uuid",
"dep:base64",
"dep:prometheus",
"dep:reqwest",
"sdforge/http",
"sdforge/security",
"sdforge/cache",
"sdforge/streaming",
"sdforge/timestamp",
"sdforge/docs",
"dep:dbnexus",
]
mcp = [
"dep:sdforge",
"sdforge/mcp",
]
metal = [
"candle-core/metal",
"candle-nn/metal",
]
mkl = [
"candle-core/mkl",
"candle-nn/mkl",
"candle-transformers/mkl",
"dep:half",
]
onnx = [
"dep:ndarray",
"dep:ort",
"ort/ndarray",
"ort/std",
"ort/alternative-backend",
]
openapi = [
"schema",
"dep:utoipa-swagger-ui",
"sdforge/openapi",
"sdforge/docs",
]
postgres = [
"db",
"dbnexus/postgres",
"inklog/postgres",
]
quantized-gguf = []
schema = ["dep:utoipa"]
sqlite = [
"db",
"dbnexus/sqlite",
"inklog/sqlite",
]
[lib]
name = "vecboost"
path = "src/lib.rs"
[[bin]]
name = "vecboost"
path = "src/main.rs"
required-features = ["http"]
[[test]]
name = "doctor"
path = "tests/doctor.rs"
[[test]]
name = "grpc_e2e"
path = "tests/grpc_e2e.rs"
[[test]]
name = "integration"
path = "tests/integration.rs"
[[test]]
name = "model_snapshot_regression"
path = "tests/model_snapshot_regression.rs"
[[test]]
name = "perf"
path = "tests/perf.rs"
[[test]]
name = "quantized_parity"
path = "tests/quantized_parity.rs"
[[test]]
name = "scenario_sdk"
path = "tests/scenario_sdk.rs"
[[bench]]
name = "batch_scheduling_bench"
path = "benches/batch_scheduling_bench.rs"
harness = false
[[bench]]
name = "embed_throughput_bench"
path = "benches/embed_throughput_bench.rs"
harness = false
[[bench]]
name = "semantic_cache_bench"
path = "benches/semantic_cache_bench.rs"
harness = false
[[bench]]
name = "similarity_bench"
path = "benches/similarity_bench.rs"
harness = false
[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"
features = ["alloc"]
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.base64]
version = "0.23"
features = ["std"]
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.6.0-rc.5"
features = [
"toml",
"env",
"validation",
"watch",
"encryption",
"schema",
"typescript-schema",
"modules",
]
default-features = false
[dependencies.cudarc]
version = "0.19"
features = [
"std",
"driver",
"cuda-version-from-build-system",
"dynamic-linking",
]
optional = true
default-features = false
[dependencies.dbnexus]
version = "0.6.0-rc.5"
features = [
"runtime-tokio-rustls",
"macros",
"permission",
"cache",
"pool-health-check",
"pool-warmup",
"retry",
"config-env",
"observability",
"failover",
"replica-routing",
]
optional = true
default-features = false
[dependencies.fluent-bundle]
version = "0.16"
[dependencies.futures]
version = "0.3"
features = [
"std",
"async-await",
]
default-features = false
[dependencies.garde]
version = "0.23"
features = ["derive"]
default-features = false
[dependencies.garrison]
version = "0.9.0-rc.2"
features = [
"web-axum",
"protocol-jwt",
"web-csrf",
"cache-memory",
"cache-audit",
"account-credential",
"account-policy",
"account-lockout",
"secure-masking",
"secure-xss",
"secure-sanitize",
"audit-inklog",
"listener",
"i18n",
"firewall",
"firewall-bruteforce",
"firewall-ratelimit",
"firewall-ddos",
"firewall-anomalous",
"secure-totp",
"credential-zeroize",
"anomalous-detector-dual",
"security-alert",
"protocol-apikey",
"protocol-sign",
"protocol-temp",
"protocol-zeroize",
"backend-kit",
"annotation-macros",
"secure-ct-eq",
"secure-simple-token",
"web-cors",
"web-security-headers",
"metrics-prometheus",
"grpc",
]
optional = true
default-features = false
[dependencies.half]
version = "2.7"
optional = true
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.icu]
version = "2.3"
features = ["compiled_data"]
default-features = false
[dependencies.inklog]
version = "0.3.0-rc.5"
features = [
"compression",
"fast-masking",
]
default-features = false
[dependencies.limiteron]
version = "0.3.0-rc.5"
features = [
"ban-manager",
"gcra",
"macros",
"metrics",
"validation",
"kit",
"fallback",
"audit-log",
"multi-tenant",
"tower-middleware",
]
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.17"
default-features = false
[dependencies.nvml-wrapper]
version = "0.13"
optional = true
default-features = false
[dependencies.ort]
version = "2.0.0-rc.13"
optional = true
default-features = false
[dependencies.oxcache]
version = "0.5.0-rc.5"
features = [
"core",
"bloom",
"compression",
"macros",
"batch",
"lock",
"kit",
]
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.rayon]
version = "1.12"
default-features = false
[dependencies.regex]
version = "1.13"
features = ["std"]
default-features = false
[dependencies.reqwest]
version = "0.13"
features = [
"stream",
"charset",
"http2",
"rustls",
]
optional = true
default-features = false
[dependencies.schemars]
version = "1.2"
default-features = false
[dependencies.sdforge]
version = "0.5.0-rc.5"
features = [
"i18n",
"inklog",
"context",
]
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.sys-locale]
version = "0.3"
default-features = false
[dependencies.tokenizers]
version = "0.23"
features = [
"http",
"onig",
]
default-features = false
[dependencies.tokio]
version = "1.53"
features = ["full"]
default-features = false
[dependencies.tonic]
version = "0.14"
features = ["transport"]
optional = true
default-features = false
[dependencies.tower-http]
version = "0.7"
features = [
"trace",
"cors",
"add-extension",
"validate-request",
"set-header",
"timeout",
"compression-gzip",
]
optional = true
default-features = false
[dependencies.trait-kit]
version = "0.5.0-rc.6"
features = [
"async",
"lifecycle",
"health",
"shutdown",
"observer",
"scope",
"toggle",
"decorator",
"reload",
"confers",
"i18n",
"negotiate",
]
default-features = false
[dependencies.unic-langid]
version = "0.9"
features = ["likelysubtags"]
default-features = false
[dependencies.utoipa]
version = "5.5"
features = [
"macros",
"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.26"
features = [
"v4",
"serde",
]
optional = true
default-features = false
[dependencies.writeable]
version = "0.6"
[dependencies.xxhash-rust]
version = "0.8"
features = ["xxh3"]
default-features = false
[dependencies.zeroize]
version = "1.9"
features = ["alloc"]
default-features = false
[dev-dependencies.criterion]
version = "0.8"
features = ["cargo_bench_support"]
default-features = false
[dev-dependencies.serde_json]
version = "1.0"
features = ["std"]
default-features = false
[dev-dependencies.tempfile]
version = "3.27"
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.tonic]
version = "0.14"
features = [
"transport",
"codegen",
]
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(all(target_os = "linux", not(target_env = "musl")))'.dependencies.tikv-jemallocator]
version = "0.7"
features = ["background_threads"]
default-features = false
[target.'cfg(target_os = "linux")'.dependencies]
[target.'cfg(target_os = "windows")'.dependencies]
[profile.dev]
opt-level = 1
[profile.release]
opt-level = 3
lto = "fat"
codegen-units = 1
panic = "abort"
strip = true