Skip to content
Closed
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
13 changes: 7 additions & 6 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,11 +38,12 @@ Run any examples you add or change, including examples inside Markdown.

## Setup for code changes

Source builds support x86-64 with AVX2/FMA (AVX-512 optional) and macOS ARM64
with NEON. They need CMake 3.20 or newer, a C++17 compiler, and OpenMP.
Windows x86-64 uses Visual Studio 2026; Linux AArch64 needs separate platform
validation. See the [platform-specific build instructions](tests/README.md#quick-start)
for Windows and [Apple Silicon](tests/README.md#macos-arm64).
Source builds support Linux and Windows x86-64 with AVX2/FMA (AVX-512
optional), and Linux and macOS ARM64 with NEON. They need CMake 3.20 or newer,
a C++17 compiler, and OpenMP. Windows x86-64 uses Visual Studio 2026. See the
[platform-specific build instructions](tests/README.md#quick-start) for
[Linux ARM64](tests/README.md#linux-arm64) and
[Apple Silicon](tests/README.md#macos-arm64).
Documentation-only contributions do not need this hardware or compiler setup.

On Ubuntu or Debian:
Expand Down Expand Up @@ -150,7 +151,7 @@ for details.
| Problem | What to check |
| --- | --- |
| CMake cannot find OpenMP or a compiler | Check the [platform-specific prerequisites](tests/README.md#prerequisites). On Apple Silicon, install `libomp` and pass its prefix as `OpenMP_ROOT`. Include the compiler version and CMake error when asking for help. |
| Unsupported CPU or architecture | Use x86-64 with AVX2/FMA or macOS ARM64 with NEON. Linux AArch64 still needs platform validation; disabling native tuning alone does not establish support. Report your CPU model in the issue or PR. |
| Unsupported CPU or architecture | Use Linux or Windows x86-64 with AVX2/FMA, or Linux or macOS ARM64 with NEON. Disabling native tuning does not add an unsupported architecture. Report your CPU model in the issue or PR. |
| Tests do not reflect your Python or C++ edits | Re-run the platform-specific install command above in the active environment, then check the import paths below. Re-run the regression test that exercises your change. |
| Formatting or analysis reports the wrong tool version | Use the pinned versions and executable overrides in the [development reference](DEVELOPMENT.md). |

Expand Down
34 changes: 13 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,26 +35,15 @@

## News

- **September 2026 — Linux ARM64 support:** Native AArch64 C++ tests and
CPython 3.11–3.14 wheel builds cover NEON kernels and all three indexes.
See the [platform requirements](docs/docs/quick_start.md#requirements).
- **September 2026 — Platform support:** CPython 3.11–3.14 wheels cover Linux
x86-64 and ARM64, Windows x86-64, and macOS 14+ ARM64. C++ source builds are
validated on these platforms. See the
[platform requirements](docs/docs/quick_start.md#requirements).

- **September 2026 — Apple Silicon support:** macOS ARM64 joins Linux and
Windows x86-64, with NEON kernels and CPython 3.11–3.14 wheel builds for
macOS 14+. See the [platform requirements](docs/docs/quick_start.md#requirements).

- **September 2026 — Windows x86-64 support:** C++ and Python source builds now
support MSVC, runtime AVX2/AVX-512 dispatch, and Unicode index paths. Windows
wheels are available for CPython 3.11–3.14. For source builds, see the
[Windows build instructions](tests/README.md#prerequisites).

- **September 2026 — IVF raw-vector reranking:** Use `nbits=32` for float32
reranking. Quantized IVF automatically selects HACC for 4–9-bit codes.
See the [IVF documentation](docs/docs/index/ivf.md).

- **September 2026 — Quantized SymphonyQG:** Set `quantization_bits=4` or `8`
for compact vector storage; raw vectors remain the default.
See the [SymphonyQG documentation](docs/docs/index/qg.md).
- **September 2026 — txtai integration:** [txtai](https://github.com/neuml/txtai)
now includes `rabitqlib` as an ANN backend with IVF and HNSW modes. See its
[RaBitQ configuration](https://github.com/neuml/txtai/blob/master/docs/embeddings/configuration/ann.md#rabitq)
and the [integration discussion](https://github.com/VectorDB-NTU/RaBitQ-Library/issues/110).

## Install

Expand All @@ -65,8 +54,8 @@ python -m pip install --upgrade rabitqlib
Wheels: CPython 3.11–3.14 on Linux x86-64 and ARM64, Windows x86-64, and
macOS 14+ ARM64 (Apple Silicon). x86-64 uses AVX2/FMA with optional AVX-512
acceleration; ARM64 uses NEON and portable scalar kernels. Linux ARM64 and
macOS wheels bundle OpenMP. Linux ARM64 wheels use a `manylinux_2_28` build
image; check each wheel's tags for its glibc compatibility. Intel Mac and
macOS wheels bundle OpenMP. The v0.3.10 Linux ARM64 wheels carry
`manylinux_2_27_aarch64` and `manylinux_2_28_aarch64` tags. Intel Mac and
universal2 wheels are not provided.

## Python quick start
Expand Down Expand Up @@ -175,6 +164,9 @@ search; this is not a list of direct dependencies on RaBitQ-Library.
traces its use of the library's quantizers and estimators inside zvec's IVF
and HNSW implementations, with links to the source code.

The [txtai RaBitQ backend](https://github.com/neuml/txtai/blob/master/docs/embeddings/configuration/ann.md#rabitq)
uses `rabitqlib` directly for IVF and HNSW search.

<table>
<tr>
<td align="center" width="20%">
Expand Down
4 changes: 4 additions & 0 deletions docs/docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,10 @@ University.

## Used across the vector-search ecosystem

[txtai](https://github.com/neuml/txtai) uses `rabitqlib` directly as an ANN
backend with IVF and HNSW modes. See its
[RaBitQ configuration](https://github.com/neuml/txtai/blob/master/docs/embeddings/configuration/ann.md#rabitq).

RaBitQ has been adopted by projects including
[Milvus](https://github.com/milvus-io/milvus),
[Faiss](https://github.com/facebookresearch/faiss),
Expand Down
4 changes: 2 additions & 2 deletions docs/docs/quick_start.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ workload and CMake 4.2+ for its generator). Apple Silicon uses AppleClang and
an external OpenMP runtime such as Homebrew `libomp`.

Linux ARM64 source builds and repaired wheels run on native AArch64 CI.
The Linux ARM64 wheels use a `manylinux_2_28` build image; auditwheel assigns
the final glibc compatibility tags. Intel Mac and universal2 wheels are not provided.
The v0.3.10 Linux ARM64 wheels carry `manylinux_2_27_aarch64` and
`manylinux_2_28_aarch64` tags. Intel Mac and universal2 wheels are not provided.

<details>
<summary>CPU dispatch details</summary>
Expand Down
Loading