Skip to content

Releases: Fieldnote-Echo/ordvec

v0.2.0

26 May 17:35
Immutable release. Only release title and notes can be modified.
v0.2.0
a12cd4a

Choose a tag to compare

Training-free ordinal & sign vector quantization for compressed nearest-neighbour retrieval. Pure Rust, zero system dependencies (no BLAS / ndarray / faer).

Index families

  • Rank — full-precision rank vectors (u16/coord); Spearman + asymmetric float-query-LUT scoring.
  • RankQuant — bucketed ranks at 1/2/4 bits/coord (dim*bits/8 bytes/doc); symmetric + asymmetric scoring.
  • Bitmap — top-bucket bitmap; popcount(Q AND D) with built-in two-stage retrieval (candidate probe → exact rerank).
  • SignBitmap — sign-cosine candidate generation.
  • RankQuantFastscan (#[doc(hidden)], FastScan b=2) and MultiBucketBitmap (experimental).

Platform & perf

  • Runtime SIMD dispatch — AVX-512 / AVX2 (x86_64), NEON (aarch64), simd128 (wasm32), scalar fallback.
  • write / load persistence for every index type; loaders validate magic / version / bounds / exact-length.
  • Reproducible synthetic benchmark (cargo run --release --example bench_rank) + .npy corpus loading.

Python

  • ordvec on PyPI — PyO3 / abi3-py310 (Python ≥ 3.10, numpy ≥ 2.0): Rank / RankQuant / Bitmap / SignBitmap.

Safety

  • #![deny(unsafe_op_in_unsafe_fn)] crate-wide; public APIs fail loud on out-of-domain input (rank_to_bucket rejects rank >= d; Python raises ValueError).
  • 7 cargo-fuzz targets run per-PR + weekly in CI.
  • Remediated pytest CVE-2025-71176 (GHSA-6w46-j5rx-g56g).

Notes

  • MSRV 1.89 (AVX-512 intrinsics floor). Dual-licensed MIT OR Apache-2.0. Deprecated *Index aliases retained for back-compat.