https://github.com/mbrlabs/distance
A collection of approximate string matching algorithms for Rust
https://github.com/mbrlabs/distance
distance levenshtein rust
Last synced: 6 months ago
JSON representation
A collection of approximate string matching algorithms for Rust
- Host: GitHub
- URL: https://github.com/mbrlabs/distance
- Owner: mbrlabs
- License: apache-2.0
- Created: 2016-06-27T20:59:21.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2023-05-06T21:32:29.000Z (over 2 years ago)
- Last Synced: 2024-04-24T22:20:21.009Z (over 1 year ago)
- Topics: distance, levenshtein, rust
- Language: Rust
- Size: 591 KB
- Stars: 9
- Watchers: 3
- Forks: 2
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGES
Awesome Lists containing this project
README
# distance
[](https://travis-ci.org/mbrlabs/distance)
[](https://crates.io/crates/distance)
[](https://mbrlabs.github.io/distance)This is a rust library for approximate string matching algorithms.
Possible applications for this are fuzzy string searching, spell checkers, spam filters, etc.## Algorithms
All algorithms support UTF-8 encoded strings.- [Levenshtein distance (since v0.1)](https://en.wikipedia.org/wiki/Levenshtein_distance)
- [Hamming distance (since v0.2)](https://en.wikipedia.org/wiki/Hamming_distance)
- [Damerau Levenshtein distance (since v0.3)](https://en.wikipedia.org/wiki/Damerau%E2%80%93Levenshtein_distance)
- [Sift3 distance (since v0.4)](http://siderite.blogspot.com/2007/04/super-fast-and-accurate-string-distance.html)## Add as dependency
distance is available on [crates.io](https://crates.io/crates/distance).```toml
[dependencies]
distance = "0.4"
```## Usage
```rust
use distance::*;// Levenshtein distance
let distance = levenshtein("hannah", "hanna");
assert_eq!(1, distance);// Damerau Levenshtein distance
let distance = damerau_levenshtein("hannah", "hannha");
assert_eq!(1, distance);// Hamming distance
let distance = hamming("karolin", "kathrin").unwrap();
assert_eq!(3, distance);// Sift3 distance
let distance = sift3("hannah", "hanna");
assert_eq!(0.5, distance);
```