mirror of
https://github.com/solaeus/nucleo.git
synced 2024-12-22 01:47:49 +00:00
release version 0.2.1
This commit is contained in:
parent
323a6973ba
commit
9e413c76b9
@ -1,10 +1,15 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
## nucleo-matcher
|
# [0.2.1] - 2023-09-02
|
||||||
|
|
||||||
|
## Bugfixes
|
||||||
|
|
||||||
|
* ensure matcher runs on first call to `tick`
|
||||||
|
|
||||||
# [0.2.0] - 2023-09-01
|
# [0.2.0] - 2023-09-01
|
||||||
|
|
||||||
*initial public release*
|
*initial public release*
|
||||||
|
|
||||||
|
|
||||||
|
[0.2.1]: https://github.com/helix-editor/nucleo/releases/tag/nucleo-v0.2.1
|
||||||
[0.2.0]: https://github.com/helix-editor/nucleo/releases/tag/nucleo-v0.2.0
|
[0.2.0]: https://github.com/helix-editor/nucleo/releases/tag/nucleo-v0.2.0
|
||||||
|
2
Cargo.lock
generated
2
Cargo.lock
generated
@ -152,7 +152,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "nucleo"
|
name = "nucleo"
|
||||||
version = "0.2.0"
|
version = "0.2.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"nucleo-matcher",
|
"nucleo-matcher",
|
||||||
"parking_lot",
|
"parking_lot",
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
name = "nucleo"
|
name = "nucleo"
|
||||||
description = "plug and play high performance fuzzy matcher"
|
description = "plug and play high performance fuzzy matcher"
|
||||||
authors = ["Pascal Kuthe <pascal.kuthe@semimod.de>"]
|
authors = ["Pascal Kuthe <pascal.kuthe@semimod.de>"]
|
||||||
version = "0.2.0"
|
version = "0.2.1"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
license = "MPL-2.0"
|
license = "MPL-2.0"
|
||||||
repository = "https://github.com/helix-editor/nucleo"
|
repository = "https://github.com/helix-editor/nucleo"
|
||||||
|
@ -3,6 +3,8 @@
|
|||||||
|
|
||||||
`nucleo` is a highly performant fuzzy matcher written in rust. It aims to fill the same use case as `fzf` and `skim`. Compared to `fzf` `nucleo` has a significantly faster matching algorithm. This mainly makes a difference when matching patterns with low selectivity on many items. An (unscientific) comparison is shown in the benchmark section below.
|
`nucleo` is a highly performant fuzzy matcher written in rust. It aims to fill the same use case as `fzf` and `skim`. Compared to `fzf` `nucleo` has a significantly faster matching algorithm. This mainly makes a difference when matching patterns with low selectivity on many items. An (unscientific) comparison is shown in the benchmark section below.
|
||||||
|
|
||||||
|
> Note: If you are looking for a replacement of the `fuzzy-matcher` crate and not a fully managed fuzzy picker, you should use the [`nulceo-matcher`](https://crates.io/crates/nucleo-matcher) crate.
|
||||||
|
|
||||||
`nucleo` uses the exact **same scoring system as fzf**. That means you should get the same ranking quality (or better) as you are used to from fzf. However, `nucleo` has a more faithful implementation of the Smith-Waterman algorithm which is normally used in DNA sequence alignment (see https://www.cs.cmu.edu/~ckingsf/bioinfo-lectures/gaps.pdf) with two separate matrices (instead of one like fzf). This means that `nucleo` finds the optimal match more often. For example if you match `foo` in `xf foo` `nucleo` will match `x__foo` but `fzf` will match `xf_oo` (you can increase the word length the result will stay the same). The former is the more intuitive match and has a higher score according to the ranking system that both `nucleo` and fzf.
|
`nucleo` uses the exact **same scoring system as fzf**. That means you should get the same ranking quality (or better) as you are used to from fzf. However, `nucleo` has a more faithful implementation of the Smith-Waterman algorithm which is normally used in DNA sequence alignment (see https://www.cs.cmu.edu/~ckingsf/bioinfo-lectures/gaps.pdf) with two separate matrices (instead of one like fzf). This means that `nucleo` finds the optimal match more often. For example if you match `foo` in `xf foo` `nucleo` will match `x__foo` but `fzf` will match `xf_oo` (you can increase the word length the result will stay the same). The former is the more intuitive match and has a higher score according to the ranking system that both `nucleo` and fzf.
|
||||||
|
|
||||||
**Compared to `skim`** (and the `fuzzy-matcher` crate) `nucleo` has an even larger performance advantage and is often around **six times faster** (see benchmarks below). Furthermore, the bonus system used by nucleo and fzf is (in my opinion) more consistent/superior. `nucleo` also handles non-ascii text much better. (`skim`s bonus system and even case insensitivity only work for ASCII).
|
**Compared to `skim`** (and the `fuzzy-matcher` crate) `nucleo` has an even larger performance advantage and is often around **six times faster** (see benchmarks below). Furthermore, the bonus system used by nucleo and fzf is (in my opinion) more consistent/superior. `nucleo` also handles non-ascii text much better. (`skim`s bonus system and even case insensitivity only work for ASCII).
|
||||||
|
Loading…
Reference in New Issue
Block a user