maxminddb-rust 0.3.0__tar.gz → 0.4.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.4.0}/.github/workflows/codeql.yml +2 -2
  2. {maxminddb_rust-0.3.0 → maxminddb_rust-0.4.0}/.github/workflows/lint.yml +7 -7
  3. {maxminddb_rust-0.3.0 → maxminddb_rust-0.4.0}/.github/workflows/release.yml +5 -5
  4. {maxminddb_rust-0.3.0 → maxminddb_rust-0.4.0}/.github/workflows/test.yml +2 -2
  5. {maxminddb_rust-0.3.0 → maxminddb_rust-0.4.0}/.github/workflows/zizmor.yml +2 -2
  6. {maxminddb_rust-0.3.0 → maxminddb_rust-0.4.0}/CHANGELOG.md +38 -1
  7. {maxminddb_rust-0.3.0 → maxminddb_rust-0.4.0}/Cargo.lock +43 -75
  8. {maxminddb_rust-0.3.0 → maxminddb_rust-0.4.0}/Cargo.toml +4 -3
  9. {maxminddb_rust-0.3.0 → maxminddb_rust-0.4.0}/PKG-INFO +74 -54
  10. {maxminddb_rust-0.3.0 → maxminddb_rust-0.4.0}/README.md +67 -49
  11. {maxminddb_rust-0.3.0/examples → maxminddb_rust-0.4.0/benchmarks}/benchmark_batch.py +2 -2
  12. maxminddb_rust-0.4.0/benchmarks/benchmark_parallel.py +103 -0
  13. {maxminddb_rust-0.3.0 → maxminddb_rust-0.4.0}/examples/batch_processing.py +1 -1
  14. {maxminddb_rust-0.3.0 → maxminddb_rust-0.4.0}/pyproject.toml +6 -2
  15. {maxminddb_rust-0.3.0 → maxminddb_rust-0.4.0}/src/lib.rs +303 -217
  16. maxminddb_rust-0.4.0/uv.lock +259 -0
  17. maxminddb_rust-0.3.0/uv.lock +0 -228
  18. {maxminddb_rust-0.3.0 → maxminddb_rust-0.4.0}/.githooks/pre-commit +0 -0
  19. {maxminddb_rust-0.3.0 → maxminddb_rust-0.4.0}/.github/dependabot.yml +0 -0
  20. {maxminddb_rust-0.3.0 → maxminddb_rust-0.4.0}/.gitignore +0 -0
  21. {maxminddb_rust-0.3.0 → maxminddb_rust-0.4.0}/.gitmodules +0 -0
  22. {maxminddb_rust-0.3.0 → maxminddb_rust-0.4.0}/CONTRIBUTING.md +0 -0
  23. {maxminddb_rust-0.3.0 → maxminddb_rust-0.4.0}/LICENSE +0 -0
  24. {maxminddb_rust-0.3.0 → maxminddb_rust-0.4.0}/MIGRATION.md +0 -0
  25. {maxminddb_rust-0.3.0/examples → maxminddb_rust-0.4.0/benchmarks}/benchmark.py +0 -0
  26. {maxminddb_rust-0.3.0/examples → maxminddb_rust-0.4.0/benchmarks}/benchmark_comprehensive.py +0 -0
  27. {maxminddb_rust-0.3.0/examples → maxminddb_rust-0.4.0/benchmarks}/benchmark_path.py +0 -0
  28. {maxminddb_rust-0.3.0 → maxminddb_rust-0.4.0}/dev-bin/release.sh +0 -0
  29. {maxminddb_rust-0.3.0 → maxminddb_rust-0.4.0}/examples/basic_usage.py +0 -0
  30. {maxminddb_rust-0.3.0 → maxminddb_rust-0.4.0}/examples/context_manager.py +0 -0
  31. {maxminddb_rust-0.3.0 → maxminddb_rust-0.4.0}/examples/iterator_demo.py +0 -0
  32. {maxminddb_rust-0.3.0 → maxminddb_rust-0.4.0}/maxminddb_rust.pyi +0 -0
  33. {maxminddb_rust-0.3.0 → maxminddb_rust-0.4.0}/precious.toml +0 -0
  34. {maxminddb_rust-0.3.0 → maxminddb_rust-0.4.0}/py.typed +0 -0
  35. {maxminddb_rust-0.3.0 → maxminddb_rust-0.4.0}/tests/__init__.py +0 -0
  36. {maxminddb_rust-0.3.0 → maxminddb_rust-0.4.0}/tests/maxmind/README.md +0 -0
  37. {maxminddb_rust-0.3.0 → maxminddb_rust-0.4.0}/tests/maxmind/UPSTREAM_LICENSE +0 -0
  38. {maxminddb_rust-0.3.0 → maxminddb_rust-0.4.0}/tests/maxmind/__init__.py +0 -0
  39. {maxminddb_rust-0.3.0 → maxminddb_rust-0.4.0}/tests/maxmind/reader_test.py +0 -0
  40. {maxminddb_rust-0.3.0 → maxminddb_rust-0.4.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
@@ -36,7 +36,7 @@ jobs:
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,7 +37,7 @@ 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
 
@@ -51,7 +51,7 @@ 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'
@@ -60,7 +60,7 @@ jobs:
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@b1bd829e37fef14c63f19162034228a2f3dc1021 # v1.50.0
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' }}
@@ -77,12 +77,12 @@ 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@b1bd829e37fef14c63f19162034228a2f3dc1021 # v1.50.0
86
86
  with:
87
87
  command: sdist
88
88
  args: --out dist
@@ -21,7 +21,7 @@ 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
@@ -32,7 +32,7 @@ jobs:
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,40 @@ 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.4.0] - 2026-02-21
9
+
10
+ ### Breaking
11
+
12
+ - `Reader.__iter__` now yields `(ipaddress.IPv4Network | ipaddress.IPv6Network, dict)`
13
+ tuples instead of `(str, dict)`. Update callers that expect string networks
14
+ to handle network objects directly, or convert with `str(network)`.
15
+
16
+ ### Changed
17
+
18
+ - Consolidated benchmark scripts under `benchmarks/` and removed
19
+ `examples/benchmark.py`.
20
+ - Updated benchmark documentation in `README.md` to match the consolidated
21
+ benchmark layout.
22
+ - Simplified internal IP parsing and iterator code paths to reduce duplication
23
+ and improve maintainability.
24
+ - Refactored database opening and reader initialization flow:
25
+ - centralized open-mode parsing/validation
26
+ - unified mmap vs memory reader loading
27
+ - centralized metadata conversion
28
+ - Dependency updates:
29
+ - upgraded `PyO3` from 0.27 to 0.28
30
+ - upgraded `maxminddb` from 0.27.1 to 0.27.3
31
+ - added `rustc-hash`
32
+
33
+ ### Performance
34
+
35
+ - Improved `get()` and `get_with_prefix_len()` throughput by optimizing decode
36
+ map-key caching:
37
+ - switched to a faster key cache strategy for Python map keys
38
+ - reduced key insertion overhead in the hot decode path
39
+ - Simplified lookup-path internals in performance-neutral ways to reduce
40
+ complexity without regressions.
41
+
8
42
  ## [0.3.0] - 2025-12-18
