0.29.0
·
19 commits
to greg/release
since this release
Immutable
release. Only release title and notes can be modified.
- Breaking:
Metadata::build_time()now returns
Result<SystemTime, MaxMindDbError>instead of panicking on
unrepresentable timestamps, and databases whosebuild_epochcannot be
represented asSystemTimeare rejected as invalid during open and verify. - Breaking:
Reader::metadatais now private. UseReader::metadata()to
access validated metadata by shared reference. - Breaking: Opening a database now rejects unsupported major format versions,
unsupported IP versions, and zero-node search trees. Minor format versions
are still accepted for forward compatibility. - Fixed:
within()andnetworks()now handle IPv6 databases without an
IPv4 subtree without reading terminal data nodes as tree nodes or
panicking while formatting low IPv6 networks. - Fixed: Skipping ignored or unknown fields now enforces data-section
bounds and the maximum nesting depth instead of accepting truncated
values or overflowing the stack on deeply nested corrupt data. - Internal: Added focused benchmarks for network iteration and serde
unknown-field skipping, plus metadata build-time conversion, to guard
performance-sensitive fixes. - Documentation: Fixed intra-doc links so docs build with warnings denied,
and added a CI check to keep them passing.