maxminddb-rust 0.3.0__tar.gz → 0.5.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. {maxminddb_rust-0.3.0 → maxminddb_rust-0.5.0}/.github/workflows/codeql.yml +3 -3
  2. {maxminddb_rust-0.3.0 → maxminddb_rust-0.5.0}/.github/workflows/lint.yml +7 -7
  3. {maxminddb_rust-0.3.0 → maxminddb_rust-0.5.0}/.github/workflows/release.yml +10 -10
  4. {maxminddb_rust-0.3.0 → maxminddb_rust-0.5.0}/.github/workflows/test.yml +3 -3
  5. {maxminddb_rust-0.3.0 → maxminddb_rust-0.5.0}/.github/workflows/zizmor.yml +2 -2
  6. {maxminddb_rust-0.3.0 → maxminddb_rust-0.5.0}/CHANGELOG.md +45 -1
  7. {maxminddb_rust-0.3.0 → maxminddb_rust-0.5.0}/Cargo.lock +43 -75
  8. {maxminddb_rust-0.3.0 → maxminddb_rust-0.5.0}/Cargo.toml +4 -3
  9. {maxminddb_rust-0.3.0 → maxminddb_rust-0.5.0}/PKG-INFO +74 -54
  10. {maxminddb_rust-0.3.0 → maxminddb_rust-0.5.0}/README.md +67 -49
  11. {maxminddb_rust-0.3.0/examples → maxminddb_rust-0.5.0/benchmarks}/benchmark_batch.py +2 -2
  12. maxminddb_rust-0.5.0/benchmarks/benchmark_parallel.py +103 -0
  13. {maxminddb_rust-0.3.0 → maxminddb_rust-0.5.0}/dev-bin/release.sh +1 -1
  14. {maxminddb_rust-0.3.0 → maxminddb_rust-0.5.0}/examples/batch_processing.py +1 -1
  15. {maxminddb_rust-0.3.0 → maxminddb_rust-0.5.0}/pyproject.toml +6 -2
  16. {maxminddb_rust-0.3.0 → maxminddb_rust-0.5.0}/src/lib.rs +303 -217
  17. maxminddb_rust-0.5.0/uv.lock +259 -0
  18. maxminddb_rust-0.3.0/uv.lock +0 -228
  19. {maxminddb_rust-0.3.0 → maxminddb_rust-0.5.0}/.githooks/pre-commit +0 -0
  20. {maxminddb_rust-0.3.0 → maxminddb_rust-0.5.0}/.github/dependabot.yml +0 -0
  21. {maxminddb_rust-0.3.0 → maxminddb_rust-0.5.0}/.gitignore +0 -0
  22. {maxminddb_rust-0.3.0 → maxminddb_rust-0.5.0}/.gitmodules +0 -0
  23. {maxminddb_rust-0.3.0 → maxminddb_rust-0.5.0}/CONTRIBUTING.md +0 -0
  24. {maxminddb_rust-0.3.0 → maxminddb_rust-0.5.0}/LICENSE +0 -0
  25. {maxminddb_rust-0.3.0 → maxminddb_rust-0.5.0}/MIGRATION.md +0 -0
  26. {maxminddb_rust-0.3.0/examples → maxminddb_rust-0.5.0/benchmarks}/benchmark.py +0 -0
  27. {maxminddb_rust-0.3.0/examples → maxminddb_rust-0.5.0/benchmarks}/benchmark_comprehensive.py +0 -0
  28. {maxminddb_rust-0.3.0/examples → maxminddb_rust-0.5.0/benchmarks}/benchmark_path.py +0 -0
  29. {maxminddb_rust-0.3.0 → maxminddb_rust-0.5.0}/examples/basic_usage.py +0 -0
  30. {maxminddb_rust-0.3.0 → maxminddb_rust-0.5.0}/examples/context_manager.py +0 -0
  31. {maxminddb_rust-0.3.0 → maxminddb_rust-0.5.0}/examples/iterator_demo.py +0 -0
  32. {maxminddb_rust-0.3.0 → maxminddb_rust-0.5.0}/maxminddb_rust.pyi +0 -0
  33. {maxminddb_rust-0.3.0 → maxminddb_rust-0.5.0}/precious.toml +0 -0
  34. {maxminddb_rust-0.3.0 → maxminddb_rust-0.5.0}/py.typed +0 -0
  35. {maxminddb_rust-0.3.0 → maxminddb_rust-0.5.0}/tests/__init__.py +0 -0
  36. {maxminddb_rust-0.3.0 → maxminddb_rust-0.5.0}/tests/maxmind/README.md +0 -0
  37. {maxminddb_rust-0.3.0 → maxminddb_rust-0.5.0}/tests/maxmind/UPSTREAM_LICENSE +0 -0
  38. {maxminddb_rust-0.3.0 → maxminddb_rust-0.5.0}/tests/maxmind/__init__.py +0 -0
  39. {maxminddb_rust-0.3.0 → maxminddb_rust-0.5.0}/tests/maxmind/reader_test.py +0 -0
  40. {maxminddb_rust-0.3.0 → maxminddb_rust-0.5.0}/tests/path_test.py +0 -0
