[package]
name = "nodedb-vector"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
readme.workspace = true
repository.workspace = true
homepage.workspace = true
description = "Shared vector engine (HNSW index + distance functions) for NodeDB Origin and Lite"

[features]
default = []
# Enables SIMD distance dispatch (AVX-512, AVX2+FMA, NEON).
# Required on native targets; not needed for WASM/iOS.
simd = []
# Enables IVF-PQ index and Product Quantization codec.
ivf = []
# Full VectorCollection with segment lifecycle, mmap NVMe tier, background builder.
# Implies simd + ivf.
collection = ["simd", "ivf", "dep:memmap2", "dep:libc"]

[dependencies]
nodedb-types = { workspace = true }
serde = { workspace = true }
zerompk = { workspace = true }
rkyv = { workspace = true }
tracing = { workspace = true }
thiserror = { workspace = true }
roaring = { workspace = true }

# Optional: only needed for the `collection` feature (NVMe mmap tier).
memmap2 = { workspace = true, optional = true }
libc = { workspace = true, optional = true }

[dev-dependencies]
rand = { workspace = true }
tempfile = { workspace = true }
