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.15.tar.gz (152.4 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.15-cp39-abi3-win_amd64.whl (3.1 MB view details)

Uploaded CPython 3.9+Windows x86-64

rom_runtime-0.0.15-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.15-cp39-abi3-macosx_11_0_arm64.whl (2.9 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

rom_runtime-0.0.15-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.15.tar.gz.

File metadata

  • Download URL: rom_runtime-0.0.15.tar.gz
  • Upload date:
  • Size: 152.4 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.15.tar.gz
Algorithm Hash digest
SHA256 c239e048a903875bb7a51552338abbf600a80969a0f0dcabb32603bf6dba8b66
MD5 7cc998eb0a4f5284978514f4634151ee
BLAKE2b-256 8c96c0cba11ae04d782f351e63d13e4f3880ce9c233773fca70f986c7e45b1c2

See more details on using hashes here.

Provenance

The following attestation bundles were made for rom_runtime-0.0.15.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.15-cp39-abi3-win_amd64.whl.

File metadata

  • Download URL: rom_runtime-0.0.15-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.15-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 fb7e10ff3e873f46394cd156cd07a707e707aee3e32faaa7fef45ac73cd525ac
MD5 9c870475ddc6b94bdab4db578264a277
BLAKE2b-256 d266d1fa5427934914956f52cb50854176b16b03547c453196b6d6a8fa5a0bf6

See more details on using hashes here.

Provenance

The following attestation bundles were made for rom_runtime-0.0.15-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.15-cp39-abi3-manylinux_2_38_x86_64.whl.

File metadata

File hashes

Hashes for rom_runtime-0.0.15-cp39-abi3-manylinux_2_38_x86_64.whl
Algorithm Hash digest
SHA256 14fcfdecbee28713dddc32e104a6e0f9cbf36be64d25f4c1f9207d4b6758ff95
MD5 14d707559d391b1941907bef62f16599
BLAKE2b-256 138cc071c83e083965c95f7ecf75877e1238531862db5ad212d2bb3cf8920ed5

See more details on using hashes here.

Provenance

The following attestation bundles were made for rom_runtime-0.0.15-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.15-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rom_runtime-0.0.15-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a47257d7dff353d1f2ad7741954961557e4a15469986f5ceb2de9501e24b38e2
MD5 f15ad61449df88fffe56596c0dfecc94
BLAKE2b-256 aebb76863d4ec3a54e35cf7eea043781826c4bf081ae1cd3958728fadfefb784

See more details on using hashes here.

Provenance

The following attestation bundles were made for rom_runtime-0.0.15-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.15-cp39-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rom_runtime-0.0.15-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 770b55666e52db84d4f88814613e9dcabd05e1ed66ca66836f93e54d5d612900
MD5 beb069fc87885fc0113fadcc9443affd
BLAKE2b-256 8161befd9bdbb24f73bafa4b59393db4ab8241255bc7ba7251269271cd9e0207

See more details on using hashes here.

Provenance

The following attestation bundles were made for rom_runtime-0.0.15-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