Sha256: b5c64db94e5f0f7776ea3825961333f7356b0793ec6902348f29c452da1c1009

Contents?: true

Size: 1.62 KB

Versions: 19

Compression:

Stored size: 1.62 KB

Contents

# js-levenshtein [![Build Status](https://travis-ci.org/gustf/js-levenshtein.svg?branch=master)](https://travis-ci.org/gustf/js-levenshtein)

A very efficient JS implementation calculating the Levenshtein distance, i.e. the difference between two strings.

Based on Wagner-Fischer dynamic programming algorithm, optimized for speed and memory
 - use a single distance vector instead of a matrix
 - loop unrolling on the outer loop
 - remove common prefixes/postfixes from the calculation
 - minimize the number of comparisons
 
## Install

```
$ npm install --save js-levenshtein
```


## Usage

```js
const levenshtein = require('js-levenshtein');

levenshtein('kitten', 'sitting');
//=> 3
```


## Benchmark

```
$ npm run bench
  
                      50 paragraphs, length max=500 min=240 avr=372.5
             162 op/s » js-levenshtein
              98 op/s » talisman
              94 op/s » levenshtein-edit-distance
              85 op/s » leven
              39 op/s » fast-levenshtein

                      100 sentences, length max=170 min=6 avr=57.5
           3,076 op/s » js-levenshtein
           2,024 op/s » talisman
           1,817 op/s » levenshtein-edit-distance
           1,633 op/s » leven
             800 op/s » fast-levenshtein

                      2000 words, length max=20 min=3 avr=9.5
           3,119 op/s » js-levenshtein
           2,416 op/s » talisman
           2,141 op/s » levenshtein-edit-distance
           1,855 op/s » leven
           1,260 op/s » fast-levenshtein
```

Benchmarks was performed with node v8.12.0 on a MacBook Pro 15", 2.9 GHz Intel Core i9

## License

MIT © Gustaf Andersson

Version data entries

19 entries across 19 versions & 5 rubygems

Version Path
disco_app-0.18.0 test/dummy/node_modules/js-levenshtein/README.md
disco_app-0.18.2 test/dummy/node_modules/js-levenshtein/README.md
condenser-0.2 lib/condenser/processors/node_modules/js-levenshtein/README.md
condenser-0.1 lib/condenser/processors/node_modules/js-levenshtein/README.md
condenser-0.0.12 lib/condenser/processors/node_modules/js-levenshtein/README.md
condenser-0.0.11 lib/condenser/processors/node_modules/js-levenshtein/README.md
condenser-0.0.10 lib/condenser/processors/node_modules/js-levenshtein/README.md
condenser-0.0.9 lib/condenser/processors/node_modules/js-levenshtein/README.md
condenser-0.0.8 lib/condenser/processors/node_modules/js-levenshtein/README.md
learn_create-0.0.22 lib/templates/javascript_lab_template/node_modules/js-levenshtein/README.md
jester-data-8.0.0 node_modules/js-levenshtein/README.md
ezii-os-5.2.1 node_modules/js-levenshtein/README.md
ezii-os-2.0.1 node_modules/js-levenshtein/README.md
ezii-os-1.1.0 node_modules/js-levenshtein/README.md
ezii-os-1.0.0 node_modules/js-levenshtein/README.md
condenser-0.0.7 lib/condenser/processors/node_modules/js-levenshtein/README.md
ezii-os-0.0.0.1.0 node_modules/js-levenshtein/README.md
ezii-os-0.0.0.0.1 node_modules/js-levenshtein/README.md
condenser-0.0.5 lib/condenser/processors/node_modules/js-levenshtein/README.md