Analysis updated 2026-06-21
Add search to a documentation site or blog so readers find articles even when they misspell words.
Build a searchable product catalog or contact list that works entirely in the user's browser without a server.
Create a typo-tolerant autocomplete input over a list of up to 100,000 documents using Web Workers.
Filter a list of items with AND/OR logic and highlight exactly which characters matched the query.
| krisk/fuse | knex/knex | verekia/js-stack-from-scratch | |
|---|---|---|---|
| Stars | 20,245 | 20,275 | 20,195 |
| Language | JavaScript | JavaScript | JavaScript |
| Setup difficulty | easy | easy | moderate |
| Complexity | 2/5 | 2/5 | 3/5 |
| Audience | developer | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
Fuse.js is a lightweight JavaScript library that lets you add search to your app without needing a backend server or database. It specializes in "fuzzy" search, meaning it finds results even when the user types something slightly wrong, like "javscript" instead of "JavaScript." It works both in the browser and on the server, and is meant for searching small-to-medium collections of data entirely on the client's machine. The library uses an algorithm called Bitap for approximate string matching, which means it can handle typos and partial matches. You set it up by passing your data (like a list of books or articles) and telling it which fields to search (like title or author). Results come back ranked by relevance. You can also weight fields differently, for example, a match in the title might count more than a match in the description. More advanced features include exact-match operators, multi-word token search with typo tolerance per word, combining conditions with AND/OR logic, and character-level match highlighting so you can visually mark which parts of a result matched the query. A newer beta feature called FuseWorker runs searches in parallel across Web Workers, background threads that keep the browser's main interface responsive, for large datasets of around 100,000 documents. You would use Fuse.js when building a website or app where you want users to search through a list of items, product catalogs, documentation, blog posts, or any collection, without setting up a dedicated search service like Elasticsearch. It is written in TypeScript, has no external dependencies, and ships as a tiny file (around 8 kilobytes compressed). Installation is through npm or a CDN script tag.
A lightweight JavaScript library that adds fuzzy search to your app, it finds results even when users make typos, running entirely in the browser with no backend or server needed.
Mainly JavaScript. The stack also includes JavaScript, TypeScript.
Setup difficulty is rated easy, with roughly 5min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.