Releases: oschwald/maxminddb-rust
Releases · oschwald/maxminddb-rust
0.26.0
- BREAKING CHANGE: The
lookupandlookup_prefixmethods now return
Ok(None)orOk((None, prefix_len))respectively when an IP address is
valid but not found in the database (or has no associated data record),
instead of returning anErr(MaxMindDbError::AddressNotFoundError).
Code previously matching onAddressNotFoundErrormust be updated to
handle theOk(None)/Ok((None, prefix_len))variants. - BREAKING CHANGE: The
MaxMindDBErrorenum has been renamed
MaxMindDbErrorand variants have been renamed and refactored. For
example,IoErroris nowIo,InvalidDatabaseErroris now
InvalidDatabase,DecodingErroris nowDecoding,
InvalidNetworkErroris nowInvalidNetwork. TheMapErrorvariant has
been replaced byMmap(under themmapfeature flag). Code explicitly
matching on the old variant names must be updated. - BREAKING CHANGE:
MaxMindDbErrorno longer implementsPartialEq.
This is because underlying error types likestd::io::Error(now
wrapped by theIoandMmapvariants) do not implementPartialEq.
Code comparing errors directly using==orassert_eq!must be
updated, typically by usingmatches!or by matching on the error
kind and potentially its contents. - Refactored
MaxMindDbErrorhandling using thethiserrorcrate.
Variants likeIo,Mmap, andInvalidNetworknow directly wrap
the underlying error types (std::io::Error,ipnetwork::IpNetworkError). - Errors wrapping underlying types (
Io,Mmap,InvalidNetwork) now
correctly implementstd::error::Error::source(), allowing inspection
of the original cause. - The
Displayimplementation forMaxMindDbErrorhas been refined to
generally show only the specific error details, often including the
message from the source error, rather than prefixing with the variant
name. lookup_prefixnow returns the prefix length of the entry even when the
value is not found.- Fixed an internal bounds checking error when resolving data pointers.
The previous logic could cause a panic on a corrupt database.
0.25.0
- Serde will now skip serialization of the GeoIP2 struct fields
whenOptionis none. Pull request by Stefan Sundin. GitHub #79. SerializeandClonewere added to theMetadatastruct. Pull
request by Stefan Sundin. GitHub #80.- Added feature to use
simdutf8as a faster alternative when
unsafe-str-decodeis too risky. Pull request by Jakub Onderka.
GitHub #88. - Minor internal refactoring and performance improvements.
0.24.0
0.23.0
0.22.0
- A
withinmethod has been added to the reader to allow iterating
over all records in the database. Pull request by Ross McFarland.
Github #50. - Database structs in
maxminddb::geoip2have been updated. Most
noticeably, anEnterprisestruct has been added and themodel
module has been replaced bycityandcountrymodules. Also,
several missing fields have been added. Mmapis now re-exported for convenience. Pull request by zhuhaow.
GitHub #54.- Upgraded memmap2 dependency.