{"_id":"@doubletrade/fastest-levenshtein","_rev":"4-fecb9fa155be8b38b09dce3df18d57aa","name":"@doubletrade/fastest-levenshtein","dist-tags":{"latest":"1.0.14"},"versions":{"1.0.12":{"name":"@doubletrade/fastest-levenshtein","version":"1.0.12","keywords":["levenshtein","distance","fast","fastest","edit","string","similarity","algorithm","match","comparison","fuzzy","search","string","matching","similar","node","difference"],"author":{"name":"Kasper U. Weihe"},"license":"MIT","_id":"@doubletrade/fastest-levenshtein@1.0.12","maintainers":[{"name":"roxus","email":"julien.rss@gmail.com"},{"name":"rocat","email":"catoio.romain@gmail.com"},{"name":"phrikadel","email":"laurent.zvara@gmail.com"}],"homepage":"https://github.com/ka-weihe/fastest-levenshtein#README","bugs":{"url":"https://github.com/ka-weihe/fastest-levenshtein/issues"},"dist":{"shasum":"16fbc87e4d5e2585a1cbcd7972c6d392805e3966","tarball":"https://registry.npmjs.org/@doubletrade/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz","fileCount":10,"integrity":"sha512-18US3lNjqUaI8mSc2DbQdSA8GWJ9c6JfNZKY1tMImTOYVzzMJ/+70xS5zg4mfSUtdL0wGzei1W4LlbKP/D0MJA==","signatures":[{"sig":"MEQCIFbFXwYmjwZFiM5zas4GlBNvs+PvEguNaFG3++4bDJuVAiAMNBajea0cOMZsqEeMKHIpliUfRhfd8f4+Ec3V4Dr8/Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12646,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixvcFACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoB2Q/9EfoHUCnmoYjubux3hHA4yCx3n9aGhSjjni3y1YuW9ft21CsN\r\nJQo2EOsfwlxqYoClJsVFirxnFUhYWQZcVinWu8x/I63D4KIIEwLS0PLoaWiU\r\nTywunFopynep42qCNNxvoXRGwkcGRoE7asUiLUxEUi8bRw81ohiyF68TJCK+\r\nUu24vQghSN9/s7/U7CE+Iqxg0JPzueJPptpAfdOdE2/LrCPBc0kyIoij7fxI\r\ncyRg9zZwnSMV+wLx5fubFGpP7RFb9T964HEV9MIKPhbR9s+UGUq9R/ufkf48\r\nWobQfoJYy/t+b5di4uxGvrRmBCyTty4hbaMVVTN6U063CWCq0p3snO4mvBrc\r\nUqzHum1SZDf76+33bagWbAalXOgbghDiQTWdrOdLCHTcD3kyB6bp5EfGnZ+i\r\njS75roa9NIrxQkhb/FngFJbbE5eZ8O/iWNW0xINOIEYKaum1WuG3o0DafDky\r\ny/ZdjZlrVOZ4vUsWjSNTVWUhncldfXRyi7t76YVF+Jj1CJV/kqLjjUrm4Mgg\r\nw70T7MiM1vTcnd4hxEmIXBlYtEVTcHxM46nrE73tFHXiMHgESmq7pqo4OQya\r\noHeskqFJlD+bIK59V0eVJektlhdybPV6+V3fhSdNo1+U3wO4YpS8q81CtUVq\r\nTPYjxqvCroXnuXL8rRYwKJy/mAOA/O52lt4=\r\n=ZtW5\r\n-----END PGP SIGNATURE-----\r\n"},"main":"mod.js","types":"mod.d.ts","module":"./esm/mod.esm.js","engines":{"node":">= 4.9.1"},"gitHead":"1e56e279c15eed8e5c006e843e290f9677da6dc3","scripts":{"test":"npm run build && tsc test.ts && jest test.js","bench":"npm run build && tsc bench.ts && node bench.js","build":"tsc mod.ts --declaration","prepare":"npm run build","test:coverage":"npm run build && jest --coverage","test:coveralls":"npm run build && jest --coverage --coverageReporters=text-lcov | coveralls"},"_npmUser":{"name":"roxus","email":"julien.rss@gmail.com"},"repository":{"url":"git+https://github.com/ka-weihe/fastest-levenshtein.git","type":"git"},"_npmVersion":"8.12.1","description":"Fastest Levenshtein distance implementation in JS.","directories":{},"_nodeVersion":"18.4.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","leven":"^3.1.0","eslint":"^7.13.0","natural":"^2.1.5","prettier":"^2.1.2","talisman":"^1.1.3","benchmark":"^2.1.4","coveralls":"^3.1.0","typescript":"^4.0.5","@types/jest":"^26.0.15","js-levenshtein":"^1.1.6","@types/benchmark":"^1.0.33","fast-levenshtein":"^2.0.6","eslint-config-node":"^4.1.0","eslint-plugin-node":"^11.1.0","eslint-plugin-import":"^2.22.1","eslint-config-prettier":"^6.15.0","eslint-plugin-prettier":"^3.1.4","@typescript-eslint/parser":"^4.7.0","levenshtein-edit-distance":"^2.0.5","@typescript-eslint/eslint-plugin":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/fastest-levenshtein_1.0.12_1657206532996_0.35482109753280966","host":"s3://npm-registry-packages"}},"1.0.13":{"name":"@doubletrade/fastest-levenshtein","version":"1.0.13","keywords":["levenshtein","distance","fast","fastest","edit","string","similarity","algorithm","match","comparison","fuzzy","search","string","matching","similar","node","difference"],"author":{"name":"Kasper U. Weihe"},"license":"MIT","_id":"@doubletrade/fastest-levenshtein@1.0.13","maintainers":[{"name":"roxus","email":"julien.rss@gmail.com"},{"name":"rocat","email":"catoio.romain@gmail.com"},{"name":"phrikadel","email":"laurent.zvara@gmail.com"}],"homepage":"https://github.com/ka-weihe/fastest-levenshtein#README","bugs":{"url":"https://github.com/ka-weihe/fastest-levenshtein/issues"},"dist":{"shasum":"a651cc4771fbe9b4f81a0cba12fe3a1580c35cd1","tarball":"https://registry.npmjs.org/@doubletrade/fastest-levenshtein/-/fastest-levenshtein-1.0.13.tgz","fileCount":10,"integrity":"sha512-SZEvt28obGePcdt/1z4susds/xVvG9gVhcxDuWDayGqH4HKQBh+x7j3c7L3wB8HoPKV0zT1DQZQDAZmn2CSudw==","signatures":[{"sig":"MEQCIEozg1EjvWFp6TkHo9V2YF89L3ObrJhyGDJ894uNI9qUAiBwkonCnlomAtkVhbPHE9MquAUhgOzr96iEmqO44+u1uA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12646,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixzSnACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrWDA/+KImGPuoWLj/S1a1zgN1xKoBRAesMPEqmTFb2+1MZxeMsfWVu\r\nb9R63jGE9+LYU6tAI2YmXRcqw8sZCJpIdYpwMKD9x/TVwpZmPa00CZ7Zy72S\r\nB9lh9DQzMWqf+fXpAS/Jhz6B7mTcc357DFYaUtH8qkGjehd1QKX0HETAwcZ4\r\n6cj4NKbDj5ggdn/TaMbE6jo9lwDQWFMrOMQ+/0ZLQMQiOvVo9Y79d8LViX+1\r\njrsfCVyTcjz3UXfx281u4aPgGWHS2Gm6FJvomOU8IlFOTctJ/3VUNelg4/oC\r\nha7E0jcFs/Qn1NxT1l7zhlcKzX/DciH6Vs4VP1A8bpTs2xuqKSjRFEU6QP4O\r\nD0TGYBQqk3OQ+TclLp7cVm5zXS7id8MPBt0TqfHEhun5OeBOYlYXNLnsa8j0\r\n3PgAxbL1bvNTqtsd8po8P8bsjcDGBcDUkWiK0TZVLyQumNmIbFPAo3zt30Dd\r\n7oHJArbVFsLQPkI6ujrLpkcv/Qm83SzexEycJ1IBNdyK87lVvCSk4xWLiYyw\r\nTSi6DZ+Hmfd4+spBusqfgCitzBSigPnoCibABZQX5EyYUutm/mwt6uPApcmb\r\nn63GhECSoSJfHM2NqqHMCjs1Vm88kQySMPCQKdtGAtS/XNZXHQsti2PlodyM\r\n57nVClO0TaHHPxeKcbI1LErGRgGMCcqwt0w=\r\n=K12i\r\n-----END PGP SIGNATURE-----\r\n"},"main":"mod.js","types":"mod.d.ts","module":"./esm/mod.esm.js","engines":{"node":">= 4.9.1"},"gitHead":"f6b374c038c18e8fc37c4a9ef0a91a8a123f824b","scripts":{"test":"npm run build && tsc test.ts && jest test.js","bench":"npm run build && tsc bench.ts && node bench.js","build":"tsc mod.ts --declaration","prepare":"npm run build","test:coverage":"npm run build && jest --coverage","test:coveralls":"npm run build && jest --coverage --coverageReporters=text-lcov | coveralls"},"_npmUser":{"name":"roxus","email":"julien.rss@gmail.com"},"repository":{"url":"git+https://github.com/ka-weihe/fastest-levenshtein.git","type":"git"},"_npmVersion":"8.12.1","description":"Fastest Levenshtein distance implementation in JS.","directories":{},"_nodeVersion":"18.4.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","leven":"^3.1.0","eslint":"^7.13.0","natural":"^2.1.5","prettier":"^2.1.2","talisman":"^1.1.3","benchmark":"^2.1.4","coveralls":"^3.1.0","typescript":"^4.0.5","@types/jest":"^26.0.15","js-levenshtein":"^1.1.6","@types/benchmark":"^1.0.33","fast-levenshtein":"^2.0.6","eslint-config-node":"^4.1.0","eslint-plugin-node":"^11.1.0","eslint-plugin-import":"^2.22.1","eslint-config-prettier":"^6.15.0","eslint-plugin-prettier":"^3.1.4","@typescript-eslint/parser":"^4.7.0","levenshtein-edit-distance":"^2.0.5","@typescript-eslint/eslint-plugin":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/fastest-levenshtein_1.0.13_1657222311140_0.4582940239963089","host":"s3://npm-registry-packages"}},"1.0.14":{"name":"@doubletrade/fastest-levenshtein","version":"1.0.14","keywords":["levenshtein","distance","fast","fastest","edit","string","similarity","algorithm","match","comparison","fuzzy","search","string","matching","similar","node","difference"],"author":{"name":"Kasper U. Weihe"},"license":"MIT","_id":"@doubletrade/fastest-levenshtein@1.0.14","maintainers":[{"name":"roxus","email":"julien.rss@gmail.com"},{"name":"rocat","email":"catoio.romain@gmail.com"},{"name":"phrikadel","email":"laurent.zvara@gmail.com"}],"homepage":"https://github.com/ka-weihe/fastest-levenshtein#README","bugs":{"url":"https://github.com/ka-weihe/fastest-levenshtein/issues"},"dist":{"shasum":"dd056ea404d15a1ef402e5b4c74b5b91c0e2f220","tarball":"https://registry.npmjs.org/@doubletrade/fastest-levenshtein/-/fastest-levenshtein-1.0.14.tgz","fileCount":13,"integrity":"sha512-m3BAy6bne2JrQvBTZFK/1BAf9WjyUZG8y+kln8Y3vDn9zZot3zsP4EDnmweFQesM+yp7nW1yXEGWOXunySdr7A==","signatures":[{"sig":"MEMCH3gGwzwBmvRJzPy9O+SEuPuem9bIebOGCPUnfvMiZXICIENqx77lk/Scn1MGlcgrklueONjVVZwmgyy8ky8wSFmR","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":16819,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixz1qACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp0lw//UdfXLyGtULbtQWc6sD2cOiucMX220/ypl2unFWyJ25Mg0WLH\r\noqr/Lvv0HUxrWAkX5/4YE9F2w1/uC2Qt7TAwDvko8+TY13UDrcsuaV7IS01K\r\nf5tUbK85Yg6oAGrZngKhWdacJxckXsHBeHYEc+T/uJ1SCAxTnZVuqUq8kI2N\r\nWdNS3tK0O4raHXImKcmwmsmFxDCROwmL43gtdhR178EwfYt/br6cBVHGe9vv\r\n1Bpq8zP7K+S2YCpjKQUON1RG/g0zKmNU9/jrdUG5TexEwYPFoXKmFPqAk+XF\r\nyE5L7ojzc8xfO6MIfT9gFxrcGt3qU8ofMGoomI/LECUQoUzk+wwTDF9t9xyJ\r\n0M5jIXVUMODRKutqlrJrZREh/C8V8BnTHhJRpdOymGnY9+y+8wBXflndY4iX\r\nsMNplja/40OR/qUFyOuJcl/2iUeZ1UJdKDsSJ5lq60T1v5fcP3JrN8zKyc+e\r\nMhKkh5orauiqfbcTbCL/OSlfhQO4oLhAtsZtnDLUZcBtTjJX3bvlhRolkBar\r\nyzDymbeBZgtH3kx1HRXWKegtClJHE+d4KOH5DFD13O+jpuxdUqW+0BVuPd8V\r\nbB5nHdYSoorzXAbT6laA8hKgGrcdpa+sq6UZ7tKp+ZjdbHb/b1S9ZLp0ID6o\r\nrzZth9wh0KLOTDPqY6VTalJrXfmrZ7CaFzY=\r\n=HLlA\r\n-----END PGP SIGNATURE-----\r\n"},"main":"mod.js","types":"mod.d.ts","module":"./esm/mod.esm.js","engines":{"node":">= 4.9.1"},"gitHead":"5386608b774b30a6c577b1adfe8ca9f54aa57514","scripts":{"test":"npm run build && tsc test.ts && jest test.js","bench":"npm run build && tsc bench.ts && node bench.js","build":"tsc mod.ts --declaration","prepare":"npm run build","test:coverage":"npm run build && jest --coverage","test:coveralls":"npm run build && jest --coverage --coverageReporters=text-lcov | coveralls"},"_npmUser":{"name":"roxus","email":"julien.rss@gmail.com"},"repository":{"url":"git+https://github.com/ka-weihe/fastest-levenshtein.git","type":"git"},"_npmVersion":"8.12.1","description":"Fastest Levenshtein distance implementation in JS.","directories":{},"_nodeVersion":"18.4.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","leven":"^3.1.0","eslint":"^7.13.0","natural":"^2.1.5","prettier":"^2.1.2","talisman":"^1.1.3","benchmark":"^2.1.4","coveralls":"^3.1.0","typescript":"^4.0.5","@types/jest":"^26.0.15","js-levenshtein":"^1.1.6","@types/benchmark":"^1.0.33","fast-levenshtein":"^2.0.6","eslint-config-node":"^4.1.0","eslint-plugin-node":"^11.1.0","eslint-plugin-import":"^2.22.1","eslint-config-prettier":"^6.15.0","eslint-plugin-prettier":"^3.1.4","@typescript-eslint/parser":"^4.7.0","levenshtein-edit-distance":"^2.0.5","@typescript-eslint/eslint-plugin":"^4.7.0"},"_npmOperationalInternal":{"tmp":"tmp/fastest-levenshtein_1.0.14_1657224554290_0.9819128362500265","host":"s3://npm-registry-packages"}}},"time":{"created":"2022-07-07T15:08:52.938Z","modified":"2025-09-06T14:20:13.814Z","1.0.12":"2022-07-07T15:08:53.162Z","1.0.13":"2022-07-07T19:31:51.327Z","1.0.14":"2022-07-07T20:09:14.460Z"},"bugs":{"url":"https://github.com/ka-weihe/fastest-levenshtein/issues"},"author":{"name":"Kasper U. Weihe"},"license":"MIT","homepage":"https://github.com/ka-weihe/fastest-levenshtein#README","keywords":["levenshtein","distance","fast","fastest","edit","string","similarity","algorithm","match","comparison","fuzzy","search","string","matching","similar","node","difference"],"repository":{"url":"git+https://github.com/ka-weihe/fastest-levenshtein.git","type":"git"},"description":"Fastest Levenshtein distance implementation in JS.","maintainers":[{"email":"julien.rss@gmail.com","name":"roxus"},{"email":"catoio.romain@gmail.com","name":"rocat"}],"readme":"# fastest-levenshtein :rocket: \n> Fastest JS/TS implemenation of [Levenshtein distance](https://en.wikipedia.org/wiki/Levenshtein_distance).<br>\n> Measure the difference between two strings.\n\n[![Build Status](https://travis-ci.org/ka-weihe/fastest-levenshtein.svg?branch=master)](https://travis-ci.org/ka-weihe/fastest-levenshtein)\n[![Coverage Status](https://coveralls.io/repos/github/ka-weihe/node-levenshtein/badge.svg?branch=master)](https://coveralls.io/github/ka-weihe/node-levenshtein?branch=master)\n[![Language grade: JavaScript](https://img.shields.io/lgtm/grade/javascript/g/ka-weihe/fastest-levenshtein.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/ka-weihe/fastest-levenshtein/context:javascript)\n![npm](https://img.shields.io/npm/dm/fastest-levenshtein)\n```bash\n$ npm i fastest-levenshtein\n```\n\n## Usage\n### Node\n```javascript\nconst {distance, closest} = require('fastest-levenshtein')\n\n// Print levenshtein-distance between 'fast' and 'faster' \nconsole.log(distance('fast', 'faster'))\n//=> 2\n\n// Print string from array with lowest edit-distance to 'fast'\nconsole.log(closest('fast', ['slow', 'faster', 'fastest']))\n//=> 'faster'\n```\n\n### Deno\n```javascript\nimport {distance, closest} from 'https://deno.land/x/fastest_levenshtein/mod.ts'\n\n// Print levenshtein-distance between 'fast' and 'faster' \nconsole.log(distance('fast', 'faster'))\n//=> 2\n\n// Print string from array with lowest edit-distance to 'fast'\nconsole.log(closest('fast', ['slow', 'faster', 'fastest']))\n//=> 'faster'\n```\n\n## Benchmark\nI 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. \n\n| Test Target               | N=4   | N=8   | N=16  | N=32 | N=64  | N=128 | N=256 | N=512 | N=1024 |\n|---------------------------|-------|-------|-------|------|-------|-------|-------|-------|--------|\n| fastest-levenshtein       | 44423 | 23702 | 10764 | 4595 | 1049  | 291.5 | 86.64 | 22.24 | 5.473  |\n| js-levenshtein            | 21261 | 10030 | 2939  | 824  | 223   | 57.62 | 14.77 | 3.717 | 0.934  |\n| leven                     | 19688 | 6884  | 1606  | 436  | 117   | 30.34 | 7.604 | 1.929 | 0.478  |\n| fast-levenshtein          | 18577 | 6112  | 1265  | 345  | 89.41 | 22.70 | 5.676 | 1.428 | 0.348  |\n| levenshtein-edit-distance | 22968 | 7445  | 1493  | 409  | 109   | 28.07 | 7.095 | 1.789 | 0.445  |\n\n### Relative Performance\nThis 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\".\n\n![Benchmark](/images/relaperf.png)\n\n## License\nThis project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details\n","readmeFilename":"README.md"}