Fuse.js is a lightweight, zero-dependency fuzzy-search library in JavaScript and TypeScript, designed to run in the browser and on the server. It helps developers search small-to-medium datasets client-side, with features like typo-tolerant matching (Bitap), relevance ranking, and optional token search, web workers, and extended or logical query syntax.
Project status
- Actively maintained: The repo shows recent upstream activity, with the last upstream push on 2026-08-09, and multiple recent version updates in 7.4 and 7.5, plus a 7.6.0-beta prerelease published 2026-08-09.
- Update cadence: Updates appear roughly every few weeks to about a month (for example, 7.5.0 on 2026-07-13, 7.4.2 on 2026-06-05, 7.4.1 on 2026-06-02, and 7.4.0-beta.8 on 2026-05-25), with a short runway from beta to stable (7.4.0 betas in late May, stable on 2026-05-30).
AI summary generated
Recent updates
v7.6.0-beta.0
This prerelease (v7.6.0-beta.0) introduces MongoDB-style object query syntax to Fuse, mapping structured operators like $startsWith, $eq, and $contains into the same underlying matchers as the legacy magic-character string syntax. It adds $not, plus field-local $and/$or composition, and wires the compiler so object queries work in both the main thread and FuseWorker. The release notes emphasize strict validation and parity of scoring and match indices with string queries.
Featuresv7.5.0
v7.5.0 ships a set of scoring and ranking fixes that can change both score values and result ordering for some queries, particularly around field normalization, key weight handling, Bitap matching constraints, and top-N selection under ties. The release notes state the public API is unchanged, but tests or applications that assert exact scores or rely on stable ordering should be re-baselined against 7.5.0.
Breakingv7.4.2
v7.4.2 is primarily a TypeScript types packaging fix for CommonJS consumers, adding `.d.cts` declarations to avoid TS1479 in `node16`/`nodenext` module resolution. However, the actual source and built worker code also show runtime behavior changes related to worker URL resolution and the exported `Fuse.version` value, which are not mentioned in the release notes.
v7.4.1
v7.4.1 focuses on TypeScript declaration fixes for Fuse.js Web Worker entry points. The release notes specifically address the worker subpath type resolution problem and add missing typings for `fuse.js/worker` and `fuse.js/worker-script`.
v7.4.0
v7.4.0 is marked as the first stable release on the 7.4 line, and the notes say it aggregates changes from the 7.4.0-beta.1 through 7.4.0-beta.8 cycle. The provided code diff for beta.8 to v7.4.0 shows primarily version branding and changelog entry updates in the built artifacts, with no visible functional logic changes.
BreakingFeaturesv7.4.0-beta.8
v7.4.0-beta.8 ships a bug fix focused on the shape of match metadata returned by Fuse. The main change ensures array-path keys (example: `['author', 'firstName']`) report `result.matches[].key` as a canonical dotted string.
v7.4.0-beta.7
This release adds `tokenMatch: 'all' | 'any'` to the token-search mode, enabling record-level AND filtering for multi-word queries when `useTokenSearch` is enabled. It also updates documentation (including the demo playground data behavior) and bumps published bundle sizes due to the new option and logic. The core search loop was modified to enforce the AND constraint before heap insertion (so limiting yields consistent top-N results).
Featuresv7.4.0-beta.6
v7.4.0-beta.6 contains a targeted bug fix to Fuse's bitap fuzzy search highlight behavior when `includeMatches: true` is enabled. The change restricts match highlighting to the actual bitap-matched window, improving correctness and reducing noisy cross-text bleed, with a small performance improvement in fuzzy search.
Breakingv7.4.0-beta.5
v7.4.0-beta.5 focuses on fixing incorrect doc-index alignment for Fuse<string> collections containing blank or whitespace-only strings, which could cause search result misalignment and incorrect mutation bookkeeping. It also changes internal mutation flows around blank strings and introduces a required docIndex parameter for direct callers of FuseIndex.add.
Breakingv7.4.0-beta.4
v7.4.0-beta.4 focuses on improving token-search performance by shrinking the inverted index memory footprint. The release notes describe removing unused posting data from the token-search index and switching to a stats-only internal representation.
v7.4.0-beta.3
v7.4.0-beta.3 hardens token search usage and fixes ordering behavior in the web worker build. It adds explicit runtime guards so invalid option combinations fail fast with clear errors, and it adjusts worker result merging to match single-thread Fuse ordering.
Breakingv7.4.0-beta.2
v7.4.0-beta.2 is a follow-up beta release focused on correctness fixes in field normalization and token-search/index maintenance, with an additional fix for FuseWorker sharded searches. The release notes emphasize re-testing if you use FuseWorker or token search, and the code diff shows multiple internal refactors that support these changes.
Featuresv7.4.0-beta.1
This beta release introduces FuseWorker, a parallelized search API that distributes Fuse.js searches across multiple Web Workers and merges results. The release notes only document the high-level API (search, add, setCollection, terminate) but do not cover several key behavioral and configuration details visible in the code.
Features