All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
1.4.0 - 2026-01-15
- RBS type signatures for improved type checking and IDE support (#68)
- Minor fixups in gem metadata (#67).
1.3.0 - 2026-01-02
- Replace OpenStruct with regular class in
Zxcvbn::Matchfor 2x performance improvement (#61) - Implement Trie data structure for dictionary matching with 1.4x additional performance improvement (#62)
- Replace range operators with
String#slicefor string slicing operations (#63) - Optimise L33t matcher with early bailout and improved deduplication (#64)
- Pre-compute spatial graph statistics during data initialisation (#65)
- Optimise nCk calculation using symmetry property (#66)
Overall performance improvement: 4.1x faster than v1.2.4 (0.722ms → 0.176ms per password)
1.2.4 - 2025-12-07
- Address security issues found by RuboCop (#57)
1.2.3 - 2025-12-07
1.2.2 - 2025-12-06
- Address layout and frozen string literal issues (#49)
1.2.1 - 2025-12-05
- Removed the dependency on the Ruby
benchmarkmodule (#44). - Tests are no longer included in the gem package (#45).
1.2.0 - 2021-01-05
- Use mini_racer for running JavaScript specs (thanks @RSO (#33))
- Moved CI to GitHub Actions (#34)
1.1.0 - 2020-07-16
- Invalid user dictionaries are handled more robustly (#28)
1.0.0 - 2019-05-14
- License info in the gemspec (#21)
- More ported password checking features to bring this gem more up to date. (#22)
- spatial - Keyboard patterns
- repeat - Repeated characters
- sequence - easily guessable sequences
- date - date associations
- This gem will no longer run on Ruby versions < 2.3 (#25)