9
43
 
10
44
  ### Added
@@ -101,5 +135,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
101
135
  - Python 3.8+
102
136
  - CPython implementation
103
137
 
104
- [Unreleased]: https://github.com/oschwald/maxminddb-rust-python/compare/v0.1.0...HEAD
138
+ [Unreleased]: https://github.com/oschwald/maxminddb-rust-python/compare/v0.4.0...HEAD
139
+ [0.4.0]: https://github.com/oschwald/maxminddb-rust-python/compare/v0.3.0...v0.4.0
140
+ [0.3.0]: https://github.com/oschwald/maxminddb-rust-python/compare/v0.2.0...v0.3.0
141
+ [0.2.0]: https://github.com/oschwald/maxminddb-rust-python/compare/v0.1.0...v0.2.0
105
142
  [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.27.3"
63
48
  source = "registry+https://github.com/rust-lang/crates.io-index"
64
- checksum = "99681a80368084e68fff1a4ec657b09ae6a04f1107762ec6346a82b8cc19d8eb"
49
+ checksum = "76371bd37ce742f8954daabd0fde7f1594ee43ac2200e20c003ba5c3d65e2192"
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.4.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.2"
133
110
  source = "registry+https://github.com/rust-lang/crates.io-index"
134
- checksum = "ab53c047fcd1a1d2a8820fe84f05d6be69e9526be40cb03b73f86b6b03e6d87d"
111
+ checksum = "cf85e27e86080aafd5a22eae58a162e133a589551542b3e5cee4beb27e54f8e1"
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.2"
150
124
  source = "registry+https://github.com/rust-lang/crates.io-index"
151
- checksum = "b455933107de8642b4487ed26d912c2d899dec6114884214a0b3bb3be9261ea6"
125
+ checksum = "8bf94ee265674bf76c09fa430b0e99c26e319c945d96ca0d5a8215f31bf81cf7"
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.2"
160
134
  source = "registry+https://github.com/rust-lang/crates.io-index"
161
- checksum = "1c85c9cbfaddf651b1221594209aed57e9e5cff63c4d11d1feead529b872a089"
135
+ checksum = "491aa5fc66d8059dd44a75f4580a2962c1862a1c2945359db36f6c2818b748dc"
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.2"
170
144
  source = "registry+https://github.com/rust-lang/crates.io-index"
171
- checksum = "0a5b10c9bf9888125d917fb4d2ca2d25c8df94c7ab5a52e13313a07e050a3b02"
145
+ checksum = "f5d671734e9d7a43449f8480f8b38115df67bef8d21f76837fa75ee7aaa5e52e"
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.2"
182
156
  source = "registry+https://github.com/rust-lang/crates.io-index"
183
- checksum = "03b51720d314836e53327f5871d4c0cfb4fb37cc2c4a11cc71907a86342c40f9"
157
+ checksum = "22faaa1ce6c430a1f71658760497291065e6450d7b5dc2bcf254d49f66ee700a"
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.1"
213
187
  source = "registry+https://github.com/rust-lang/crates.io-index"
214
- checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"
188
+ checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d"
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.4.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.27.3", features = ["simdutf8"] }
18
18
  memmap2 = "0.9"
19
- pyo3 = { version = "0.27.2", features = ["extension-module", "generate-import-lib"] }
19
+ pyo3 = { version = "0.28.2", features = ["extension-module", "generate-import-lib"] }
20
+ rustc-hash = "2"
20
21
  serde = "1.0"
21
22
 
22
23
  [features]