Rust-accelerated core parser for regipy (Windows registry hive / REGF format)
Project description
regipy-rs
Rust-accelerated core parser for regipy, the OS-independent Python library for parsing offline Windows registry hives (REGF format).
Status: alpha. The Rust backend is validated 1:1 against the pure-Python parser over regipy's full test-hive corpus (every key, every value), but the API and packaging may still change.
What it is
regipy_rs is a PyO3 native extension implementing the performance-critical
parts of registry parsing: hive loading, key navigation, recursive traversal
and value decoding. It is not meant to be used directly — install it alongside
regipy and use the drop-in wrapper:
pip install regipy[rust]
from regipy.registry_rs import RegistryHive # instead of regipy.registry
reg = RegistryHive("/path/to/NTUSER.DAT")
key = reg.get_key(r"\Software\Microsoft\Windows\CurrentVersion\Run")
for value in key.iter_values(as_json=True):
print(value.name, value.value)
for entry in reg.recurse_subkeys(as_json=True):
...
The wrapper exposes the exact same API and dataclasses as
regipy.registry.RegistryHive, so existing code and all regipy plugins work
unchanged.
Parity guarantees
Output semantics intentionally match the Python parser, including its quirks
(string trimming behavior, decode order of try_decode_binary, generator
error semantics on corrupted hives). Parity is enforced by
regipy_tests/comparison_test.py, which traverses every test hive with both
backends and compares every key path, timestamp, value name, type and content.
Building from source
pip install maturin
cd regipy-rs
maturin build --release
pip install target/wheels/regipy_rs-*.whl
Benchmarks
BENCHMARKS.md contains the full report: per-hive timings, cProfile
breakdowns of both backends, SHA-256 parity digests over the complete
traversal output, and a disclaimer documenting intentional divergences.
The entire report is regenerated from source by:
python regipy-rs/benchmark.py --runs 3
See the Reproducing this report section of BENCHMARKS.md for
prerequisites and caveats.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file regipy_rs-0.1.0a1.tar.gz.
File metadata
- Download URL: regipy_rs-0.1.0a1.tar.gz
- Upload date:
- Size: 27.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8211cff86e6505f54428d3df48f8131398f1d81e265f8dd5d405e8c23ebe3adb
|
|
| MD5 |
5637f3e4e489fa36be131f02a6063c57
|
|
| BLAKE2b-256 |
381945337b521467b69414e35ac39276a05f15d5139f958e59ce215c1f642f57
|
Provenance
The following attestation bundles were made for regipy_rs-0.1.0a1.tar.gz:
Publisher:
regipy-rs.yml on mkorman90/regipy
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
regipy_rs-0.1.0a1.tar.gz -
Subject digest:
8211cff86e6505f54428d3df48f8131398f1d81e265f8dd5d405e8c23ebe3adb - Sigstore transparency entry: 2194711172
- Sigstore integration time:
-
Permalink:
mkorman90/regipy@32eaa77361cbe5ecf17e784c37c10ff6501491c6 -
Branch / Tag:
refs/tags/regipy-rs-0.1.0a1 - Owner: https://github.com/mkorman90
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
regipy-rs.yml@32eaa77361cbe5ecf17e784c37c10ff6501491c6 -
Trigger Event:
release
-
Statement type:
File details
Details for the file regipy_rs-0.1.0a1-cp39-abi3-win_amd64.whl.
File metadata
- Download URL: regipy_rs-0.1.0a1-cp39-abi3-win_amd64.whl
- Upload date:
- Size: 187.1 kB
- Tags: CPython 3.9+, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c7038d571731397db126a9df6ff681f691f4d25bcae8978f10713d542c728f6b
|
|
| MD5 |
dc29ee91583e7a1724d930a0395a9a8e
|
|
| BLAKE2b-256 |
b34f4edf0f2623153d6b48533031b909b0b77b533b1c60fd3f181a6f0e0358ec
|
Provenance
The following attestation bundles were made for regipy_rs-0.1.0a1-cp39-abi3-win_amd64.whl:
Publisher:
regipy-rs.yml on mkorman90/regipy
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
regipy_rs-0.1.0a1-cp39-abi3-win_amd64.whl -
Subject digest:
c7038d571731397db126a9df6ff681f691f4d25bcae8978f10713d542c728f6b - Sigstore transparency entry: 2194711200
- Sigstore integration time:
-
Permalink:
mkorman90/regipy@32eaa77361cbe5ecf17e784c37c10ff6501491c6 -
Branch / Tag:
refs/tags/regipy-rs-0.1.0a1 - Owner: https://github.com/mkorman90
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
regipy-rs.yml@32eaa77361cbe5ecf17e784c37c10ff6501491c6 -
Trigger Event:
release
-
Statement type:
File details
Details for the file regipy_rs-0.1.0a1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: regipy_rs-0.1.0a1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 296.4 kB
- Tags: CPython 3.9+, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e5f0ba8162565da4341e89dd849ca4c082a16fcfc0dcc703f9144397e98bee9e
|
|
| MD5 |
3005074609c507621f3e696dc36de146
|
|
| BLAKE2b-256 |
322551941b3aee5e91d5ae5c1fc7e3d65ea2f27e1ff72e2f28aa9e9f199b8cea
|
Provenance
The following attestation bundles were made for regipy_rs-0.1.0a1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
regipy-rs.yml on mkorman90/regipy
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
regipy_rs-0.1.0a1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
e5f0ba8162565da4341e89dd849ca4c082a16fcfc0dcc703f9144397e98bee9e - Sigstore transparency entry: 2194711207
- Sigstore integration time:
-
Permalink:
mkorman90/regipy@32eaa77361cbe5ecf17e784c37c10ff6501491c6 -
Branch / Tag:
refs/tags/regipy-rs-0.1.0a1 - Owner: https://github.com/mkorman90
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
regipy-rs.yml@32eaa77361cbe5ecf17e784c37c10ff6501491c6 -
Trigger Event:
release
-
Statement type:
File details
Details for the file regipy_rs-0.1.0a1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: regipy_rs-0.1.0a1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 296.5 kB
- Tags: CPython 3.9+, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8056e7bd284ea0e4b7acc9ae00f81ff5f154678b596ec9ee6625e5e0175e8425
|
|
| MD5 |
7d34cac685cdf4f023de1e04d90db8a0
|
|
| BLAKE2b-256 |
fd08464b7cc9e82e7bf3103ef3b316e80e4b4636021e275f5ce315a63bff6d0b
|
Provenance
The following attestation bundles were made for regipy_rs-0.1.0a1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:
Publisher:
regipy-rs.yml on mkorman90/regipy
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
regipy_rs-0.1.0a1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl -
Subject digest:
8056e7bd284ea0e4b7acc9ae00f81ff5f154678b596ec9ee6625e5e0175e8425 - Sigstore transparency entry: 2194711198
- Sigstore integration time:
-
Permalink:
mkorman90/regipy@32eaa77361cbe5ecf17e784c37c10ff6501491c6 -
Branch / Tag:
refs/tags/regipy-rs-0.1.0a1 - Owner: https://github.com/mkorman90
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
regipy-rs.yml@32eaa77361cbe5ecf17e784c37c10ff6501491c6 -
Trigger Event:
release
-
Statement type:
File details
Details for the file regipy_rs-0.1.0a1-cp39-abi3-macosx_11_0_arm64.whl.
File metadata
- Download URL: regipy_rs-0.1.0a1-cp39-abi3-macosx_11_0_arm64.whl
- Upload date:
- Size: 272.8 kB
- Tags: CPython 3.9+, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8d93a22917701ea33b2586a23c248d7c6d26117197effb7f40656ca0be6951c4
|
|
| MD5 |
9a8ae3457056dad84c2d790056780703
|
|
| BLAKE2b-256 |
0dac512212090705a8d593ffc288d832074dcfa77e1994d3d01a046ce620cc3b
|
Provenance
The following attestation bundles were made for regipy_rs-0.1.0a1-cp39-abi3-macosx_11_0_arm64.whl:
Publisher:
regipy-rs.yml on mkorman90/regipy
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
regipy_rs-0.1.0a1-cp39-abi3-macosx_11_0_arm64.whl -
Subject digest:
8d93a22917701ea33b2586a23c248d7c6d26117197effb7f40656ca0be6951c4 - Sigstore transparency entry: 2194711193
- Sigstore integration time:
-
Permalink:
mkorman90/regipy@32eaa77361cbe5ecf17e784c37c10ff6501491c6 -
Branch / Tag:
refs/tags/regipy-rs-0.1.0a1 - Owner: https://github.com/mkorman90
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
regipy-rs.yml@32eaa77361cbe5ecf17e784c37c10ff6501491c6 -
Trigger Event:
release
-
Statement type: