Major integrations and fixes: - Added BACKBEAT SDK integration for P2P operation timing - Implemented beat-aware status tracking for distributed operations - Added Docker secrets support for secure license management - Resolved KACHING license validation via HTTPS/TLS - Updated docker-compose configuration for clean stack deployment - Disabled rollback policies to prevent deployment failures - Added license credential storage (CHORUS-DEV-MULTI-001) Technical improvements: - BACKBEAT P2P operation tracking with phase management - Enhanced configuration system with file-based secrets - Improved error handling for license validation - Clean separation of KACHING and CHORUS deployment stacks 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
34 lines
1.1 KiB
Markdown
34 lines
1.1 KiB
Markdown
# levenshtein
|
|
levenshtein automaton
|
|
|
|
This package makes it fast and simple to build a finite determinic automaton that computes the levenshtein distance from a given string.
|
|
|
|
# Sample usage:
|
|
|
|
```
|
|
// build a re-usable builder
|
|
lb := NewLevenshteinAutomatonBuilder(2, false)
|
|
|
|
origTerm := "couchbasefts"
|
|
dfa := lb.BuildDfa("couchbases", 2)
|
|
ed := dfa.eval([]byte(origTerm))
|
|
if ed.distance() != 2 {
|
|
log.Errorf("expected distance 2, actual: %d", ed.distance())
|
|
}
|
|
|
|
```
|
|
|
|
This implementation is inspired by [blog post](https://fulmicoton.com/posts/levenshtein/) and is intended to be
|
|
a port of original rust implementation: https://github.com/tantivy-search/levenshtein-automata
|
|
|
|
|
|
Micro Benchmark Results against the current vellum/levenshtein is as below.
|
|
|
|
```
|
|
BenchmarkNewEditDistance1-8 30000 52684 ns/op 89985 B/op 295 allocs/op
|
|
BenchmarkOlderEditDistance1-8 10000 132931 ns/op 588892 B/op 363 allocs/op
|
|
|
|
BenchmarkNewEditDistance2-8 10000 199127 ns/op 377532 B/op 1019 allocs/op
|
|
BenchmarkOlderEditDistance2-8 2000 988109 ns/op 4236609 B/op 1898 allocs/op
|
|
```
|