Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/test-libmaxminddb.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:

strategy:
matrix:
env: [3.9, "3.10", 3.11, 3.12, 3.13, 3.14]
env: ["3.10", 3.11, 3.12, 3.13, 3.14]
# We don't test on Windows currently due to issues
# build libmaxminddb there.
os: [ubuntu-latest, ubuntu-24.04-arm, macos-latest]
Expand Down Expand Up @@ -56,7 +56,7 @@ jobs:
echo "LDFLAGS=-L/opt/homebrew/lib" >> "$GITHUB_ENV"

- name: Build with Werror and Wall
run: uv build
run: uv build --python ${{ matrix.env }}
env:
CFLAGS: "${{ env.CFLAGS }} -Werror -Wall -Wextra"

Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
strategy:
fail-fast: false
matrix:
env: [3.9, "3.10", 3.11, 3.12, 3.13, 3.14]
env: ["3.10", 3.11, 3.12, 3.13, 3.14]
os: [ubuntu-latest, ubuntu-24.04-arm, macos-latest, windows-latest]
steps:
- uses: actions/checkout@v5
Expand All @@ -32,6 +32,7 @@ jobs:
- name: Setup test suite
run: tox run -vv --notest --skip-missing-interpreters false
env:
MAXMINDDB_REQUIRE_EXTENSION: 1
TOX_GH_MAJOR_MINOR: ${{ matrix.env }}
- name: Run test suite
run: tox run --skip-pkg-install
Expand Down
6 changes: 6 additions & 0 deletions HISTORY.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,15 @@ History
2.9.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 mode ``MODE_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.

2.8.2 (2025-07-25)
++++++++++++++++++
Expand Down
12 changes: 11 additions & 1 deletion README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -94,10 +94,20 @@ The module will return an ``InvalidDatabaseError`` if the database is corrupt
or otherwise invalid. A ``ValueError`` will be thrown if you look up an
invalid IP address or an IPv6 address in an IPv4 database.

Thread Safety
-------------

Both the C extension and pure Python implementations are safe for concurrent
reads and support Python 3.13+ free-threading. The C extension provides
free-threading support on platforms with pthread support (such as Linux and
macOS) and Windows. On other platforms, the extension will use GIL-based
protection. Calling ``close()`` while reads are in progress may cause
exceptions in those threads.

Requirements
------------

This code requires Python 3.9+. Older versions are not supported. The C
This code requires Python 3.10+. Older versions are not supported. The C
extension requires CPython.

Versioning
Expand Down
Loading
Loading