rff is a fast, simple fuzzy text selector for the terminal, with UTF-8 support. It uses a similar scoring algorithm to
It currently has a very similar feature set to
fzy, although this may change in the future.
At the moment, installation is best done through Cargo:
$ cargo install --git https://github.com/stewart/rff
If you have a Rust toolchain set up locally, you can also build from source with
cargo build --release.
For some examples of how these sorts of tools can be used, see
rff have a
--benchmark mode, with runs the matching/scoring loop 100 times without printing anything.
This helps to minimize impact of startup cost and I/O, and better demonstrate actual matching/scoring speed.
This benchmark was run on Arch Linux:
$ find ~/dev/linux -type f > files $ time fzy -e drivers --benchmark < files fzy -e drivers --benchmark 1.52s user 0.01s system 202% cpu 0.755 total $ time rff -s drivers --benchmark < files rff -s drivers --benchmark < files 4.99s user 0.07s system 356% cpu 1.421 total
Interestingly, the macOS implementation of
tolower(3) appears to be not nearly as well optimized, resulting in much slower scoring for
$ find ~/dev/linux -type f > files $ time fzy -e drivers --benchmark < files fzy -e drivers --benchmark < files 18.42s user 0.06s system 356% cpu 5.192 total $ time rff -s drivers --benchmark < files rff -s drivers --benchmark < files 8.93s user 0.08s system 349% cpu 2.578 total