@@ -21,7 +21,7 @@ jobs:
21
21
 
22
22
  steps:
23
23
  - name: Checkout repository
24
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
24
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
25
25
  with:
26
26
  fetch-depth: 2
27
27
  persist-credentials: false
@@ -31,12 +31,12 @@ jobs:
31
31
  run: git checkout HEAD^2
32
32
 
33
33
  - name: Set up Python
34
- uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0
34
+ uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
35
35
  with:
36
36
  python-version: "3.x"
37
37
 
38
38
  - name: Install Rust
39
- uses: dtolnay/rust-toolchain@f7ccc83f9ed1e5b9c81d8a67d7ad1a747e22a561 # master
39
+ uses: dtolnay/rust-toolchain@efa25f7f19611383d5b0ccf2d1c8914531636bf9 # master
40
40
  with:
41
41
  toolchain: stable
42
42
 
@@ -13,12 +13,12 @@ jobs:
13
13
  name: Clippy
14
14
  runs-on: ubuntu-latest
15
15
  steps:
16
- - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
16
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
17
17
  with:
18
18
  persist-credentials: false
19
19
 
20
20
  - name: Install Rust
21
- uses: dtolnay/rust-toolchain@f7ccc83f9ed1e5b9c81d8a67d7ad1a747e22a561 # master
21
+ uses: dtolnay/rust-toolchain@efa25f7f19611383d5b0ccf2d1c8914531636bf9 # master
22
22
  with:
23
23
  toolchain: stable
24
24
  components: clippy
@@ -30,12 +30,12 @@ jobs:
30
30
  name: Rustfmt
31
31
  runs-on: ubuntu-latest
32
32
  steps:
33
- - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
33
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
34
34
  with:
35
35
  persist-credentials: false
36
36
 
37
37
  - name: Install Rust
38
- uses: dtolnay/rust-toolchain@f7ccc83f9ed1e5b9c81d8a67d7ad1a747e22a561 # master
38
+ uses: dtolnay/rust-toolchain@efa25f7f19611383d5b0ccf2d1c8914531636bf9 # master
39
39
  with:
40
40
  toolchain: stable
41
41
  components: rustfmt
@@ -47,7 +47,7 @@ jobs:
47
47
  name: Ruff
48
48
  runs-on: ubuntu-latest
49
49
  steps:
50
- - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
50
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
51
51
  with:
52
52
  persist-credentials: false
53
53
 
@@ -64,12 +64,12 @@ jobs:
64
64
  name: Prettier
65
65
  runs-on: ubuntu-latest
66
66
  steps:
67
- - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
67
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
68
68
  with:
69
69
  persist-credentials: false
70
70
 
71
71
  - name: Setup Node.js
72
- uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
72
+ uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
73
73
  with:
74
74
  node-version: "20"
75
75
 
@@ -37,12 +37,12 @@ jobs:
37
37
  python_versions: "3.11 3.12 3.13 3.14"
38
38
 
39
39
  steps:
40
- - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
40
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
41
41
  with:
42
42
  persist-credentials: false
