This project attempts to adhere to Semantic Versioning.
0.11.1 - (2024-04-03)
- Drop MSRV down to 1.56 which was mistakenly changed in 0.11.0
0.11.0 - (2024-01-07)
-
improve OSA implementation
- reduce runtime
- reduce binary size by more than
25%
-
reduce binary size of Levenshtein distance
-
improve Damerau-Levenshtein implementation
- reduce memory usage from
O(N*M)
toO(N+M)
- reduce runtime in our own benchmark by more than
70%
- reduce binary size by more than
25%
- reduce memory usage from
-
only boost similarity in Jaro-Winkler once the Jaro similarity exceeds 0.7
- Fix transposition counting in Jaro and Jaro-Winkler.
- Limit common prefix in Jaro-Winkler to 4 characters
0.10.0 - (2020-01-31)
- Sørensen-Dice implementation (thanks @robjtede)
0.9.3 - (2019-12-12)
- Fix Jaro and Jaro-Winkler when the arguments have lengths of 1 and are equal. Previously, the functions would erroneously return 0 instead of 1. Thanks to @vvrably for pointing out the issue.
0.9.2 - (2019-05-09)
- Revert back to the standard library hashmap because it will use hashbrown very soon
- Remove ndarray in favor of using a single vector to represent the 2d grid in Damerau-Levenshtein
0.9.1 - (2019-04-08)
- Faster Damerau-Levenshtein implementation (thanks @lovasoa)
0.9.0 - (2019-04-06)
- Generic distance functions (thanks @lovasoa)
0.8.0 - (2018-08-19)
- Normalized versions of Levenshtein and Damerau-Levenshtein (thanks @gentoid)
0.7.0 - (2018-01-17)
- Faster Levenshtein implementation (thanks @wdv4758h)
- Remove the "against_vec" functions. They are one-liners now, so they don't seem to add enough value to justify making the API larger. I didn't find anybody using them when I skimmed through a GitHub search. If you do use them, you can change the calls to something like:
let distances = strings.iter().map(|a| jaro(target, a)).collect();
0.6.0 - (2016-12-26)
- Add optimal string alignment distance
- Fix Damerau-Levenshtein implementation (previous implementation was actually optimal string alignment; see this Damerau-Levenshtein explanation)
0.5.2 - (2016-11-21)
- Remove Cargo generated documentation in favor of a docs.rs link
0.5.1 - (2016-08-23)
- Add Cargo generated documentation
- Fix panic when Jaro or Jaro-Winkler are given strings both with a length of one
0.5.0 - (2016-08-11)
- Make Hamming faster (thanks @IBUzPE9) when the two strings have the same length but slower when they have different lengths
0.4.1 - (2016-04-18)
- Add Vagrant setup for development
- Add AppVeyor configuration for Windows CI
- Fix metrics when given strings with multibyte characters (thanks @WanzenBug)
0.4.0 - (2015-06-10)
- For each metric, add a function that takes a vector of strings and returns a vector of results (thanks @ovarene)
0.3.0 - (2015-04-30)
- Remove usage of unstable Rust features
0.2.5 - (2015-04-24)
- Remove unnecessary
Float
import from doc tests
0.2.4 - (2015-04-15)
- Remove unused
core
feature flag
0.2.3 - (2015-04-01)
- Remove now unnecessary
Float
import
0.2.2 - (2015-03-29)
- Remove usage of
char_at
(marked as unstable)
0.2.1 - (2015-02-20)
- Update bit vector import to match Rust update
0.2.0 - (2015-02-19)
- Implement Damerau-Levenshtein
- Add tests in docs
0.1.1 - (2015-02-10)
- Configure Travis for CI
- Add rustdoc comments
- Limit Jaro-Winkler return value to a maximum of 1.0
- Fix float comparisons in tests
0.1.0 - (2015-02-09)
- Implement Hamming, Jaro, Jaro-Winkler, and Levenshtein