Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,32 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## Unreleased

## 0.5.0 - 2026-06-13

### Added

- **Caller-owned serial batched/buffered two-stage primitives** (additive):
- `SignBitmap::top_m_candidates_batched_serial_csr(&self, queries, m) -> CandidateBatch`
— serial (no rayon) CSR candidate generation; pair with the rerank below to
run a fully caller-scheduled two-stage search.
- `RankQuant::search_asymmetric_subset_batched_serial(..) -> SearchResults` and
`..._serial_into(.., &mut SubsetScratch, &mut out_scores, &mut out_indices)`
— serial batched subset rerank; the `_into` form is allocation-free after
scratch warmup (the integration contract for runtimes that own their own
thread pool / GIL release).
- New public types `CandidateBatch` (CSR candidate carrier) and `SubsetScratch`
(reusable rerank scratch).
- These primitives never enter rayon; the caller owns parallelism. No bundled
rayon convenience wrapper ships in this release — partition the query batch and
drive the serial `_into` primitive from your own pool. The existing
internally-parallel `top_m_candidates_batched` and `search_asymmetric*` are
unchanged.

### Notes

- The serial CSR candidate-gen is a correctness-first implementation; a future
release optimizes its internals behind the same signature.

## 0.4.0 - 2026-06-04

### Added
Expand Down
10 changes: 5 additions & 5 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "ordvec"
version = "0.4.0"
version = "0.5.0"
edition = "2021"
rust-version = "1.89" # AVX-512 intrinsics stabilized in 1.89.0; also clears the 1.87 floor from u64::is_multiple_of
description = "Training-free ordinal & sign quantization for vector retrieval"
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ Details in [`docs/RANK_MODES.md`](docs/RANK_MODES.md).

```toml
[dependencies]
ordvec = "0.4"
ordvec = "0.5"

# Or, to track unreleased `main`, use a git dependency instead:
# ordvec = { git = "https://github.com/Fieldnote-Echo/ordvec" }
Expand Down
2 changes: 1 addition & 1 deletion THREAT_MODEL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Threat Model — `ordvec`

> **Status:** v0.4.0 (pre-1.0), 2026-06-04. This is the maintained threat model
> **Status:** v0.5.0 (pre-1.0), 2026-06-13. This is the maintained threat model
> for the `ordvec` Rust crate, C ABI, Go wrapper, PyO3/maturin Python bindings,
> and the `ordvec-manifest` sidecar verifier. It is reviewed when the
> attack surface changes (new persistence formats, new `unsafe` kernels, new
Expand Down
2 changes: 1 addition & 1 deletion fuzz/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion ordvec-ffi/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "ordvec-ffi"
version = "0.4.0"
version = "0.5.0"
edition = "2021"
rust-version = "1.89"
publish = false
Expand Down
2 changes: 1 addition & 1 deletion ordvec-manifest-python/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "ordvec-manifest-python"
version = "0.4.0"
version = "0.5.0"
edition = "2021"
rust-version = "1.89"
description = "Python bindings for ordvec-manifest index provenance verification"
Expand Down
2 changes: 1 addition & 1 deletion ordvec-manifest-python/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "maturin"

[project]
name = "ordvec-manifest"
version = "0.4.0"
version = "0.5.0"
description = "Python bindings for ordvec index manifest verification"
readme = "README.md"
requires-python = ">=3.10"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,4 +48,4 @@
"create_manifest",
]

__version__ = "0.4.0"
__version__ = "0.5.0"
4 changes: 2 additions & 2 deletions ordvec-manifest/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "ordvec-manifest"
version = "0.4.0"
version = "0.5.0"
edition = "2021"
rust-version = "1.89"
license = "MIT OR Apache-2.0"
Expand Down Expand Up @@ -28,7 +28,7 @@ required-features = ["cli"]
chrono = { version = "0.4.44", default-features = false, features = ["clock", "std"] }
clap = { version = "4.6.1", features = ["derive"], optional = true }
hex = "0.4.3"
ordvec = { version = "0.4.0", path = ".." }
ordvec = { version = "0.5.0", path = ".." }
rusqlite = { version = "0.40.0", optional = true }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
Expand Down
2 changes: 1 addition & 1 deletion ordvec-python/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "ordvec-python"
version = "0.4.0"
version = "0.5.0"
edition = "2021"
rust-version = "1.89" # inherits ordvec's AVX-512 MSRV floor
description = "Python bindings for ordvec — training-free ordinal & sign vector quantization"
Expand Down
2 changes: 1 addition & 1 deletion ordvec-python/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "maturin"

[project]
name = "ordvec"
version = "0.4.0"
version = "0.5.0"
description = "Training-free ordinal & sign quantization for compressed vector retrieval"
readme = "README.md"
requires-python = ">=3.10"
Expand Down
2 changes: 1 addition & 1 deletion ordvec-python/python/ordvec/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -105,4 +105,4 @@
"SignBitmapIndex",
]

__version__ = "0.4.0"
__version__ = "0.5.0"
2 changes: 2 additions & 0 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -63,9 +63,11 @@ pub mod sign_bitmap;
mod util;

pub use bitmap::Bitmap;
pub use quant::SubsetScratch;
pub use quant::{rankquant_eval_search, RankQuant, TwoStageCandidatePolicy};
pub use rank::Rank;
pub use rank_io::{probe_index_metadata, IndexKind, IndexMetadata, IndexParams};
pub use sign_bitmap::CandidateBatch;
pub use sign_bitmap::SignBitmap;

// `search_asymmetric_byte_lut` is a bench-only scoring reference: it
Expand Down
Loading
Loading