oxirs-vec 0.1.0

Vector index abstractions for semantic similarity and AI-augmented querying
Documentation
[package]
name = "oxirs-vec"
version.workspace = true
authors.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
description = "Vector index abstractions for semantic similarity and AI-augmented querying"
keywords = ["vector-search", "embeddings", "similarity", "hnsw", "rdf"]
categories = ["algorithms", "data-structures", "science"]
rust-version.workspace = true

[package.metadata.docs.rs]
# Exclude CUDA features from docs.rs builds (CUDA not available in build environment)
# NOTE: Do NOT include "cuda" or "gpu-full" features as they require CUDA toolkit
features = ["hnsw", "simd", "parallel", "gpu", "blas", "candle-gpu", "images", "content-processing", "python", "huggingface"]
# Do not use all-features to avoid enabling CUDA
all-features = false

[dependencies]
scirs2-core = { workspace = true }
scirs2-linalg = { workspace = true }
oxirs-core = { workspace = true, features = ["simd", "parallel"] }
serde.workspace = true
serde_json.workspace = true
anyhow.workspace = true
thiserror.workspace = true
tracing.workspace = true
hnsw_rs = { workspace = true, optional = true }
zstd = { version = "0.13", default-features = false }
# rand functionality now provided by scirs2-core (use scirs2_core::random)
# rand_distr functionality now provided by scirs2-core (use scirs2_core::random::distributions)
half = "2.4"
memmap2 = "0.9"
parking_lot = "0.12"
blake3 = "1.8"
lru = "0.16"
crossbeam-utils = "0.8"
libc = "0.2"
nalgebra = "0.33"
petgraph = "0.8"
reqwest = { workspace = true }
tokio = { version = "1.47", features = ["rt", "time"] }
oxicode.workspace = true  # Replaces bincode per COOLJAPAN Policy
regex = "1.12"
pdf-extract = { version = "0.10", optional = true }
zip = { version = "1.1", optional = true }
quick-xml = { version = "0.38", optional = true }
base64 = "0.22"
image = { version = "0.25", optional = true }
chrono = { version = "0.4", features = ["serde"] }
# CUDA dependencies - require CUDA toolkit to be installed
# Note: cuda-runtime-sys may fail to link if CUDA toolkit not installed
# cudarc handles dynamic loading more gracefully
cuda-runtime-sys = { version = "0.3.0-alpha.1", optional = true }
cudarc = { version = "0.18", features = ["cuda-12000"], optional = true }
candle-core = { version = "0.9", optional = true }
# Python bindings
pyo3 = { version = "0.27", features = ["extension-module"], optional = true }
numpy = { version = "0.27", optional = true }
uuid = { version = "1.19", features = ["v4"] }
num_cpus = "1.17"
humantime = "2.3"
indicatif = "0.18"
# HuggingFace integration
tokenizers = { version = "0.22", optional = true }
hf-hub = { version = "0.4", optional = true }

[dev-dependencies]
criterion.workspace = true
tempfile = "3.24"

[features]
default = []
hnsw = ["hnsw_rs"]
simd = ["oxirs-core/simd"]
parallel = ["oxirs-core/parallel"]
gpu = ["oxirs-core/gpu"]
blas = ["oxirs-core/blas"]
# CUDA feature requires CUDA toolkit installed
# WARNING: Will fail to link if CUDA toolkit not available
# Do NOT use with --all-features unless CUDA is installed
cuda = ["dep:cuda-runtime-sys", "dep:cudarc"]
candle-gpu = ["candle-core"]
gpu-full = ["cuda", "candle-gpu", "gpu"]
images = ["image"]
content-processing = ["pdf-extract", "zip", "quick-xml", "images"]
python = ["pyo3", "numpy"]
huggingface = ["tokenizers", "hf-hub"]