leeoniya/uFuzzy

A tiny, efficient fuzzy search that doesn't suck

View on GitHub ↗Jump to charts ↓Open shareable report →

Data as of . Signed-in members get hourly updates — create a free account.

Summary Information

Updated 18 minutes ago
Added to GitGenius on September 22nd, 2026
Created on September 16th, 2022
Open Issues & Pull Requests: 15 (+0)
GitHub issues: Enabled
Number of forks: 58
Total Stargazers: 3,033 (+0)
Total Subscribers: 10 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 7.5 hours
Mean response time: 3.2 days
90th percentile: 14.2 days
Tracked items: 12

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 8
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 506 days
Stale 30+ days: 8
Stale 90+ days: 8

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • question (4)
  • enhancement (1)

Most active issues this week

Sign in to see which issues are moving.
Sign in

Detailed Description

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.