- Fuzzaldrin plus is an awesome library that provides fuzzy search that is more targeted towards filenames.
- Fuzzaldrin-plus-fast is a rewrite of the library in native c++ to make it fast. The goal is to make it a few hundred millisecond filter times for dataset with 1M entries. This performance is helpful in atom fuzzy finder to open files from large projects such as chrome/mozilla.
This project potentially solves the following Atom fuzzy-finder issues if used. atom/fuzzy-finder#271 atom/fuzzy-finder#88
Fuzzaldrin-plus-fast achieves 10x-20x performance improvement over Fuzzaldrin plus for chromium project with 300K files. This performance is achieved using the following techniques.
- Converting javascript/coffeescript code to native c++ bindings provides 4x performance benefit.
- Use multiple threads to parellize computation to achieve another 4x performance benefit. Currently upto 8 threads are used if there are more than 10K candidates to filter.
- Some miscellaneous improvements provide additioal benefit.
API is backward compatible with Fuzzaldrin and Fuzzaldrin-plus. Additional functions are provided to achieve better performance that could suit your needs.
- Bump up version in package.json.
- Create new release tag in github, for the bumped version. This should trigger builds in Travis CI, Appveyor and the following binaries will be uploaded to github.
- Install prebuildify-ci to download prebuilt binaries from github releases
npm install -g prebuildify-ci
- Download the prebuilt binaries from github and publish.
prebuildify-ci download
npm publish