NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #42 most downloaded on crates.io
Implementations of string similarity metrics. Includes Hamming, Levenshtein, OSA, Damerau-Levenshtein, Jaro, Jaro-Winkler, and Sørensen-Dice.
Last release 3 years ago
no release in 18 months
Ships unpredictably
gaps range from 2 weeks to 3.9 years
Nearly every release is documented
notes for 24 of 24 stable releases
1 version withdrawn
withdrawn after publishing
12 years old
25 releases · first in 2015
Drop MSRV down to 1.56 which was mistakenly changed in 0.11.0
reduce binary size by more than 25%
improve OSA implementation
25%reduce binary size of Levenshtein distance
improve Damerau-Levenshtein implementation
O(N*M) to O(N+M)70%25%only boost similarity in Jaro-Winkler once the Jaro similarity exceeds 0.7
One column per quarter.
reduce binary size by more than 25%
improve OSA implementation
25%reduce binary size of Levenshtein distance
improve Damerau-Levenshtein implementation
O(N*M) to O(N+M)70%25%only boost similarity in Jaro-Winkler once the Jaro similarity exceeds 0.7
Sørensen-Dice implementation (thanks @robjtede)
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. Thank
Revert back to the standard library hashmap because it will use hashbrown very soon
Faster Damerau-Levenshtein implementation (thanks @lovasoa)
Generic distance functions (thanks @lovasoa)
Normalized versions of Levenshtein and Damerau-Levenshtein (thanks @gentoid)
Faster Levenshtein implementation (thanks @wdv4758h)
let distances = strings.iter().map(|a| jaro(target, a)).collect();
Add optimal string alignment distance
Remove Cargo generated documentation in favor of a [docs.rs] link
Add Cargo generated documentation
Make Hamming faster (thanks @IBUzPE9) when the two strings have the same length but slower when they have different lengths
Add Vagrant setup for development
For each metric, add a function that takes a vector of strings and returns a vector of results (thanks @ovarene)
Remove usage of unstable Rust features
Remove unnecessary Float import from doc tests
Float import from doc testsRemove unused core feature flag
core feature flagRemove now unnecessary Float import
Float importRemove usage of char_at (marked as unstable)
char_at (marked as unstable)Update bit vector import to match Rust update
### Added - Implement Damerau-Levenshtein - Add tests in docs
Limit Jaro-Winkler return value to a maximum of 1.0
Implement Hamming, Jaro, Jaro-Winkler, and Levenshtein
Your coding agent can read these notes before it upgrades. Set up the MCP server →