fuzzy_bolt
A high-performance fuzzy search algorithm in Dart, designed for intelligent auto-suggestions, typo tolerance, and fast string matching.
2.0.2
5.1K downloads/mo
#3810 most downloaded on pub.dev
Vishwa-Karthik/fuzzy_bolt
What this package is like to depend on
Last release 10 months ago
21 Oct 2025
Ships unpredictably
gaps range from 8 days to 5 months
Nearly every release is documented
notes for 14 of 14 stable releases
Nothing withdrawn
no release was ever pulled
1 years old
14 releases · first in 2025
3 releases in the last 12 months
see the full history below
Release timeline
14 releases · Mar 2025 to Oct 2025
2026
Releases
latest 14-
2.0.221 Oct 2025Release notes
Open source →🚀 Performance Optimizations
- Faster Default Mode: Lightweight operation without stemming/cleaning overhead
- Improved Concurrency: Better isolate error handling and fallback mechanisms
- Cache Efficiency: 1,000 item cache limit with overflow protection and utilization tracking
- Memory Protection: Hard limits prevent memory exhaustion while maintaining functionality
-
2.0.112 Oct 2025Release notes
Open source →Features
- Porter Stemming: Added stemming process to fetch clearer results
- Dataset Cleaning: Clean the dataset before for efficiency
-
2.0.023 Sep 2025Release notes
Open source →Features
- Generic Fuzzy Search API: Works with any model
Tusing configurable selectors - Dual Algorithm Ranking: Combines Jaro-Winkler and Levenshtein algorithms
- Adaptive Scoring: Intelligent ranking with prefix bonuses and multi-field optimization
- Parallel Processing: Automatic isolate usage for large datasets (>1000 items)
- Web Compatibility: Graceful fallback for web platforms
- Production Ready: Comprehensive test coverage and SOLID architecture
Core Components
FuzzyBolt.search<T>()- Returns matching items directlyFuzzyBolt.searchWithScores<T>()- Returns items with similarity scoresFuzzyBolt.searchWithConfig<T>()- Advanced configuration supportFuzzyResult<T>- Rich result model with item, score, and matched textFuzzySearchConfig- Configurable thresholds and options
Configuration
strictThreshold: Control exactness matching (default: 0.85)typeThreshold: Control typo tolerance (default: 0.65)isolateThreshold: Dataset size for parallel processing (default: 1000)skipIsolate: Force disable isolates for web compatibilitymaxResults: Limit number of returned results
- Generic Fuzzy Search API: Works with any model
-
1.1.930 Apr 2025Release notes
Open source →Added
- Enhanced
search,searchWithRanks,streamSearchandstreamSearchWithRanksAPIs to handle errors gracefully at theFuzzyBoltlevel.
Fixed
- Resolved potential hanging issues in
streamSearchwhen the dataset is empty or invalid queries are provided. - Improved error propagation and stream cleanup to prevent indefinite waiting in test cases.
Known Issues
- The
onErrorcallback instreamSearchmay behave inconsistently in certain edge cases. Use with caution and ensure proper testing for your specific use case.
- Enhanced
-
1.1.820 Apr 2025Release notes
Open source →Added
- Introduced
streamSearchWithRanksAPI for stream-based search with ranking support. - Introduced
searchWithRanksAPI to provide ranked results for normal searches.
Changed
- updated
searchandstreamSearchresults in [List<String>] instead of [Map] without ranks for easier check.
Fixed
- Resolved issue where incorrect mapping of results caused empty lists in
streamSearch.
- Introduced
-
1.1.720 Apr 2025 -
1.1.622 Mar 2025Release notes
Open source →Added
- Added web platform support.
- Updated README to help developers understand the necessity and use case of this application.
Changed
- Added web fallback mechanism to run without the use of Isolates.
-
1.1.517 Mar 2025Release notes
Open source →Changed
- Updated README for better documentation.
- Project-level indentation and formatter.
-
1.1.416 Mar 2025Release notes
Open source →Changed
- Dart SDK Version conflict resolved.
- Updated README for better understanding.
-
1.1.314 Mar 2025Release notes
Open source →Added
- Updated Documentation.
Changed
- Enhanced the search and ranking algorithm for better performance.
- Reduced Isolate fallback dependency from 1000 length to 500.
-
1.1.211 Mar 2025Release notes
Open source →Changed
- Enhanced stream-based fuzzy search for improved responsiveness.
- Optimized event handling to ensure seamless updates when queries change.
- Improved case-insensitive matching for better search accuracy.
Fixed
- Resolved issue where empty search results were not emitted correctly.
- Addressed inconsistencies in asynchronous search streaming.
- Fine-tuned ranking algorithm for better precision in result ordering.
Added
- Introduced unit tests for stream-based search to ensure reliability.
- Expanded debug logging to assist with troubleshooting and performance tuning.
- Added support for wildcard searches to broaden query flexibility.
-
1.0.210 Mar 2025Release notes
Open source →Changed
- Refactored project structure to align with SOLID principles.
- Implemented abstract class
FuzzyBoltwithsearch.
Fixed
- Optimized search ranking for improved fuzzy matching accuracy.
- Addressed minor inconsistencies in Jaro-Winkler and Levenshtein handling.
-
1.0.108 Mar 2025Release notes
Open source →Fixed
- Updated SDK constraints to support Dart
>=2.17.0 <3.7.1. - Excluded Web platform support due to
IsolateAPI restrictions. - Resolved
dart analyzewarnings and improved code quality.
Added
- Comprehensive documentation and inline comments.
- Explicit
platformsdeclaration inpubspec.yaml.
- Updated SDK constraints to support Dart
-
1.0.007 Mar 2025Release notes
Open source →Initial Release
- Implemented Fuzzy String Matching using Jaro-Winkler and Damerau-Levenshtein algorithms.
- Added fuzzy search support with adjustable
strictThresholdandtypoThreshold. - Optimized performance using Isolates for parallel computation.
- Provided usage examples and test cases.