Releases: mensonones/expo-vector-search
v0.5.0: True Background Indexing & Async API
This release introduces a major architectural upgrade with True Background Indexing, moving heavy ingestion tasks off the JS thread to ensure silky-smooth 60fps UI performance even during massive data loads.
Major Features
- Async Background Indexing:
addBatchandloadVectorsFromFilenow run in dedicatedstd::threadworkers. - Non-Blocking API: Migration to an asynchronous Promise-based API for all heavy operations.
- Real-time Progress: New
indexingProgressandisIndexingproperties to track ingestion status.
Breaking Changes
addBatch()is now async and returns aPromise. Existing code must be updated toawaitthis call.loadVectorsFromFile()is now async and returns aPromise.
v0.4.1 — High Performance & Package Optimization
This patch release focuses on package weight optimization and critical fixes for hardware diagnostic reporting.
Package Optimization
- 20% Size Reduction: Removed redundant C++ source headers and unified the engine structure.
- Improved Footprint: Unpacked size reduced from 1.5MB to 1.2MB (tarball size from 252kB to 177kB), ensuring faster installation and lower overhead.
Fixes & Improvements
- ISA Diagnostic Fix: Resolved an issue where the
isaproperty incorrectly reported "unknown" in Int8 or F16 quantization modes. It now accurately reportsneon,avx, orsve.
v0.4.0 — Unified Engine & Hardware Acceleration (NEON/SIMD)
This version represents a major technical milestone for expo-vector-search, focusing on unifying native engines and enabling full hardware acceleration across ARM64 and x86 devices.
Performance & Hardware
- NEON Activation (iOS): Fixed Apple hardware detection (
FEAT_DotProd). Int8 indexing performance on iOS improved from 34s to 1.8s (~18x gain). - Unified C++ Engine: Synchronized USearch to v2.23.0 across both platforms (Android & iOS) using local headers, ensuring consistent results and deterministic builds.
- SimSIMD v6 Integration: Integrated specialized kernels for modern architectures, optimizing register usage for distance calculations.
- ISA Transparency: Added a new
index.isa(readonly) property that exposes the active instruction set (e.g.,NEON,AVX2,SVE) to JavaScript for precise diagnostics.
Stability & Safety
- Metric Proxy Bridge: Implemented a C++ proxy to handle the new SimSIMD v6 output pointer convention, eliminating the
EXC_BAD_ACCESScritical crash on iOS. - 64-bit Memory Alignment: Ensured 64-byte alignment for all vectors, optimizing SIMD data loading and preventing segmentation faults.
- Offline Build Configuration: Removed external dependencies (
FetchContent) from Android's CMake, enabling offline compilation and eliminating version drift.
New Documented Metrics
- Full hardware-accelerated support for L2 (Euclidean), Inner Product (IP), Hamming, and Jaccard/Tanimoto distances.
v0.3.0 - Dynamic Search & Advanced DX
This version transforms expo-vector-search into a dynamic vector search engine for React Native, introducing real-time index mutations and a superior developer experience.
FULL CRUD SUPPORT
Added native capabilities to manage your indexing on the fly without reloading the dataset.
Methods: remove(key) | update(key, vector)
SIMPLIFIED REACT HOOKS
The new useVectorSearch hook manages the entire lifecycle of your vector index.
Lifecycle: Automatically handles index creation and native memory release on unmount.
ADVANCED NATIVE QUERYING
Sub-millisecond filtering and specialized similarity metrics.
Filtering: Restrict searches to specific IDs using
allowedKeys.
Jaccard Metric: Highly optimized implementation for sparse vectors (perfect for skills, tags, or set matching).
MULTI-METRIC ENGINE
Native support for all major distance metrics:
- Cosine (cos)
- Euclidean (l2sq)
- Inner Product (ip)
- Hamming (binary)
- Jaccard (sets)
0.2.0 - Official iOS Support
Features
Official iOS Support
- Added full support for iOS. The vector search engine now runs natively on both Android and iOS devices.
New Methods
- loadVectorsFromFile: Allows loading vectors directly from a binary file for faster initialization.
- getItemVector: Allows retrieving a vector data back from the native index using its key.
Fixes
- NPM Compatibility: Fixed
package.jsonentry points (main/types) andtsconfig.jsonto ensure the package works correctly when installed from NPM. - Runtime Compatibility: Updated NativeModule access to use
globalThis, fixing issues with stricter JS environments.