43
43
 
44
44
  - name: Set up Python
45
- uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0
45
+ uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
46
46
  with:
47
47
  python-version: "3.x"
48
48
 
@@ -51,16 +51,16 @@ jobs:
51
51
 
52
52
  - name: Set up Zig
53
53
  if: runner.os == 'Windows'
54
- uses: mlugg/setup-zig@fa65c4058643678a4e4a9a60513944a7d8d35440 # v2.1.0
54
+ uses: mlugg/setup-zig@d1434d08867e3ee9daa34448df10607b98908d29 # v2.2.1
55
55
 
56
56
  - name: Set up QEMU
57
57
  if: runner.os == 'Linux' && matrix.target == 'aarch64'
58
- uses: docker/setup-qemu-action@c7c53464625b32c7a7e944ae62b3e17d2b600130 # v3.7.0
58
+ uses: docker/setup-qemu-action@ce360397dd3f832beb865e1373c09c0e9f86d70a # v4.0.0
59
59
  with:
60
60
  platforms: arm64
61
61
 
62
62
  - name: Build wheels
63
- uses: PyO3/maturin-action@86b9d133d34bc1b40018696f782949dac11bd380 # v1.49.4
63
+ uses: PyO3/maturin-action@04ac600d27cdf7a9a280dadf7147097c42b757ad # v1.50.1
64
64
  with:
65
65
  target: ${{ matrix.target }}
66
66
  args: --release --out dist --interpreter ${{ matrix.python_versions || '3.9 3.10 3.11 3.12 3.13 3.14' }}
@@ -68,7 +68,7 @@ jobs:
68
68
  manylinux: auto
69
69
 
70
70
  - name: Upload wheels
71
- uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
71
+ uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
72
72
  with:
73
73
  name: maxminddb-rust-whl-${{ matrix.os }}-${{ matrix.target }}
74
74
  path: dist
@@ -77,18 +77,18 @@ jobs:
77
77
  name: Build source distribution
78
78
  runs-on: ubuntu-latest
79
79
  steps:
80
- - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
80
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
81
81
  with:
82
82
  persist-credentials: false
83
83
 
84
84
  - name: Build sdist
85
- uses: PyO3/maturin-action@86b9d133d34bc1b40018696f782949dac11bd380 # v1.49.4
85
+ uses: PyO3/maturin-action@04ac600d27cdf7a9a280dadf7147097c42b757ad # v1.50.1
86
86
  with:
87
87
  command: sdist
88
88
  args: --out dist
89
89
 
90
90
  - name: Upload sdist
91
- uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
91
+ uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
92
92
  with:
93
93
  name: maxminddb-rust-sdist
94
94
  path: dist
@@ -103,7 +103,7 @@ jobs:
103
103
  id-token: write
104
104
  steps:
105
105
  - name: Download artifacts
106
- uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
106
+ uses: actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3 # v8.0.0
107
107
  with:
108
108
  pattern: maxminddb-rust-*
109
109
  path: dist
@@ -21,18 +21,18 @@ jobs:
21
21
  os: [ubuntu-latest, macos-latest, windows-latest]
22
22
 
23
23
  steps:
24
- - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
24
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
25
25
  with:
26
26
  persist-credentials: false
27
27
  submodules: recursive
28
28
 
29
29
  - name: Set up Python ${{ matrix.python-version }}
30
- uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0
30
+ uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
31
31
  with:
32
32
  python-version: ${{ matrix.python-version }}
33
33
 
34
34
  - name: Install Rust
35
- uses: dtolnay/rust-toolchain@f7ccc83f9ed1e5b9c81d8a67d7ad1a747e22a561 # master
35
+ uses: dtolnay/rust-toolchain@efa25f7f19611383d5b0ccf2d1c8914531636bf9 # master
36
36
  with:
37
37
  toolchain: stable
38
38
 
@@ -17,9 +17,9 @@ jobs:
17
17
  security-events: write
18
18
  steps:
19
19
  - name: Checkout repository
20
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
20
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
21
21
  with:
22
22
  persist-credentials: false
23
23
 
