Skip to content

Releases: mensonones/expo-vector-search

v0.5.0: True Background Indexing & Async API

01 Feb 21:06

Choose a tag to compare

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: addBatch and loadVectorsFromFile now run in dedicated std::thread workers.
  • Non-Blocking API: Migration to an asynchronous Promise-based API for all heavy operations.
  • Real-time Progress: New indexingProgress and isIndexing properties to track ingestion status.

Breaking Changes

  • addBatch() is now async and returns a Promise. Existing code must be updated to await this call.
  • loadVectorsFromFile() is now async and returns a Promise.

v0.4.1 — High Performance & Package Optimization

01 Feb 15:25

Choose a tag to compare

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 isa property incorrectly reported "unknown" in Int8 or F16 quantization modes. It now accurately reports neon, avx, or sve.

v0.4.0 — Unified Engine & Hardware Acceleration (NEON/SIMD)

01 Feb 14:43

Choose a tag to compare

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_ACCESS critical 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

31 Jan 11:52

Choose a tag to compare

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

27 Jan 22:44

Choose a tag to compare

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.json entry points (main/types) and tsconfig.json to ensure the package works correctly when installed from NPM.
  • Runtime Compatibility: Updated NativeModule access to use globalThis, fixing issues with stricter JS environments.