Saltar al contenido
V volfread.xyz
LIB · Go

fast-levenshtein

En simple

Mide cuánto se parecen dos textos, contando qué tanto hay que cambiar uno para llegar al otro. Funciona bien con acentos, letras chinas y emojis, no solo con letras normales.

Detalles técnicos

Fork moderno de ka-weihe/fast-levenshtein en Go 1.26. Usa tablas locales en stack para ASCII y mapas locales para Unicode, logrando fast-path sin heap para ≤64 runes. Implementa Myers bloqueado O((n/64)·m) con fallback DP para costes ponderados, midiendo en runes (no bytes).

Go 1.26Myers bit-parallel

Destacados

  • Fast-path ASCII 0 allocs (2 KiB stack) + Unicode U+10FFFF vía runes
  • API dual: Distance y DistanceWithCost con costes de inserción/borrado
  • Thread-safe verificada con -race y fuzzing; ~13k ns/op para len 4

Instalación

go get github.com/yukiteruamano/fast-levenshtein/v2

Líneas de código

689

Go
100%

Última actividad registrada

Última actividad registrada 3 commits · 52 sem
Semana 1: 0 commits Semana 2: 0 commits Semana 3: 0 commits Semana 4: 0 commits Semana 5: 0 commits Semana 6: 0 commits Semana 7: 0 commits Semana 8: 0 commits Semana 9: 0 commits Semana 10: 0 commits Semana 11: 0 commits Semana 12: 0 commits Semana 13: 0 commits Semana 14: 0 commits Semana 15: 0 commits Semana 16: 0 commits Semana 17: 0 commits Semana 18: 0 commits Semana 19: 0 commits Semana 20: 0 commits Semana 21: 0 commits Semana 22: 0 commits Semana 23: 0 commits Semana 24: 0 commits Semana 25: 0 commits Semana 26: 0 commits Semana 27: 0 commits Semana 28: 0 commits Semana 29: 0 commits Semana 30: 0 commits Semana 31: 0 commits Semana 32: 0 commits Semana 33: 0 commits Semana 34: 0 commits Semana 35: 0 commits Semana 36: 0 commits Semana 37: 0 commits Semana 38: 0 commits Semana 39: 0 commits Semana 40: 0 commits Semana 41: 0 commits Semana 42: 0 commits Semana 43: 0 commits Semana 44: 0 commits Semana 45: 0 commits Semana 46: 0 commits Semana 47: 0 commits Semana 48: 0 commits Semana 49: 0 commits Semana 50: 3 commits Semana 51: 0 commits Semana 52: 0 commits

Última actividad registrada en el proyecto.