RaBitQ Library 0.7.0¶
This release introduces modular C++ components, stable core API v1, optional OpenMP for numerical components, and unified index counts.
Upgrading from 0.6.0¶
C++ components and headers¶
Choose rabitqlib::core for per-vector quantization, estimation and rotation,
rabitqlib::fastscan for batch scoring, or rabitqlib::index for ANN and clustering.
The former rabitqlib::rabitqlib target and forwarding headers are removed.
Update includes and link targets using the migration guide.
Rebuild C++ consumers with matching headers and libraries; no cross-version
C++ binary ABI is promised.
Core and FastScan support RABITQ_USE_OPENMP=OFF. ANN and Python retain their
OpenMP requirement. Use a fresh installation prefix when changing components
so stale headers from an older installation cannot mask migration errors.
Stable core API v1¶
The new core API provides a source-stable float32 interface with caller-owned code buffers and workspace, separate factors, and no heap allocation on valid calls. API version 1.0 is independent of package version 0.7.0. Advanced templates and index APIs are not covered by this stability guarantee.
Index counts in C++ and Python¶
IVF-RaBitQ, HNSW-RaBitQ and SymphonyQG share max_elements, num_stored_points and num_points
for capacity, stored records and live points respectively. HNSW-RaBitQ's num_points
now excludes removed records. Use num_stored_points for ID bounds, append
offsets and minimum resize capacity. See the
count migration details.
Python continues to use import rabitqlib and the existing index class names.
Saved index formats are retained from 0.6.0; loading recovers counts from existing
removal markers. These changes do not require index-file conversion. Restrictions
for readers older than 0.6.0 still apply; see the 0.6.0 notes.