Skip to main content

Python wrapper for the ROM browser-like runtime

Project description

rom-runtime

Python bindings for the ROM browser-like runtime.

This package exposes a thin Python API on top of ROM:

  • eval()
  • eval_async()
  • eval_json()
  • surface_snapshot()
  • fingerprint_probe()
  • run_fingerprintjs_harness()
  • fingerprintjs_version()

It prefers a native PyO3 extension when available and falls back to the ROM CLI bridge otherwise.

Install

pip install rom-runtime

Usage

from rom import RomRuntime, has_native_binding

runtime = RomRuntime(
    {
        "href": "https://example.test/",
        "referrer": "https://referrer.example/",
        "cors_enabled": False,
        "proxy_url": None,
    }
)
href = runtime.eval_async("(async () => location.href)()")
snapshot = runtime.surface_snapshot()

print("native:", has_native_binding())
print(href)
print(snapshot["fetch"])

runtime.eval_async("(async () => { globalThis.__rom_value = 42; return 'ok'; })()")
print(runtime.eval_async("(async () => String(globalThis.__rom_value))()"))

Config keys use the Rust runtime field names, so use snake_case such as cors_enabled and proxy_url. cors_enabled is False by default. When the native extension is loaded, one RomRuntime instance keeps JS globals alive across multiple eval() and eval_async() calls. For cookie seeding, the wrapper accepts serialized cookie_store, a raw cookie header string, or a cookies alias with string/object/array inputs and normalizes them automatically. For storage seeding, the wrapper accepts local_storage and session_storage as serialized JSON objects, Python dicts, or entry arrays such as [('VerifyAuthToken', 'seeded')]. The default navigator surface is Chrome-like, including navigator.userAgent, navigator.vendor, and navigator.userAgentData.

Optional native build from source

python -m pip install maturin
python -m maturin build --manifest-path bindings/gom-python/Cargo.toml --release

Tagged GitHub releases build and publish wheels for Linux, Windows, and macOS, plus an sdist for source installs.

Common methods

  • eval()
  • eval_async()
  • eval_json()
  • surface_snapshot()
  • fingerprint_probe()
  • run_fingerprintjs_harness()
  • fingerprintjs_version()

Environment

  • ROM_FORCE_CLI_BRIDGE=1: disable the native path and force CLI fallback
  • ROM_BRIDGE_BIN: explicit path to the rom_bridge executable
  • ROM_BRIDGE_CWD: working directory used by the CLI fallback

More docs

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

rom_runtime-0.0.19.tar.gz (162.0 kB view details)

Uploaded Source

Built Distributions

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

rom_runtime-0.0.19-cp39-abi3-win_amd64.whl (3.1 MB view details)

Uploaded CPython 3.9+Windows x86-64

rom_runtime-0.0.19-cp39-abi3-manylinux_2_38_x86_64.whl (3.3 MB view details)

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

rom_runtime-0.0.19-cp39-abi3-macosx_11_0_arm64.whl (2.9 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

rom_runtime-0.0.19-cp39-abi3-macosx_10_12_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.9+macOS 10.12+ x86-64

File details

Details for the file rom_runtime-0.0.19.tar.gz.

File metadata

  • Download URL: rom_runtime-0.0.19.tar.gz
  • Upload date:
  • Size: 162.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for rom_runtime-0.0.19.tar.gz
Algorithm Hash digest
SHA256 07300436be7eb857187706323eaca12522c3a944097c25a6f3134829d16db4ad
MD5 cad1751bd6798048d526f441fc749476
BLAKE2b-256 b02e21a0a64f1c73bf23d3f89ea0a50af3afdb325fb4030cd243808aecfe819a

See more details on using hashes here.

Provenance

The following attestation bundles were made for rom_runtime-0.0.19.tar.gz:

Publisher: release-bindings.yml on Rxflex/rom

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

File details

Details for the file rom_runtime-0.0.19-cp39-abi3-win_amd64.whl.

File metadata

  • Download URL: rom_runtime-0.0.19-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 3.1 MB
  • Tags: CPython 3.9+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for rom_runtime-0.0.19-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 709eb144b8abd43903ec5e6c6ef6798284dd7cd21a0a58f1bf13cd22bf1b8d53
MD5 345038f67f34bf9b9f0f4019394b8264
BLAKE2b-256 448f44bb7926a8f15c0b9f2c278df4b6c4c822e986b4c7405433295a7679dade

See more details on using hashes here.

Provenance

The following attestation bundles were made for rom_runtime-0.0.19-cp39-abi3-win_amd64.whl:

Publisher: release-bindings.yml on Rxflex/rom

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

File details

Details for the file rom_runtime-0.0.19-cp39-abi3-manylinux_2_38_x86_64.whl.

File metadata

File hashes

Hashes for rom_runtime-0.0.19-cp39-abi3-manylinux_2_38_x86_64.whl
Algorithm Hash digest
SHA256 85f11aa589d30904a6eadd59f61fb4cffde28737d3681013084a3f6a71c87b22
MD5 df8edea2295c73e296e105941e1dc131
BLAKE2b-256 56c90b5c233c1e64a4a508445ca4d40c56d3caae8c39b1cd08c62ca8c18a9a09

See more details on using hashes here.

Provenance

The following attestation bundles were made for rom_runtime-0.0.19-cp39-abi3-manylinux_2_38_x86_64.whl:

Publisher: release-bindings.yml on Rxflex/rom

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

File details

Details for the file rom_runtime-0.0.19-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rom_runtime-0.0.19-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 40d86317460c462e73da49f74b34b345acaa6bfc7a8f67f22a27c0480b91e55c
MD5 d4469523ccccd18abf919b94226e4857
BLAKE2b-256 1d931775d59d84f2a293c77a8830b7d365568197578f475a1ecef45787fc5325

See more details on using hashes here.

Provenance

The following attestation bundles were made for rom_runtime-0.0.19-cp39-abi3-macosx_11_0_arm64.whl:

Publisher: release-bindings.yml on Rxflex/rom

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

File details

Details for the file rom_runtime-0.0.19-cp39-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rom_runtime-0.0.19-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 ecc7e7fc8754ffcda3b3c28d3fcf64d4def5f879b5f63ada9dc81cab9092a2b3
MD5 796af26ea71159ae668e0b1fe90a37a1
BLAKE2b-256 3b3afa3a526e333b1f95939f919bdba7e1a3c323badef8b2439f788e3ca988d0

See more details on using hashes here.

Provenance

The following attestation bundles were made for rom_runtime-0.0.19-cp39-abi3-macosx_10_12_x86_64.whl:

Publisher: release-bindings.yml on Rxflex/rom

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