Skip to content

Latest commit

 

History

History
233 lines (143 loc) · 6.01 KB

CHANGELOG.md

File metadata and controls

233 lines (143 loc) · 6.01 KB

Change Log

This project attempts to adhere to Semantic Versioning.

0.11.1 - (2024-04-03)

Fixed

  • Drop MSRV down to 1.56 which was mistakenly changed in 0.11.0

0.11.0 - (2024-01-07)

Changed

  • 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) to O(N+M)
    • reduce runtime in our own benchmark by more than 70%
    • reduce binary size by more than 25%
  • only boost similarity in Jaro-Winkler once the Jaro similarity exceeds 0.7

Fixed

  • Fix transposition counting in Jaro and Jaro-Winkler.
  • Limit common prefix in Jaro-Winkler to 4 characters

0.10.0 - (2020-01-31)

Added

  • Sørensen-Dice implementation (thanks @robjtede)

0.9.3 - (2019-12-12)

Fixed

  • 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)

Changed

  • 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)

Changed

  • Faster Damerau-Levenshtein implementation (thanks @lovasoa)

0.9.0 - (2019-04-06)

Added

  • Generic distance functions (thanks @lovasoa)

0.8.0 - (2018-08-19)

Added

  • Normalized versions of Levenshtein and Damerau-Levenshtein (thanks @gentoid)

0.7.0 - (2018-01-17)

Changed

  • Faster Levenshtein implementation (thanks @wdv4758h)

Removed

  • 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)

Added

  • Add optimal string alignment distance

Fixed

0.5.2 - (2016-11-21)

Changed

  • Remove Cargo generated documentation in favor of a docs.rs link

0.5.1 - (2016-08-23)

Added

  • Add Cargo generated documentation

Fixed

  • Fix panic when Jaro or Jaro-Winkler are given strings both with a length of one

0.5.0 - (2016-08-11)

Changed

  • 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)

Added

  • Add Vagrant setup for development
  • Add AppVeyor configuration for Windows CI

Fixed

  • Fix metrics when given strings with multibyte characters (thanks @WanzenBug)

0.4.0 - (2015-06-10)

Added

  • 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)

Changed

  • Remove usage of unstable Rust features

0.2.5 - (2015-04-24)

Fixed

  • Remove unnecessary Float import from doc tests

0.2.4 - (2015-04-15)

Fixed

  • Remove unused core feature flag

0.2.3 - (2015-04-01)

Fixed

  • Remove now unnecessary Float import

0.2.2 - (2015-03-29)

Fixed

  • Remove usage of char_at (marked as unstable)

0.2.1 - (2015-02-20)

Fixed

  • Update bit vector import to match Rust update

0.2.0 - (2015-02-19)

Added

  • Implement Damerau-Levenshtein
  • Add tests in docs

0.1.1 - (2015-02-10)

Added

  • Configure Travis for CI
  • Add rustdoc comments

Fixed

  • Limit Jaro-Winkler return value to a maximum of 1.0
  • Fix float comparisons in tests

0.1.0 - (2015-02-09)

Added

  • Implement Hamming, Jaro, Jaro-Winkler, and Levenshtein