Skip to content

Releases: krisk/Fuse

v7.4.0-beta.1

04 Apr 19:20

Choose a tag to compare

v7.4.0-beta.1 Pre-release
Pre-release

Features

  • FuseWorker — parallel search via Web Workers (9ba192c)

Distributes search across multiple Web Workers for near-linear speedup on large datasets. Benchmarked at ~5x faster with 8 workers on 100K documents, with zero UI jank.

import { FuseWorker } from 'fuse.js/worker'

const fuse = new FuseWorker(docs, options)
const results = await fuse.search('query')
fuse.terminate()

API: search, add, setCollection, terminate.

This is a beta release — the API may change based on feedback. Please open an issue if you have thoughts on the API surface.

Web Workers documentation

v7.3.0

04 Apr 17:00

Choose a tag to compare

Features

  • Token search — per-term fuzzy matching with IDF scoring (68c1dcf)
  • Fuse.match() — static method for single string matching (460eb5b)
  • BigInt support for indexing and search (0ae662c)
  • removeAt() now returns the removed item (8cec7e2)
  • Support keyless string entries in logical queries (8695556)
  • getFn null return, escaped pipe in extended search, empty query returns all (d33b735)

Bug Fixes

  • Merge overlapping match indices in extended search (06c5e97)
  • Inverse patterns now work correctly across multiple keys (9351882)
  • Handle quoted tokens with inner spaces and quotes in extended search (c226523)
  • Handle non-decomposable diacritics in stripDiacritics (5a01f29)
  • Coerce non-string array values to strings during indexing (db0e181)
  • Strip getFn from keys in toJSON() for safe serialization (0f2a69b)

Internal

  • Full TypeScript rewrite of source code
  • Dropped UMD builds and babel preset-env
  • Upgraded to Rollup 4, Vitest 2, TypeScript 6, ESLint 9
  • Frozen default config to prevent mutation across instances
  • Rewrote documentation as standalone markdown files

v7.2.0

02 Apr 21:16

Choose a tag to compare

Features

  • Add Fuse.use() for runtime plugin registration

Performance

  • Inline Bitap score computation to reduce object allocation in hot loops
  • Batch removeAll for O(n) bulk removes instead of O(n*k)
  • Heap-based top-k selection when limit is set
  • Cache compiled searcher for repeated queries

Benchmarked on 10k records: 9-14% faster core search, 49x faster bulk remove.

Bug Fixes

  • search: Deduplicate and merge overlapping match indices (#735)
  • search: Preserve original array indices in nested path traversal (#786)
  • types: Correct key type in FuseSortFunctionMatch (#811)
  • types: Correct keys type in parseIndex parameter (#794)

Full Changelog: v7.1.0...v7.2.0

v7.1.0

03 Feb 00:55

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v7.0.0...v7.1.0

v7.0.0

19 Feb 02:12

Choose a tag to compare

⚠ BREAKING CHANGES

  • Extension changed

Features

  • finish all but state handling of live demo (9b5421a)
  • implementing reacting to option changes (46c561c)
  • improve fuse keys (c47f3d4)
  • proper ESM exports (eebcf2c)
  • properly configure monaco editors (fe0d33e)

Bug Fixes

  • add favicon on public root (bc155a3)
  • add proper ESM exports in package.json (98366b1)
  • build fixes (5969ca7)
  • double totalWeight (5c0ab46)
  • fixed browserconfig xml file (ca0cbbb)
  • fixed config, packages, and twitter social button (bd7555c)
  • fixed navbar (29b2599)
  • fixed version display and active search plugin (6e2a592)
  • imports (ec4e3bc)
  • re-implement sidebar advertisements (67a10cf)
  • support -> donate for clarity of what it is (ef99f56)
  • vite SSR build fixes (3ae8299)

v6.6.2

11 May 02:03

Choose a tag to compare

Bug Fixes

  • value fetched at the end must be a string (1de1dff), closes #661

v6.6.1

06 May 02:44

Choose a tag to compare

Bug Fixes

  • typescript: Change fieldNormWeight to be optional, fixes [#658]
  • typescript: type definition for FuseOptionKeyObject, fixes [#655] and [#656]

v6.6.0

03 May 02:13

Choose a tag to compare

Features

  • allow passing getFn for a specific key (1d445b9), closes #627

Bug Fixes

  • excessive splitting in parseQuery (2c78022)
  • type mismatch on toJSON (f5425ea)

v6.5.3

23 Dec 17:47

Choose a tag to compare

6.5.3 (2021-12-23)

Bug Fixes

  • logical: scoring for logical OR (6f6af51), closes #593

v6.5.2

23 Dec 06:12

Choose a tag to compare

6.5.2 (2021-12-23)

Purely created this version as minification failed in the prior one.