Releases: maxmind/MaxMind-DB-Reader-python
Releases · maxmind/MaxMind-DB-Reader-python
3.0.0
- IMPORTANT: Python 3.10 or greater is required. If you are using an older
version, please use an earlier release. - Databases can now be loaded from buffers. This can be done by passing in a
buffer as the database and using modeMODE_FD
. Pull request by Emanuel
Seemann. GitHub #234. - The C extension now supports Python 3.13+ free-threading mode and is
thread-safe for concurrent reads on platforms with pthread support (such as
Linux and macOS) and Windows. On other platforms, the extension will use
GIL-based protection. - The C extension now uses PEP 489 multi-phase initialization, enabling
proper subinterpreter support and module isolation for Python 3.12+. This
modernizes the extension to use heap types instead of static types and
implements per-module state management. Key benefits include support for
Python 3.12+ isolated subinterpreters, multiple independent module
instances, and future-proofing for Python 3.14's InterpreterPoolExecutor.
Requested by R. Christian McDonald in GitHub #105. - BREAKING: The pure Python
maxminddb.reader.Metadata
class has been
converted to a frozen dataclass. The__repr__
format has changed from
maxminddb.reader.Metadata(...)
toMetadata(...)
. More importantly,
all Metadata attributes are now readonly and cannot be modified after
creation. If you were modifying metadata attributes after object creation,
you will need to update your code. All functionality remains the same,
including thenode_byte_size
andsearch_tree_size
properties. Note:
The C extension's Metadata class has always been readonly, so this change
brings the pure Python implementation into consistency with the C extension. - MODE constants have been converted to an
IntEnum
(maxminddb.const.Mode
).
The old constants (MODE_AUTO
,MODE_FILE
, etc.) remain available for
backward compatibility and are now aliases to the enum members. This provides
better IDE support and type safety while maintaining full backward
compatibility. You can now use eitherMode.FILE
orMODE_FILE
- both
work identically. SinceIntEnum
is int-compatible, existing code using
the constants will continue to work without modification.
2.8.2
2.8.1
2.8.0
- Python 3.14 is now officially supported, including binary wheels.
- We have updated the platforms that we build binary wheels for. In particular,
we now build wheels for Android, iOS, Windows Arm, and Pyodide, and we have
dropped 686 (32 bit), ppc64le, and s390x builds on Linux.
2.7.0
- IMPORTANT: Python 3.9 or greater is required. If you are using an older
version, please use an earlier release. - The vendored
libmaxminddb
has been updated to 1.12.2. - The C extension now checks that the database metadata lookup was
successful. - A theoretical segmentation fault with the C extension when doing lookups
on a corrupt or invalid database was fixed.