What
vecq-core 0.3.0 is live on crates.io. Root Cargo.toml line 75 still pins vecq-core = "0.2.0".
What 0.3.0 brings
Keyed API (u64-key insert/replace/tombstone/relabel), Matryoshka working_dim, cascade search (2-bit prefilter + 4-bit rescore), residual mode, configurable width (set_bits(4|5|6)), zero-copy VecqView (mmap serving, ~64 µs vs ~4.9 ms at 12k vectors), x86_64 AVX2 path.
https://github.com/codecoradev/vecq/releases/tag/v0.3.0
⚠️ Behavior change to review when bumping
VecqIndex::new now defaults to 5-bit width (was 4-bit). Storage ~+19%/vector, recall up (4.78x compression, recall@10 0.979 on real 768-dim data). Call set_bits(4) where the old profile is required.
- File formats v1.2–v1.5: new 0.3.0-written files are NOT readable by 0.1/0.2 readers; 0.3.0 reads all old files (v1–v1.5).
Why
Pick up the mmap view (serving without RAM load), keyed ops, and the 5-bit recall profile; stay on a current dependency.
Acceptance
What
vecq-core 0.3.0is live on crates.io. RootCargo.tomlline 75 still pinsvecq-core = "0.2.0".What 0.3.0 brings
Keyed API (u64-key insert/replace/tombstone/relabel), Matryoshka
working_dim, cascade search (2-bit prefilter + 4-bit rescore), residual mode, configurable width (set_bits(4|5|6)), zero-copyVecqView(mmap serving, ~64 µs vs ~4.9 ms at 12k vectors), x86_64 AVX2 path.https://github.com/codecoradev/vecq/releases/tag/v0.3.0
VecqIndex::newnow defaults to 5-bit width (was 4-bit). Storage ~+19%/vector, recall up (4.78x compression, recall@10 0.979 on real 768-dim data). Callset_bits(4)where the old profile is required.Why
Pick up the mmap view (serving without RAM load), keyed ops, and the 5-bit recall profile; stay on a current dependency.
Acceptance
vecq-coreto0.3in rootCargo.toml,cargo update -wset_bits(4)explicitly