NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Packagist · #393 most downloaded on Packagist
MaxMind DB Reader API
Last release 27 days ago
10 Sep 2026
Release timing varies
gaps range from 5 weeks to 2.1 years
Nearly every release is documented
notes for 33 of 33 stable releases
Nothing withdrawn
no release was ever pulled
13 years old
33 releases · first in 2013
Bounded the resources that the pure PHP decoder spends on a single lookup. A crafted database could nest data-section pointers to shared targets so th
InvalidDatabaseException.--with-maxminddb-bundled builds of theInvalidDatabaseException when a lookup exceeds them.strlen() instead of ftell().libmaxminddb.lib ormaxminddb.lib when building the extension. The lib prefix was removedXtOffsetOf() with offsetof(). The XtOffsetOf() alias has--with-maxminddb-bundledconfigure (or to configure.bat on Windows). This produces anconflict constraint on ext-maxminddb in composer.json is again||, so the constraint has read <1.11.1 through four releases. Users ofext-maxminddb is acomposer update will require upgrading the two together.One column per quarter.
First PIE release. No other changes.
A redundant filesize() call in the reader's constructor was removed. Pull request by Pavel Djundik. GitHub #189 .
filesize() call in the reader's constructor was removed.The C extension now checks that the database metadata lookup was successful.
Improve the error handling when the user tries to open a directory with the pure PHP reader.
Resolve warnings when compiling the C extension.
Replace runtime define of a constant to facilitate opcache preloading. Reported by vedadkajtaz. GitHub #134 .
Fix a TypeError exception in the pure PHP reader when using large databases on 32-bit PHP builds with the bcmath extension. Reported by dodo1708. GitH
TypeError exception in the pure PHP reader when using largebcmath extension. ReportedWhen using the pure PHP reader, unsigned integers up to PHP_MAX_INT will now be integers in PHP rather than strings. Previously integers greater than
gmp or bcmath to decode them.The maxminddb extension is now buildable on Windows. Pull request by Jan Ehrhardt. GitHub #115 .
maxminddb extension is now buildable on Windows. Pull requestFixes for PHP 8.0. Pull Request by Remi Collet. GitHub #108 .
IMPORTANT: PHP 7.2 or greater is now required.
maxmind-db/reader. You can use it independently.metadata method on the reader now returns a new copy of the
metadata object rather than the actual object used by the reader.is_readable() bug. Reported by Ben Roberts. GitHub
#92.1.5.0 and 1.5.1 contained a possible memory corruptions when using getWithPrefixLen. This has been fixed. Reported by proton-ab. GitHub #96.
getWithPrefixLen. This has been fixed. Reported by proton-ab.
GitHub #96.composer.json file now conflicts with all versions of the
maxminddb C extension less than the Composer version. This is to
reduce the chance of having an older, conflicting version of the
extension installed. You will need to upgrade the extension before
running composer update. Pull request by Benoît Burnichon. GitHub
#97.Minor performance improvements.
PHP 5.6 or greater is now required.
getWithPrefixLen, was added to the Reader class.
This method returns an array containing the record and the prefix
length for that record. GitHub #89.The maxminddb extension now returns a string when a uint32 value is greater than LONG_MAX. Previously, the value would overflow. This generally only a
maxminddb extension now returns a string when a uint32
value is greater than LONG_MAX. Previously, the value would
overflow. This generally only affects 32-bit machines. Reported
by Remi Collet. GitHub #79.uint64 values, the maxminddb extension now returns an
integer rather than a string when the value is less than or equal
to LONG_MAX. This more closely matches the behavior of the pure
PHP reader.The maxminddb extension now has the arginfo when using reflection. PR by Remi Collet. GitHub #75.
maxminddb extension now has the arginfo when using reflection.
PR by Remi Collet. GitHub #75.maxminddb extension now provides MINFO() function that
displays the extension version and the libmaxminddb version. PR by
Remi Collet. GitHub #74.maxminddb configure script now uses pkg-config when
available to get libmaxmindb build info. PR by Remi Collet.
GitHub #73.IMPORTANT: The maxminddb extension now obeys open_basedir. If open_basedir is set, you _must_ store the database within the specified directory. Placi
maxminddb extension now obeys open_basedir. If
open_basedir is set, you must store the database within the
specified directory. Placing the file outside of this directory
will result in an exception. Please test your integration before
upgrading the extension. This does not affect the pure PHP
implementation, which has always had this restriction. Reported
by Benoît Burnichon. GitHub #61.autoload.php file is provided for installations without
Composer. GitHub #56.PHP 5.4 or greater is now required.
Reader class for the maxminddb extension is no longer final.
This was change to match the behavior of the pure PHP class.
Reported and fixed by venyii. GitHub #52 & #54.Fix incorrect version in ext/php_maxminddb.h. GitHub #48.
ext/php_maxminddb.h. GitHub #48.Searching for database metadata only occurs within the last 128KB (128 * 1024 bytes) of the file, speeding detection of corrupt datafiles. Reported by
Development files were added to the .gitattributes as export-ignore so that they are not part of the Composer release. Pull request by Michele Locati.
.gitattributes as export-ignore so
that they are not part of the Composer release. Pull request by Michele
Locati. GitHub #39.The MaxMind DB extension now supports PHP 7. Pull request by John Boehr. GitHub #27.
All uses of strlen were removed. This should prevent issues in situations where the function is overloaded or otherwise broken.
strlen were removed. This should prevent issues in situations
where the function is overloaded or otherwise broken.Previously the MaxMind DB extension would cause a segfault if the Reader object's destructor was called without first having called the constructor. (
In the last several releases, the version number in the extension was incorrect. This release is being done to correct it. No other code changes are i
In the pure PHP reader, a string length test after fread() was replaced with the difference between the start pointer and the end pointer. This provid
fread() was replaced
with the difference between the start pointer and the end pointer. This
provided a 15% speed increase.Clarified behavior of 128-bit type in documentation.
Fixed invalid reference to global class RuntimeException from namespaced code. Fixed by Steven Don. GitHub issue #15.
Metadata class as well as misc. documentation
cleanup.The API now works when mbstring.func_overload is set.
mbstring.func_overload is set.This API is now licensed under the Apache License, Version 2.0.
Added optional C extension for using libmaxminddb in place of the pure PHP reader.
* Initial release
Your coding agent can read these notes before it upgrades. Set up the MCP server →