e 01bbba5f61 ts 10 hónapja
..
esm 01bbba5f61 ts 10 hónapja
.eslintrc.json 01bbba5f61 ts 10 hónapja
.prettierrc 01bbba5f61 ts 10 hónapja
.travis.yml 01bbba5f61 ts 10 hónapja
LICENSE.md 01bbba5f61 ts 10 hónapja
README.md 01bbba5f61 ts 10 hónapja
bench.js 01bbba5f61 ts 10 hónapja
mod.d.ts 01bbba5f61 ts 10 hónapja
mod.js 01bbba5f61 ts 10 hónapja
package.json 01bbba5f61 ts 10 hónapja
test.js 01bbba5f61 ts 10 hónapja
test.ts 01bbba5f61 ts 10 hónapja

README.md

fastest-levenshtein :rocket:

Fastest JS/TS implemenation of Levenshtein distance.
Measure the difference between two strings.

Build Status Coverage Status npm

$ npm i fastest-levenshtein

Usage

Node

const {distance, closest} = require('fastest-levenshtein')

// Print levenshtein-distance between 'fast' and 'faster' 
console.log(distance('fast', 'faster'))
//=> 2

// Print string from array with lowest edit-distance to 'fast'
console.log(closest('fast', ['slow', 'faster', 'fastest']))
//=> 'faster'

Deno

import {distance, closest} from 'https://deno.land/x/fastest_levenshtein/mod.ts'

// Print levenshtein-distance between 'fast' and 'faster' 
console.log(distance('fast', 'faster'))
//=> 2

// Print string from array with lowest edit-distance to 'fast'
console.log(closest('fast', ['slow', 'faster', 'fastest']))
//=> 'faster'

Benchmark

I generated 500 pairs of strings with length N. I measured the ops/sec each library achieves to process all the given pairs. Higher is better.

Test Target N=4 N=8 N=16 N=32 N=64 N=128 N=256 N=512 N=1024
fastest-levenshtein 44423 23702 10764 4595 1049 291.5 86.64 22.24 5.473
js-levenshtein 21261 10030 2939 824 223 57.62 14.77 3.717 0.934
leven 19688 6884 1606 436 117 30.34 7.604 1.929 0.478
fast-levenshtein 18577 6112 1265 345 89.41 22.70 5.676 1.428 0.348
levenshtein-edit-distance 22968 7445 1493 409 109 28.07 7.095 1.789 0.445

Relative Performance

This image shows the relative performance between fastest-levenshtein and js-levenshtein (the 2nd fastest). fastest-levenshtein is always a lot faster. y-axis shows "times faster".

Benchmark

License

This project is licensed under the MIT License - see the LICENSE.md file for details