oxify-vector 0.1.0

In-memory vector search and similarity operations for OxiFY (ported from OxiRS)
Documentation
[package]
name = "oxify-vector"
version = "0.1.0"
edition = "2021"
authors = ["OxiFY Contributors"]
license = "MIT OR Apache-2.0"
description = "In-memory vector search and similarity operations for OxiFY (ported from OxiRS)"
repository = "https://github.com/cool-japan/oxify"
categories = ["algorithms", "data-structures", "science", "database-implementations"]
keywords = ["vector-search", "similarity", "hnsw", "simd", "quantization"]

[dependencies]
# Workspace dependencies
serde = { workspace = true }
serde_json = { workspace = true }
anyhow = { workspace = true }
tracing = { workspace = true }

# Parallel processing
rayon = { workspace = true }

# Random number generation (for HNSW level selection)
rand = { workspace = true }

# Half-precision (FP16) support (optional)
half = { version = "2.7", features = ["std", "serde"], optional = true }

# Zero-copy serialization and memory-mapped files (optional)
rkyv = { version = "0.8", features = ["bytecheck"], optional = true }
memmap2 = { version = "0.9", optional = true }

# OpenTelemetry tracing (optional)
opentelemetry = { workspace = true, optional = true }
opentelemetry_sdk = { workspace = true, optional = true }

# GPU acceleration with CUDA - Linux only (macOS/Windows don't support CUDA)
# cudarc is only included on Linux targets
[target.'cfg(target_os = "linux")'.dependencies]
cudarc = { version = "0.18", features = ["driver", "cuda-version-from-build-system"], optional = true }

[dev-dependencies]
criterion = { workspace = true }
proptest = { workspace = true }
tempfile = { workspace = true }

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

[features]
default = []
parallel = []
mmap = ["dep:memmap2"]
zerocopy = ["dep:rkyv"]
otel = ["dep:opentelemetry", "dep:opentelemetry_sdk"]
fp16 = ["dep:half"]
# cuda feature only has effect on Linux (cudarc is target-gated)
cuda = ["dep:cudarc"]