[package]
name = "dynomite-vec"
description = "Vector storage + HNSW ANN index engine for the Dynomite Rust port"
version = "1.3.0"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
repository.workspace = true
authors.workspace = true
readme = "README.md"

[lints]
workspace = true

[features]
default = []
# Build the on-disk Noxu storage backend. Off by default so the
# crate compiles in a workspace that does not have the noxu
# checkout next door; a `MemoryStore` is shipped for that case.
noxu = ["dep:noxu"]
# Enable the optional hyper-based HTTP API. The HTTP surface is
# retained as a debug / inspection facility; the primary
# protocol surface is the Redis-Stack RediSearch FT.* commands
# served by `dynomite::vector` over the existing Redis
# listener.
http = ["dep:hyper", "dep:hyper-util", "dep:http-body-util"]

[lib]
name = "dynvec"
path = "src/lib.rs"

[dependencies]
serde = { workspace = true }
serde_json = { workspace = true }
thiserror = { workspace = true }
tracing = { workspace = true }
tokio = { workspace = true }
parking_lot = { workspace = true }
bytes = { workspace = true }
half = "2.4"
# Turbovec quantizer for 2/3/4-bit codebook compression with
# SIMD-accelerated similarity search. New dep added in this
# crate only; rationale and scope are recorded in
# docs/journal/2026-05-30-turbovec.md.
turbovec = "0.8"
hyper = { version = "1.9", features = ["http1", "server"], optional = true }
hyper-util = { version = "0.1", features = ["tokio"], optional = true }
http-body-util = { version = "0.1", optional = true }
noxu = { workspace = true, optional = true }

[dev-dependencies]
tokio = { workspace = true }
tempfile = { workspace = true }
hegeltest = { workspace = true }
criterion = { workspace = true }
hyper = { version = "1.9", features = ["http1", "server", "client"] }
hyper-util = { version = "0.1", features = ["tokio", "client-legacy", "http1"] }
http-body-util = "0.1"

[[bench]]
name = "throughput"
harness = false

[[example]]
name = "quickstart"
required-features = ["http"]