24
24
  - name: Run zizmor
25
- uses: zizmorcore/zizmor-action@e639db99335bc9038abc0e066dfcd72e23d26fb4 # v0.3.0
25
+ uses: zizmorcore/zizmor-action@0dce2577a4760a2749d8cfb7a84b7d5585ebcb7d # v0.5.0
@@ -5,6 +5,47 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.5.0] - 2026-04-25
9
+
10
+ ### Performance
11
+
12
+ - Upgraded `maxminddb` crate to 0.28.0, which includes several performance
13
+ improvements.
14
+
15
+ ## [0.4.0] - 2026-02-21
16
+
17
+ ### Breaking
18
+
19
+ - `Reader.__iter__` now yields `(ipaddress.IPv4Network | ipaddress.IPv6Network, dict)`
20
+ tuples instead of `(str, dict)`. Update callers that expect string networks
21
+ to handle network objects directly, or convert with `str(network)`.
22
+
23
+ ### Changed
24
+
25
+ - Consolidated benchmark scripts under `benchmarks/` and removed
26
+ `examples/benchmark.py`.
27
+ - Updated benchmark documentation in `README.md` to match the consolidated
28
+ benchmark layout.
29
+ - Simplified internal IP parsing and iterator code paths to reduce duplication
30
+ and improve maintainability.
31
+ - Refactored database opening and reader initialization flow:
32
+ - centralized open-mode parsing/validation
33
+ - unified mmap vs memory reader loading
34
+ - centralized metadata conversion
35
+ - Dependency updates:
36
+ - upgraded `PyO3` from 0.27 to 0.28
37
+ - upgraded `maxminddb` from 0.27.1 to 0.27.3
38
+ - added `rustc-hash`
39
+
40
+ ### Performance
41
+
42
+ - Improved `get()` and `get_with_prefix_len()` throughput by optimizing decode
43
+ map-key caching:
44
+ - switched to a faster key cache strategy for Python map keys
45
+ - reduced key insertion overhead in the hot decode path
46
+ - Simplified lookup-path internals in performance-neutral ways to reduce
47
+ complexity without regressions.
48
+
8
49
  ## [0.3.0] - 2025-12-18
9
50
 
10
51
  ### Added
@@ -101,5 +142,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
101
142
  - Python 3.8+
102
143
  - CPython implementation
103
144
 
104
- [Unreleased]: https://github.com/oschwald/maxminddb-rust-python/compare/v0.1.0...HEAD
145
+ [Unreleased]: https://github.com/oschwald/maxminddb-rust-python/compare/v0.4.0...HEAD
146
+ [0.4.0]: https://github.com/oschwald/maxminddb-rust-python/compare/v0.3.0...v0.4.0
147
+ [0.3.0]: https://github.com/oschwald/maxminddb-rust-python/compare/v0.2.0...v0.3.0
148
+ [0.2.0]: https://github.com/oschwald/maxminddb-rust-python/compare/v0.1.0...v0.2.0
105
149
  [0.1.0]: https://github.com/oschwald/maxminddb-rust-python/releases/tag/v0.1.0
@@ -2,17 +2,11 @@
2
2
  # It is not intended for manual editing.
3
3
  version = 4
4
4
 
5
- [[package]]
6
- name = "autocfg"
7
- version = "1.5.0"
8
- source = "registry+https://github.com/rust-lang/crates.io-index"
9
- checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8"
10
-
11
5
  [[package]]
12
6
  name = "cc"
13
- version = "1.2.49"
7
+ version = "1.2.56"
14
8
  source = "registry+https://github.com/rust-lang/crates.io-index"
