Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Compatibility matrix

macOS arm64Linux x86_64Linux arm64Windows
PHP 8.3
PHP 8.4
PHP 8.5

Release binaries are NTS. ZTS is enabled in composer.json and the code is thread-safe by design (search is immutable-shared; objects are request-local), but no ZTS runner exercises it in CI yet.

CPU

CPU-only by design — no GPU path exists upstream.

  • x86_64: binaries target the x86-64-v3 baseline (Haswell 2013+ — AVX2/FMA) for general code; the AVX-512BW kernel engages automatically at runtime where available, and pre-AVX2 CPUs fall back to a scalar path with identical results.
  • arm64: NEON kernels, no special requirements (Apple Silicon and Graviton-class cores both qualify).
  • Big-endian platforms are unsupported (the packed-vector ABI is little-endian; the extension refuses to compile there).

Runtime dependencies

PlatformNeeds
Linuxlibopenblas0 (libopenblas-dev to build from source)
macOSnothing — Accelerate ships with the OS

Upstream pin

ext-turbovecturbovec crateindex format
0.1.x=0.9.0v3 (reads v2; refuses v1 with a rebuild hint)

The pin is exact so a given extension version always speaks one known on-disk format. Index files are portable across all supported platforms.

musl / Alpine

Not in the release matrix. Source builds should work (the repo carries the crt-static opt-out musl cdylibs need; install openblas-dev), but they’re not CI-verified.