Skip to content

0.3.0

Choose a tag to compare

@oschwald oschwald released this 22 Feb 22:12
· 97 commits to main since this release
cbe25a9

Changed

  • Improved lookup performance by using a generic bounded key cache for decoded map keys.
  • Improved IPAddr lookup performance by decoding packed bytes from IPAddr#hton directly.
  • Switched map-key cache hashing to FxHashMap for faster key-cache access.
  • Switched map-key cache roots to a Ruby-owned cache array with Rust key-to-index lookups.
  • Refactored duplicated prefix and within decode paths in the Rust reader for simpler maintenance.
  • Refactored duplicate database file-open error handling shared by MMAP and MEMORY modes.
  • Updated Rust and Ruby dependencies.
  • Added Ruby 4.0 coverage to CI workflows.

Fixed

  • Made extension initialization idempotent across MaxMind::DB class/module loading modes to avoid typed-data incompatibility when the extension is loaded more than once.
  • When loaded with the official MaxMind::DB class, MaxMind::DB::Rust now uses anonymous module creation to preserve canonical module naming.
  • Scoped Rust dependency cache per Ruby version in CI tests and stopped caching target/ in the test workflow to avoid cross-version artifact contamination.