15
- checksum = "90583009037521a116abf44494efecd645ba48b6622457080f080b85544e2215"
9
+ checksum = "aebf35691d1bfb0ac386a69bac2fde4dd276fb618cf8bf4f5318fe285e821bb2"
16
10
  dependencies = [
17
11
  "find-msvc-tools",
18
12
  "shlex",
@@ -20,9 +14,9 @@ dependencies = [
20
14
 
21
15
  [[package]]
22
16
  name = "find-msvc-tools"
23
- version = "0.1.5"
17
+ version = "0.1.9"
24
18
  source = "registry+https://github.com/rust-lang/crates.io-index"
25
- checksum = "3a3076410a55c90011c298b04d0cfa770b00fa04e1e3c97d3f6c9de105a03844"
19
+ checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582"
26
20
 
27
21
  [[package]]
28
22
  name = "heck"
@@ -30,15 +24,6 @@ version = "0.5.0"
30
24
  source = "registry+https://github.com/rust-lang/crates.io-index"
31
25
  checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
32
26
 
33
- [[package]]
34
- name = "indoc"
35
- version = "2.0.7"
36
- source = "registry+https://github.com/rust-lang/crates.io-index"
37
- checksum = "79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706"
38
- dependencies = [
39
- "rustversion",
40
- ]
41
-
42
27
  [[package]]
43
28
  name = "ipnetwork"
44
29
  version = "0.21.1"
@@ -47,9 +32,9 @@ checksum = "cf370abdafd54d13e54a620e8c3e1145f28e46cc9d704bc6d94414559df41763"
47
32
 
48
33
  [[package]]
49
34
  name = "libc"
50
- version = "0.2.178"
35
+ version = "0.2.182"
51
36
  source = "registry+https://github.com/rust-lang/crates.io-index"
52
- checksum = "37c93d8daa9d8a012fd8ab92f088405fb202ea0b6ab73ee2482ae66af4f42091"
37
+ checksum = "6800badb6cb2082ffd7b6a67e6125bb39f18782f793520caee8cb8846be06112"
53
38
 
54
39
  [[package]]
55
40
  name = "log"
@@ -59,9 +44,9 @@ checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897"
59
44
 
60
45
  [[package]]
61
46
  name = "maxminddb"
62
- version = "0.27.1"
47
+ version = "0.28.0"
63
48
  source = "registry+https://github.com/rust-lang/crates.io-index"
64
- checksum = "99681a80368084e68fff1a4ec657b09ae6a04f1107762ec6346a82b8cc19d8eb"
49
+ checksum = "481123a0e5faa441c67fd55c100223198ed613b6806ed9ef884aa5f468725542"
65
50
  dependencies = [
66
51
  "ipnetwork",
67
52
  "log",
@@ -73,39 +58,31 @@ dependencies = [
73
58
 
74
59
  [[package]]
75
60
  name = "maxminddb-rust"
76
- version = "0.3.0"
61
+ version = "0.5.0"
77
62
  dependencies = [
78
63
  "ipnetwork",
79
64
  "maxminddb",
80
65
  "memmap2",
81
66
  "pyo3",
67
+ "rustc-hash",
82
68
  "serde",
83
69
  ]
84
70
 
85
71
  [[package]]
86
72
  name = "memchr"
87
- version = "2.7.6"
73
+ version = "2.8.0"
88
74
  source = "registry+https://github.com/rust-lang/crates.io-index"
89
- checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273"
75
+ checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79"
90
76
 
91
77
  [[package]]
92
78
  name = "memmap2"
93
- version = "0.9.9"
79
+ version = "0.9.10"
94
80
  source = "registry+https://github.com/rust-lang/crates.io-index"
95
- checksum = "744133e4a0e0a658e1374cf3bf8e415c4052a15a111acd372764c55b4177d490"
81
+ checksum = "714098028fe011992e1c3962653c96b2d578c4b4bce9036e15ff220319b1e0e3"
96
82
  dependencies = [
97
83
  "libc",
98
84
  ]
99
85
 
100
- [[package]]
101
- name = "memoffset"
102
- version = "0.9.1"
103
- source = "registry+https://github.com/rust-lang/crates.io-index"
104
- checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
105
- dependencies = [
106
- "autocfg",
107
- ]
108
-
109
86
  [[package]]
110
87
  name = "once_cell"
111
88
  version = "1.21.3"
@@ -114,41 +91,38 @@ checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d"
114
91
 
115
92
  [[package]]
116
93
  name = "portable-atomic"
117
- version = "1.11.1"
94
+ version = "1.13.1"
118
95
  source = "registry+https://github.com/rust-lang/crates.io-index"
119
- checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483"
96
+ checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49"
120
97
 
121
98
  [[package]]
122
99
  name = "proc-macro2"
123
- version = "1.0.103"
100
+ version = "1.0.106"
124
101
  source = "registry+https://github.com/rust-lang/crates.io-index"
125
- checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8"
102
+ checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934"
126
103
  dependencies = [
127
104
  "unicode-ident",
128
105
  ]
129
106
 
130
107
  [[package]]
131
108
  name = "pyo3"
132
- version = "0.27.2"
109
+ version = "0.28.3"
133
110
  source = "registry+https://github.com/rust-lang/crates.io-index"
134
- checksum = "ab53c047fcd1a1d2a8820fe84f05d6be69e9526be40cb03b73f86b6b03e6d87d"
111
+ checksum = "91fd8e38a3b50ed1167fb981cd6fd60147e091784c427b8f7183a7ee32c31c12"
135
112
  dependencies = [
136
- "indoc",
137
113
  "libc",
138
- "memoffset",
139
114
  "once_cell",
140
115
  "portable-atomic",
141
116
  "pyo3-build-config",
142
117
  "pyo3-ffi",
143
118
  "pyo3-macros",
144
- "unindent",
145
119
  ]
146
120
 
147
121
  [[package]]
148
122
  name = "pyo3-build-config"
149
- version = "0.27.2"
123
+ version = "0.28.3"
150
124
  source = "registry+https://github.com/rust-lang/crates.io-index"
151
- checksum = "b455933107de8642b4487ed26d912c2d899dec6114884214a0b3bb3be9261ea6"
125
+ checksum = "e368e7ddfdeb98c9bca7f8383be1648fd84ab466bf2bc015e94008db6d35611e"
152
126
  dependencies = [
153
127
  "python3-dll-a",
154
128
  "target-lexicon",
@@ -156,9 +130,9 @@ dependencies = [
156
130
 
157
131
  [[package]]
158
132
  name = "pyo3-ffi"
159
- version = "0.27.2"
133
+ version = "0.28.3"
160
134
  source = "registry+https://github.com/rust-lang/crates.io-index"
161
- checksum = "1c85c9cbfaddf651b1221594209aed57e9e5cff63c4d11d1feead529b872a089"
135
+ checksum = "7f29e10af80b1f7ccaf7f69eace800a03ecd13e883acfacc1e5d0988605f651e"
162
136
  dependencies = [
163
137
  "libc",
164
138
  "pyo3-build-config",
@@ -166,9 +140,9 @@ dependencies = [
166
140
 
167
141
  [[package]]
168
142
  name = "pyo3-macros"
169
- version = "0.27.2"
143
+ version = "0.28.3"
170
144
  source = "registry+https://github.com/rust-lang/crates.io-index"
171
- checksum = "0a5b10c9bf9888125d917fb4d2ca2d25c8df94c7ab5a52e13313a07e050a3b02"
145
+ checksum = "df6e520eff47c45997d2fc7dd8214b25dd1310918bbb2642156ef66a67f29813"
172
146
  dependencies = [
173
147
  "proc-macro2",
174
148
  "pyo3-macros-backend",
@@ -178,9 +152,9 @@ dependencies = [
178
152
 
179
153
  [[package]]
180
154
  name = "pyo3-macros-backend"
181
- version = "0.27.2"
155
+ version = "0.28.3"
182
156
  source = "registry+https://github.com/rust-lang/crates.io-index"
183
- checksum = "03b51720d314836e53327f5871d4c0cfb4fb37cc2c4a11cc71907a86342c40f9"
157
+ checksum = "c4cdc218d835738f81c2338f822078af45b4afdf8b2e33cbb5916f108b813acb"
184
158
  dependencies = [
185
159
  "heck",
186
160
  "proc-macro2",
@@ -200,18 +174,18 @@ dependencies = [
200
174
 
201
175
  [[package]]
202
176
  name = "quote"
203
- version = "1.0.42"
177
+ version = "1.0.44"
204
178
  source = "registry+https://github.com/rust-lang/crates.io-index"
205
- checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f"
179
+ checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4"
206
180
  dependencies = [
207
181
  "proc-macro2",
208
182
  ]
209
183
 
210
184
  [[package]]
211
- name = "rustversion"
212
- version = "1.0.22"
185
+ name = "rustc-hash"
186
+ version = "2.1.2"
213
187
  source = "registry+https://github.com/rust-lang/crates.io-index"
214
- checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"
188
+ checksum = "94300abf3f1ae2e2b8ffb7b58043de3d399c73fa6f4b73826402a5c457614dbe"
215
189
 
216
190
  [[package]]
217
191
  name = "serde"
@@ -257,9 +231,9 @@ checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e"
257
231
 
258
232
  [[package]]
259
233
  name = "syn"
260
- version = "2.0.111"
234
+ version = "2.0.117"
261
235
  source = "registry+https://github.com/rust-lang/crates.io-index"
262
- checksum = "390cc9a294ab71bdb1aa2e99d13be9c753cd2d7bd6560c77118597410c4d2e87"
236
+ checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99"
263
237
  dependencies = [
264
238
  "proc-macro2",
265
239
  "quote",
@@ -268,24 +242,24 @@ dependencies = [
268
242
 
269
243
  [[package]]
270
244
  name = "target-lexicon"
271
- version = "0.13.3"
245
+ version = "0.13.5"
272
246
  source = "registry+https://github.com/rust-lang/crates.io-index"
273
- checksum = "df7f62577c25e07834649fc3b39fafdc597c0a3527dc1c60129201ccfcbaa50c"
247
+ checksum = "adb6935a6f5c20170eeceb1a3835a49e12e19d792f6dd344ccc76a985ca5a6ca"
274
248
 
275
249
  [[package]]
276
250
  name = "thiserror"
277
- version = "2.0.17"
251
+ version = "2.0.18"
278
252
  source = "registry+https://github.com/rust-lang/crates.io-index"
279
- checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8"
253
+ checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4"
280
254
  dependencies = [
281
255
  "thiserror-impl",
282
256
  ]
283
257
 
284
258
  [[package]]
285
259
  name = "thiserror-impl"
286
- version = "2.0.17"
260
+ version = "2.0.18"
287
261
  source = "registry+https://github.com/rust-lang/crates.io-index"
288
- checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913"
262
+ checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5"
289
263
  dependencies = [
290
264
  "proc-macro2",
291
265
  "quote",
@@ -294,12 +268,6 @@ dependencies = [
294
268
 
295
269
  [[package]]
296
270
  name = "unicode-ident"
297
- version = "1.0.22"
298
- source = "registry+https://github.com/rust-lang/crates.io-index"
299
- checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5"
300
-
301
- [[package]]
302
- name = "unindent"
303
- version = "0.2.4"
271
+ version = "1.0.24"
304
272
  source = "registry+https://github.com/rust-lang/crates.io-index"
305
- checksum = "7264e107f553ccae879d21fbea1d6724ac785e8c3bfc762137959b5802826ef3"
273
+ checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "maxminddb-rust"
3
- version = "0.3.0"
3
+ version = "0.5.0"
4
4
  edition = "2021"
5
5
  authors = ["Gregory Oschwald <oschwald@gmail.com>"]
6
6
  description = "Rust-based Python binding for MaxMind DB - high-performance alternative to maxminddb"
@@ -14,9 +14,10 @@ crate-type = ["cdylib"]
14
14
 
15
15
  [dependencies]
16
16
  ipnetwork = "0.21"
17
- maxminddb = { version = "0.27.0", features = ["simdutf8"] }
17
+ maxminddb = { version = "0.28.0", features = ["simdutf8"] }
18
18
  memmap2 = "0.9"
19
- pyo3 = { version = "0.27.2", features = ["extension-module", "generate-import-lib"] }
19
+ pyo3 = { version = "0.28.3", features = ["extension-module", "generate-import-lib"] }
20
+ rustc-hash = "2"
20
21
  serde = "1.0"
21
22
 
22
23
  [features]