Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

regipy_rs-0.1.0a1.tar.gz (27.4 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

regipy_rs-0.1.0a1-cp39-abi3-win_amd64.whl (187.1 kB view details)

Uploaded CPython 3.9+Windows x86-64

regipy_rs-0.1.0a1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (296.4 kB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ x86-64

regipy_rs-0.1.0a1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (296.5 kB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ARM64

regipy_rs-0.1.0a1-cp39-abi3-macosx_11_0_arm64.whl (272.8 kB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

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

Hashes for regipy_rs-0.1.0a1.tar.gz
Algorithm Hash digest
SHA256 8211cff86e6505f54428d3df48f8131398f1d81e265f8dd5d405e8c23ebe3adb
MD5 5637f3e4e489fa36be131f02a6063c57
BLAKE2b-256 381945337b521467b69414e35ac39276a05f15d5139f958e59ce215c1f642f57

See more details on using hashes here.

Provenance

The following attestation bundles were made for regipy_rs-0.1.0a1.tar.gz:

Publisher: regipy-rs.yml on mkorman90/regipy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for regipy_rs-0.1.0a1-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 c7038d571731397db126a9df6ff681f691f4d25bcae8978f10713d542c728f6b
MD5 dc29ee91583e7a1724d930a0395a9a8e
BLAKE2b-256 b34f4edf0f2623153d6b48533031b909b0b77b533b1c60fd3f181a6f0e0358ec

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file regipy_rs-0.1.0a1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for regipy_rs-0.1.0a1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e5f0ba8162565da4341e89dd849ca4c082a16fcfc0dcc703f9144397e98bee9e
MD5 3005074609c507621f3e696dc36de146
BLAKE2b-256 322551941b3aee5e91d5ae5c1fc7e3d65ea2f27e1ff72e2f28aa9e9f199b8cea

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file regipy_rs-0.1.0a1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for regipy_rs-0.1.0a1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8056e7bd284ea0e4b7acc9ae00f81ff5f154678b596ec9ee6625e5e0175e8425
MD5 7d34cac685cdf4f023de1e04d90db8a0
BLAKE2b-256 fd08464b7cc9e82e7bf3103ef3b316e80e4b4636021e275f5ce315a63bff6d0b

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file regipy_rs-0.1.0a1-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for regipy_rs-0.1.0a1-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8d93a22917701ea33b2586a23c248d7c6d26117197effb7f40656ca0be6951c4
MD5 9a8ae3457056dad84c2d790056780703
BLAKE2b-256 0dac512212090705a8d593ffc288d832074dcfa77e1994d3d01a046ce620cc3b

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page