# README #
[](https://docs.rs/generic_levenshtein/)
A generic and fast implementation of the [Levenshtein
distance](http://en.wikipedia.org/wiki/Levenshtein_distance).
## Generic ##
This crate can work on slices of any kind. It can therefore:
- Compute a distance in characters between two strings:
```rust
assert_eq!(distance ("abc", "aaxcc"), 3);
```
- Compute a distance in words between two strings:
```rust
assert_eq!(
distance (
"The quick brown fox".split (' ').collect::<Vec<_>>(),
"The very quick brown cat".split (' ').collect()),
2);
```
- Or even compute a distance between two sequences of anything:
```rust
assert_eq!(distance (vec![1, 2, 3], vec![0, 1, 3, 3, 4]), 3);
```
### Fast ###
At the time of writing, this crate is among the fastest on crates.io
when working with text:
| generic_levenshtein | **2** | 3_316 | 3_842 |
| [levenshtein](https://crates.io/crates/levenshtein) v1.0.4 | **2** | 3_461 | 3_960 |
| [strsim](https://crates.io/crates/strsim) v0.11.1 | 2_450 | 2_279 | 2_928 |
| [distance](https://crates.io/crates/distance) v0.4.0 | 5_688 | 5_691 | 5_831 |
| [eddie](https://crates.io/crates/eddie) v0.4.2 | 61 | **1_650** | **2_531** |
| [txtdist](https://crates.io/crates/txtdist) v0.2.1 | 4_263 | 4_240 | 4_963 |
| [fuzzy-search](https://crates.io/crates/fuzzy-search) v0.1.1 | 5_879 | 5_761 | 6_532 |
All times in `ns` on an `AMD Ryzen 7 9700X @ 3.8GHz`.