maxminddb breaking changes

cargo

5 curated breaking changes across major versions of maxminddb. Use this as a migration checklist before bumping dependencies.

5
changes
Breaking changes by transition
  • 0.25.0 \u2192 0.26.0breaking

    **BREAKING CHANGE:** The `MaxMindDBError` enum has been renamed `MaxMindDbError` and variants have been renamed and refactored. For example, `IoError` is now `Io`, `InvalidDatabaseError` is now `InvalidDatabase`, `DecodingError` is now `Decoding`, `InvalidNetworkError` is now `InvalidNetwork`. The `MapError` variant has been replaced by `Mmap` (under the `mmap` feature flag). Code explicitly matching on the old variant names must be updated.

  • 0.25.0 \u2192 0.26.0breaking

    **BREAKING CHANGE:** `MaxMindDbError` no longer implements `PartialEq`. This is because underlying error types like `std::io::Error` (now wrapped by the `Io` and `Mmap` variants) do not implement `PartialEq`. Code comparing errors directly using `==` or `assert_eq!` must be updated, typically by using `matches!` or by matching on the error kind and potentially its contents.

  • 0.25.0 \u2192 0.26.0breaking

    Refactored `MaxMindDbError` handling using the `thiserror` crate. Variants like `Io`, `Mmap`, and `InvalidNetwork` now directly wrap the underlying error types (`std::io::Error`, `ipnetwork::IpNetworkError`).

  • 0.25.0 \u2192 0.26.0breaking

    Errors wrapping underlying types (`Io`, `Mmap`, `InvalidNetwork`) now correctly implement `std::error::Error::source()`, allowing inspection of the original cause.

  • 0.25.0 \u2192 0.26.0breaking

    The `Display` implementation for `MaxMindDbError` has 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.

API access

Get this data programmatically \u2014 free, no authentication.

curl https://depscope.dev/api/breaking/cargo/maxminddb
maxminddb breaking changes — Cargo migration guide | DepScope