SpellKit: Fast Typo Correction with Domain Protection for Ruby
Briefly

"SpellKit brings blazing-fast spell checking and typo correction to Ruby through native Rust bindings. Built on the SymSpell algorithm, it corrects user input at 16,000+ operations/second while preserving technical terms, product codes, and domain-specific terminology. What makes it special: Zero runtime dependencies (pure Ruby + Rust, no external services) Protection for technical terms (gene names, SKUs, CAS numbers) Hot-reload dictionaries without restarting your application Thread-safe concurrent reads with efficient locking Aspell-inspired skip patterns (URLs, emails, camelCase, version numbers)"
"Key features: 16k ops/sec throughput with 80k word dictionary (p50: 61µs, p95: 66µs) Configurable edit distance (1 or 2) and frequency thresholds Batch optimization for processing multiple tokens efficiently Supports both TSV and space-separated dictionary formats Multiple independent instances for different domains (medical, legal, etc.) Comprehensive statistics and healthcheck APIs for monitoring Perfect for search interfaces, data extraction pipelines, form validation, and any application that needs to handle real-world messy input while respecting domain terminology - all within your Ruby process."
SpellKit provides blazing-fast spell checking and typo correction for Ruby through native Rust bindings. Built on the SymSpell algorithm, SpellKit corrects user input at over 16,000 operations per second while preserving technical terms, product codes, and domain-specific terminology. SpellKit requires no external runtime dependencies and supports hot-reloadable dictionaries without restarting applications. The tool protects gene names, SKUs, and CAS numbers, preserves canonical forms like NASA and iPhone, and applies Aspell-inspired skip patterns. Configurable edit distances, batch optimization, multiple domain instances, thread-safe concurrent reads, and monitoring APIs enable robust production use within Ruby processes.
Read at Rubyflow
Unable to calculate read time
[
|
]