maxminddb-rust 0.2.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.
- {maxminddb_rust-0.2.0 → maxminddb_rust-0.4.0}/.github/workflows/codeql.yml +3 -3
- {maxminddb_rust-0.2.0 → maxminddb_rust-0.4.0}/.github/workflows/lint.yml +7 -7
- {maxminddb_rust-0.2.0 → maxminddb_rust-0.4.0}/.github/workflows/release.yml +9 -9
- {maxminddb_rust-0.2.0 → maxminddb_rust-0.4.0}/.github/workflows/test.yml +3 -3
- {maxminddb_rust-0.2.0 → maxminddb_rust-0.4.0}/.github/workflows/zizmor.yml +2 -2
- {maxminddb_rust-0.2.0 → maxminddb_rust-0.4.0}/CHANGELOG.md +54 -1
- {maxminddb_rust-0.2.0 → maxminddb_rust-0.4.0}/Cargo.lock +52 -77
- {maxminddb_rust-0.2.0 → maxminddb_rust-0.4.0}/Cargo.toml +4 -3
- {maxminddb_rust-0.2.0 → maxminddb_rust-0.4.0}/PKG-INFO +94 -48
- {maxminddb_rust-0.2.0 → maxminddb_rust-0.4.0}/README.md +87 -43
- {maxminddb_rust-0.2.0/examples → maxminddb_rust-0.4.0/benchmarks}/benchmark_batch.py +2 -2
- maxminddb_rust-0.4.0/benchmarks/benchmark_parallel.py +103 -0
- maxminddb_rust-0.4.0/benchmarks/benchmark_path.py +56 -0
- {maxminddb_rust-0.2.0 → maxminddb_rust-0.4.0}/examples/batch_processing.py +1 -1
- {maxminddb_rust-0.2.0 → maxminddb_rust-0.4.0}/maxminddb_rust.pyi +27 -1
- {maxminddb_rust-0.2.0 → maxminddb_rust-0.4.0}/pyproject.toml +6 -2
- {maxminddb_rust-0.2.0 → maxminddb_rust-0.4.0}/src/lib.rs +390 -181
- maxminddb_rust-0.4.0/tests/path_test.py +91 -0
- maxminddb_rust-0.4.0/uv.lock +259 -0
- maxminddb_rust-0.2.0/uv.lock +0 -228
- {maxminddb_rust-0.2.0 → maxminddb_rust-0.4.0}/.githooks/pre-commit +0 -0
- {maxminddb_rust-0.2.0 → maxminddb_rust-0.4.0}/.github/dependabot.yml +0 -0
- {maxminddb_rust-0.2.0 → maxminddb_rust-0.4.0}/.gitignore +0 -0
- {maxminddb_rust-0.2.0 → maxminddb_rust-0.4.0}/.gitmodules +0 -0
- {maxminddb_rust-0.2.0 → maxminddb_rust-0.4.0}/CONTRIBUTING.md +0 -0
- {maxminddb_rust-0.2.0 → maxminddb_rust-0.4.0}/LICENSE +0 -0
- {maxminddb_rust-0.2.0 → maxminddb_rust-0.4.0}/MIGRATION.md +0 -0
- {maxminddb_rust-0.2.0/examples → maxminddb_rust-0.4.0/benchmarks}/benchmark.py +0 -0
- {maxminddb_rust-0.2.0 → maxminddb_rust-0.4.0/benchmarks}/benchmark_comprehensive.py +0 -0
- {maxminddb_rust-0.2.0 → maxminddb_rust-0.4.0}/dev-bin/release.sh +0 -0
- {maxminddb_rust-0.2.0 → maxminddb_rust-0.4.0}/examples/basic_usage.py +0 -0
- {maxminddb_rust-0.2.0 → maxminddb_rust-0.4.0}/examples/context_manager.py +0 -0
- {maxminddb_rust-0.2.0 → maxminddb_rust-0.4.0}/examples/iterator_demo.py +0 -0
- {maxminddb_rust-0.2.0 → maxminddb_rust-0.4.0}/precious.toml +0 -0
- {maxminddb_rust-0.2.0 → maxminddb_rust-0.4.0}/py.typed +0 -0
- {maxminddb_rust-0.2.0 → maxminddb_rust-0.4.0}/tests/__init__.py +0 -0
- {maxminddb_rust-0.2.0 → maxminddb_rust-0.4.0}/tests/maxmind/README.md +0 -0
- {maxminddb_rust-0.2.0 → maxminddb_rust-0.4.0}/tests/maxmind/UPSTREAM_LICENSE +0 -0
- {maxminddb_rust-0.2.0 → maxminddb_rust-0.4.0}/tests/maxmind/__init__.py +0 -0
- {maxminddb_rust-0.2.0 → maxminddb_rust-0.4.0}/tests/maxmind/reader_test.py +0 -0
|
@@ -21,7 +21,7 @@ jobs:
|
|
|
21
21
|
|
|
22
22
|
steps:
|
|
23
23
|
- name: Checkout repository
|
|
24
|
-
uses: actions/checkout@
|
|
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@
|
|
34
|
+
uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0
|
|
35
35
|
with:
|
|
36
36
|
python-version: "3.x"
|
|
37
37
|
|
|
38
38
|
- name: Install Rust
|
|
39
|
-
uses: dtolnay/rust-toolchain@
|
|
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@
|
|
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@
|
|
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@
|
|
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@
|
|
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@
|
|
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@
|
|
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@
|
|
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@
|
|
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@
|
|
45
|
+
uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0
|
|
46
46
|
with:
|
|
47
47
|
python-version: "3.x"
|
|
48
48
|
|
|
@@ -51,7 +51,7 @@ jobs:
|
|
|
51
51
|
|
|
52
52
|
- name: Set up Zig
|
|
53
53
|
if: runner.os == 'Windows'
|
|
54
|
-
uses: mlugg/setup-zig@
|
|
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@
|
|
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' }}
|
|
@@ -68,7 +68,7 @@ jobs:
|
|
|
68
68
|
manylinux: auto
|
|
69
69
|
|
|
70
70
|
- name: Upload wheels
|
|
71
|
-
uses: actions/upload-artifact@
|
|
71
|
+
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.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@
|
|
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@
|
|
85
|
+
uses: PyO3/maturin-action@b1bd829e37fef14c63f19162034228a2f3dc1021 # v1.50.0
|
|
86
86
|
with:
|
|
87
87
|
command: sdist
|
|
88
88
|
args: --out dist
|
|
89
89
|
|
|
90
90
|
- name: Upload sdist
|
|
91
|
-
uses: actions/upload-artifact@
|
|
91
|
+
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.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@
|
|
106
|
+
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.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@
|
|
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@
|
|
30
|
+
uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0
|
|
31
31
|
with:
|
|
32
32
|
python-version: ${{ matrix.python-version }}
|
|
33
33
|
|
|
34
34
|
- name: Install Rust
|
|
35
|
-
uses: dtolnay/rust-toolchain@
|
|
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@
|
|
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@
|
|
25
|
+
uses: zizmorcore/zizmor-action@0dce2577a4760a2749d8cfb7a84b7d5585ebcb7d # v0.5.0
|
|
@@ -5,6 +5,56 @@ 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
|
+
|
|
42
|
+
## [0.3.0] - 2025-12-18
|
|
43
|
+
|
|
44
|
+
### Added
|
|
45
|
+
|
|
46
|
+
- Added `get_path()` method to `Reader` class. This allows high-performance
|
|
47
|
+
retrieval of specific fields (e.g.,
|
|
48
|
+
`reader.get_path(ip, ('country', 'iso_code'))`) without decoding the entire
|
|
49
|
+
record. This can be over 6x faster than `get()` when only partial data is
|
|
50
|
+
needed.
|
|
51
|
+
|
|
52
|
+
### Changed
|
|
53
|
+
|
|
54
|
+
- Upgraded maxminddb crate from 0.27.0 to 0.27.1.
|
|
55
|
+
- Enabled `simdutf8` feature in `maxminddb` crate. This improves lookup
|
|
56
|
+
performance by using SIMD instructions for faster UTF-8 validation.
|
|
57
|
+
|
|
8
58
|
## [0.2.0] - 2025-11-28
|
|
9
59
|
|
|
10
60
|
### Changed
|
|
@@ -85,5 +135,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
85
135
|
- Python 3.8+
|
|
86
136
|
- CPython implementation
|
|
87
137
|
|
|
88
|
-
[Unreleased]: https://github.com/oschwald/maxminddb-rust-python/compare/v0.
|
|
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
|
|
89
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.
|
|
7
|
+
version = "1.2.56"
|
|
14
8
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
15
|
-
checksum = "
|
|
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.
|
|
17
|
+
version = "0.1.9"
|
|
24
18
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
25
|
-
checksum = "
|
|
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,64 +32,57 @@ checksum = "cf370abdafd54d13e54a620e8c3e1145f28e46cc9d704bc6d94414559df41763"
|
|
|
47
32
|
|
|
48
33
|
[[package]]
|
|
49
34
|
name = "libc"
|
|
50
|
-
version = "0.2.
|
|
35
|
+
version = "0.2.182"
|
|
51
36
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
52
|
-
checksum = "
|
|
37
|
+
checksum = "6800badb6cb2082ffd7b6a67e6125bb39f18782f793520caee8cb8846be06112"
|
|
53
38
|
|
|
54
39
|
[[package]]
|
|
55
40
|
name = "log"
|
|
56
|
-
version = "0.4.
|
|
41
|
+
version = "0.4.29"
|
|
57
42
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
58
|
-
checksum = "
|
|
43
|
+
checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897"
|
|
59
44
|
|
|
60
45
|
[[package]]
|
|
61
46
|
name = "maxminddb"
|
|
62
|
-
version = "0.27.
|
|
47
|
+
version = "0.27.3"
|
|
63
48
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
64
|
-
checksum = "
|
|
49
|
+
checksum = "76371bd37ce742f8954daabd0fde7f1594ee43ac2200e20c003ba5c3d65e2192"
|
|
65
50
|
dependencies = [
|
|
66
51
|
"ipnetwork",
|
|
67
52
|
"log",
|
|
68
53
|
"memchr",
|
|
69
54
|
"serde",
|
|
55
|
+
"simdutf8",
|
|
70
56
|
"thiserror",
|
|
71
57
|
]
|
|
72
58
|
|
|
73
59
|
[[package]]
|
|
74
60
|
name = "maxminddb-rust"
|
|
75
|
-
version = "0.
|
|
61
|
+
version = "0.4.0"
|
|
76
62
|
dependencies = [
|
|
77
63
|
"ipnetwork",
|
|
78
64
|
"maxminddb",
|
|
79
65
|
"memmap2",
|
|
80
66
|
"pyo3",
|
|
67
|
+
"rustc-hash",
|
|
81
68
|
"serde",
|
|
82
69
|
]
|
|
83
70
|
|
|
84
71
|
[[package]]
|
|
85
72
|
name = "memchr"
|
|
86
|
-
version = "2.
|
|
73
|
+
version = "2.8.0"
|
|
87
74
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
88
|
-
checksum = "
|
|
75
|
+
checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79"
|
|
89
76
|
|
|
90
77
|
[[package]]
|
|
91
78
|
name = "memmap2"
|
|
92
|
-
version = "0.9.
|
|
79
|
+
version = "0.9.10"
|
|
93
80
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
94
|
-
checksum = "
|
|
81
|
+
checksum = "714098028fe011992e1c3962653c96b2d578c4b4bce9036e15ff220319b1e0e3"
|
|
95
82
|
dependencies = [
|
|
96
83
|
"libc",
|
|
97
84
|
]
|
|
98
85
|
|
|
99
|
-
[[package]]
|
|
100
|
-
name = "memoffset"
|
|
101
|
-
version = "0.9.1"
|
|
102
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
103
|
-
checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
|
|
104
|
-
dependencies = [
|
|
105
|
-
"autocfg",
|
|
106
|
-
]
|
|
107
|
-
|
|
108
86
|
[[package]]
|
|
109
87
|
name = "once_cell"
|
|
110
88
|
version = "1.21.3"
|
|
@@ -113,41 +91,38 @@ checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d"
|
|
|
113
91
|
|
|
114
92
|
[[package]]
|
|
115
93
|
name = "portable-atomic"
|
|
116
|
-
version = "1.
|
|
94
|
+
version = "1.13.1"
|
|
117
95
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
118
|
-
checksum = "
|
|
96
|
+
checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49"
|
|
119
97
|
|
|
120
98
|
[[package]]
|
|
121
99
|
name = "proc-macro2"
|
|
122
|
-
version = "1.0.
|
|
100
|
+
version = "1.0.106"
|
|
123
101
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
124
|
-
checksum = "
|
|
102
|
+
checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934"
|
|
125
103
|
dependencies = [
|
|
126
104
|
"unicode-ident",
|
|
127
105
|
]
|
|
128
106
|
|
|
129
107
|
[[package]]
|
|
130
108
|
name = "pyo3"
|
|
131
|
-
version = "0.
|
|
109
|
+
version = "0.28.2"
|
|
132
110
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
133
|
-
checksum = "
|
|
111
|
+
checksum = "cf85e27e86080aafd5a22eae58a162e133a589551542b3e5cee4beb27e54f8e1"
|
|
134
112
|
dependencies = [
|
|
135
|
-
"indoc",
|
|
136
113
|
"libc",
|
|
137
|
-
"memoffset",
|
|
138
114
|
"once_cell",
|
|
139
115
|
"portable-atomic",
|
|
140
116
|
"pyo3-build-config",
|
|
141
117
|
"pyo3-ffi",
|
|
142
118
|
"pyo3-macros",
|
|
143
|
-
"unindent",
|
|
144
119
|
]
|
|
145
120
|
|
|
146
121
|
[[package]]
|
|
147
122
|
name = "pyo3-build-config"
|
|
148
|
-
version = "0.
|
|
123
|
+
version = "0.28.2"
|
|
149
124
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
150
|
-
checksum = "
|
|
125
|
+
checksum = "8bf94ee265674bf76c09fa430b0e99c26e319c945d96ca0d5a8215f31bf81cf7"
|
|
151
126
|
dependencies = [
|
|
152
127
|
"python3-dll-a",
|
|
153
128
|
"target-lexicon",
|
|
@@ -155,9 +130,9 @@ dependencies = [
|
|
|
155
130
|
|
|
156
131
|
[[package]]
|
|
157
132
|
name = "pyo3-ffi"
|
|
158
|
-
version = "0.
|
|
133
|
+
version = "0.28.2"
|
|
159
134
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
160
|
-
checksum = "
|
|
135
|
+
checksum = "491aa5fc66d8059dd44a75f4580a2962c1862a1c2945359db36f6c2818b748dc"
|
|
161
136
|
dependencies = [
|
|
162
137
|
"libc",
|
|
163
138
|
"pyo3-build-config",
|
|
@@ -165,9 +140,9 @@ dependencies = [
|
|
|
165
140
|
|
|
166
141
|
[[package]]
|
|
167
142
|
name = "pyo3-macros"
|
|
168
|
-
version = "0.
|
|
143
|
+
version = "0.28.2"
|
|
169
144
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
170
|
-
checksum = "
|
|
145
|
+
checksum = "f5d671734e9d7a43449f8480f8b38115df67bef8d21f76837fa75ee7aaa5e52e"
|
|
171
146
|
dependencies = [
|
|
172
147
|
"proc-macro2",
|
|
173
148
|
"pyo3-macros-backend",
|
|
@@ -177,9 +152,9 @@ dependencies = [
|
|
|
177
152
|
|
|
178
153
|
[[package]]
|
|
179
154
|
name = "pyo3-macros-backend"
|
|
180
|
-
version = "0.
|
|
155
|
+
version = "0.28.2"
|
|
181
156
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
182
|
-
checksum = "
|
|
157
|
+
checksum = "22faaa1ce6c430a1f71658760497291065e6450d7b5dc2bcf254d49f66ee700a"
|
|
183
158
|
dependencies = [
|
|
184
159
|
"heck",
|
|
185
160
|
"proc-macro2",
|
|
@@ -199,18 +174,18 @@ dependencies = [
|
|
|
199
174
|
|
|
200
175
|
[[package]]
|
|
201
176
|
name = "quote"
|
|
202
|
-
version = "1.0.
|
|
177
|
+
version = "1.0.44"
|
|
203
178
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
204
|
-
checksum = "
|
|
179
|
+
checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4"
|
|
205
180
|
dependencies = [
|
|
206
181
|
"proc-macro2",
|
|
207
182
|
]
|
|
208
183
|
|
|
209
184
|
[[package]]
|
|
210
|
-
name = "
|
|
211
|
-
version = "1.
|
|
185
|
+
name = "rustc-hash"
|
|
186
|
+
version = "2.1.1"
|
|
212
187
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
213
|
-
checksum = "
|
|
188
|
+
checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d"
|
|
214
189
|
|
|
215
190
|
[[package]]
|
|
216
191
|
name = "serde"
|
|
@@ -248,11 +223,17 @@ version = "1.3.0"
|
|
|
248
223
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
249
224
|
checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
|
|
250
225
|
|
|
226
|
+
[[package]]
|
|
227
|
+
name = "simdutf8"
|
|
228
|
+
version = "0.1.5"
|
|
229
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
230
|
+
checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e"
|
|
231
|
+
|
|
251
232
|
[[package]]
|
|
252
233
|
name = "syn"
|
|
253
|
-
version = "2.0.
|
|
234
|
+
version = "2.0.117"
|
|
254
235
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
255
|
-
checksum = "
|
|
236
|
+
checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99"
|
|
256
237
|
dependencies = [
|
|
257
238
|
"proc-macro2",
|
|
258
239
|
"quote",
|
|
@@ -261,24 +242,24 @@ dependencies = [
|
|
|
261
242
|
|
|
262
243
|
[[package]]
|
|
263
244
|
name = "target-lexicon"
|
|
264
|
-
version = "0.13.
|
|
245
|
+
version = "0.13.5"
|
|
265
246
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
266
|
-
checksum = "
|
|
247
|
+
checksum = "adb6935a6f5c20170eeceb1a3835a49e12e19d792f6dd344ccc76a985ca5a6ca"
|
|
267
248
|
|
|
268
249
|
[[package]]
|
|
269
250
|
name = "thiserror"
|
|
270
|
-
version = "2.0.
|
|
251
|
+
version = "2.0.18"
|
|
271
252
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
272
|
-
checksum = "
|
|
253
|
+
checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4"
|
|
273
254
|
dependencies = [
|
|
274
255
|
"thiserror-impl",
|
|
275
256
|
]
|
|
276
257
|
|
|
277
258
|
[[package]]
|
|
278
259
|
name = "thiserror-impl"
|
|
279
|
-
version = "2.0.
|
|
260
|
+
version = "2.0.18"
|
|
280
261
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
281
|
-
checksum = "
|
|
262
|
+
checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5"
|
|
282
263
|
dependencies = [
|
|
283
264
|
"proc-macro2",
|
|
284
265
|
"quote",
|
|
@@ -287,12 +268,6 @@ dependencies = [
|
|
|
287
268
|
|
|
288
269
|
[[package]]
|
|
289
270
|
name = "unicode-ident"
|
|
290
|
-
version = "1.0.
|
|
291
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
292
|
-
checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5"
|
|
293
|
-
|
|
294
|
-
[[package]]
|
|
295
|
-
name = "unindent"
|
|
296
|
-
version = "0.2.4"
|
|
271
|
+
version = "1.0.24"
|
|
297
272
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
298
|
-
checksum = "
|
|
273
|
+
checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[package]
|
|
2
2
|
name = "maxminddb-rust"
|
|
3
|
-
version = "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 = "0.27.
|
|
17
|
+
maxminddb = { version = "0.27.3", features = ["simdutf8"] }
|
|
18
18
|
memmap2 = "0.9"
|
|
19
|
-
pyo3 = { version = "0.
|
|
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]
|