uFuzzy is a fuzzy search library that matches short search phrases against large lists of strings with forgiving matching rules.
The library solves the problem of finding relevant results when users make typos or search with incomplete information. It works by requiring all alphanumeric characters from the search term to appear in the same sequence within candidate strings, with optional tolerance for single character errors via Damerau-Levenshtein distance. The tool supports out-of-order term matching, substring exclusions, and exact matching for terms containing non-alphanumeric characters. Rather than building an index upfront, it performs direct matching on demand, keeping startup time below one millisecond with minimal memory overhead.
Developers should choose this tool for list filtering, autocomplete, typeahead search, and filtering by titles, names, descriptions, filenames, or functions. It suits projects where you want predictable, high-quality results without tuning parameters or understanding opaque scoring algorithms. The library provides transparent sorting based on match statistics that developers can customize with standard array sorting, rather than relying on a black-box composite score. It is optimized for the Latin alphabet and supports other languages through configuration options or a slower universal Unicode variant. The tool is particularly lightweight at around seven and a half kilobytes minified with zero dependencies, making it suitable for performance-sensitive applications.
Development activity shows consistent refinement of core functionality with attention to edge cases and user-facing behavior. The project maintains a focused scope with a concise set of options that do not interact in unpredictable ways. Documentation includes interactive demos with a substantial test dataset of 162,000 phrases to demonstrate real-world performance characteristics. The maintainer has provided detailed comparisons to similar tools and documented specific design decisions around charset handling and matching modes.