fzy
Version, currently 0.6.014 versions
- 0.6.0latestNov 14, 2024
- 0.5.5not indexedNov 14, 2024
- 0.5.4not indexedNov 14, 2024
- 0.5.3not indexedNov 14, 2024
- 0.5.2not indexedNov 14, 2024
- 0.5.1not indexedNov 14, 2024
- 0.5.0not indexedNov 14, 2024
- 0.4.0not indexedNov 14, 2024
- 0.3.0not indexedNov 14, 2024
- 0.2.2not indexedNov 14, 2024
- 0.2.1not indexedNov 14, 2024
- 0.2.0not indexedNov 14, 2024
- 0.1.1not indexedNov 14, 2024
- 0.1.0not indexedNov 14, 2024
github.com/hugopl/fzy
String fuzzy matcher lib, port of Fyz algorithm.
49 stars
2 dependents
License: MIT
Installation
# Add this to your shard.yml
dependencies:
fzy:
github: hugopl/fzy
version: ~> 0.6.0Then run:
shards installshard.yml
- Crystal
>=0.36.1- License
- MIT
- Author
- Hugo Parente Lima <hugo.pl@gmail.com>
Dependencies
This version declares no dependencies.
README
# fzy.cr

A Crystal port of awesome [Fzy](https://github.com/jhawthorn/fzy) fuzzy finder algorithm.
## Installation
1. Add the dependency to your `shard.yml`:
```yaml
dependencies:
fzy:
github: hugopl/fzy
```
2. Run `shards install`
## Usage
Basic usage:
```crystal
require "fzy"
matches = Fzy.search("hey", %w(Hey Whatever Halley), store_positions: true)
matches.each do |match|
puts "value: #{match.item}"
puts "score: #{match.score}"
puts " pos: #{match.positions.inspect}"
end
```
Should print
```
value: Hey
score: Infinity
pos: [0, 1, 2]
value: Halley
score: 1.87
pos: [0, 4, 5]
```
If you need to do many searches on the same set of data you can speed up things by
creating an `Fzy::PreparedHaystack` or an array of `Fzy::Hay`.
```crystal
require "fzy"
haystack = %w(Hey Halley Whatever)
prepared_haystack = Fzy::PreparedHaystack.new(haystack)
matches = Fzy.search("hey", prepared_haystack)
matches.each do |match|
puts "value: #{match.item}"
puts "score: #{match.score}"
puts " pos: #{match.positions.inspect}"
end
# Reusing the prepared haystack makes the search faster.
matches = Fzy.search("ho let's go!", prepared_haystack)
```
## Contributing
1. Fork it (<https://github.com/hugopl/fzy/fork>)
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create a new Pull Request
## Contributors
- [Hugo Parente Lima](https://github.com/hugopl) - creator and maintainer
Documentation
Built from the current release. The first visit to a release nobody has asked for starts its build.
Links
This release
- Version
0.6.0- Tagged
- Nov 14, 2024
- Commit
1e8afa8da197- Crystal
>=0.36.1- Indexed
- yes
Dependents
Repository
github.com/hugopl/fzy
Metadata
- Created
- Aug 12, 2026
- Updated
- Aug 12, 2026
- Synced
- Aug 12, 2026
- Versions
- 14