Releases: krisk/Fuse
Releases · krisk/Fuse
v7.4.0-beta.1
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.
v7.3.0
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)
getFnnull 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
getFnfrom keys intoJSON()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
Features
- Add
Fuse.use()for runtime plugin registration
Performance
- Inline Bitap score computation to reduce object allocation in hot loops
- Batch
removeAllfor O(n) bulk removes instead of O(n*k) - Heap-based top-k selection when
limitis 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
keytype inFuseSortFunctionMatch(#811) - types: Correct
keystype inparseIndexparameter (#794)
Full Changelog: v7.1.0...v7.2.0
v7.1.0
What's Changed
- feat: add option to ignore diacritics by @piitaya in #773
- Clarify input to Fuse.parseIndex by @dbaynard in #782
- Update CHANGELOG.md, fix typos by @NicholasWilsonDEV in #783
New Contributors
- @NicholasWilsonDEV made their first contribution in #783
- @dbaynard made their first contribution in #782
- @piitaya made their first contribution in #773
Full Changelog: v7.0.0...v7.1.0
v7.0.0
⚠ 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)