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

Uploaded CPython 3.9+Windows x86-64

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

Uploaded CPython 3.9+macOS 11.0+ ARM64

rom_runtime-0.0.12-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.12.tar.gz.

File metadata

  • Download URL: rom_runtime-0.0.12.tar.gz
  • Upload date:
  • Size: 150.2 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.12.tar.gz
Algorithm Hash digest
SHA256 be8a286c98fcd2790306d1d49e833891e10ddf33477e925efa710ff1b405555c
MD5 40d67a716abe298dffbd9d28f0653185
BLAKE2b-256 6c34d863aeae30d200e2e1e253933e142e0cadcf0ab706407099f2c8ec83e7b9

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: rom_runtime-0.0.12-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.12-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 cbfc1af8515769442db547baf4b69efd1c7cfb7e4ddcc90bae7914af6c27149a
MD5 030b4a72acd71ca0b2cca9d5a3505745
BLAKE2b-256 e7d40d59cfd266fe83495cacc6a6dc75a16795a30e1dac40b9532a15e31885a5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rom_runtime-0.0.12-cp39-abi3-manylinux_2_38_x86_64.whl
Algorithm Hash digest
SHA256 2939db105a413dfb3044cc1bef20d00852d80275e23e6dc71b6577cc7d3fa03c
MD5 3677f4a8c50aff947f6b3eecacbc4d32
BLAKE2b-256 d9972afcd0c6098a04230bc0e07c330c0d0a281ef33cef1b22b8dfa3507c90f0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rom_runtime-0.0.12-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 98eba14ee7a51443970effa3f56f04dbb0ba013799b78bed4942155d75c885b8
MD5 7d9b68655993ccab84bfe3749024b43a
BLAKE2b-256 71e3d3653902c5faa9d5fd5ba96dab5b46578a2ac0bc73431a1f801066343ddf

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rom_runtime-0.0.12-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 274b6648e8068ce27b4aec8f9a6e95efcc0c5f0715ac0d190ba1c12508aa3a4e
MD5 a83e80ae6b2c4ca1da8442a15c78ff73
BLAKE2b-256 42421859fc2bd5b87ea95aed6fcdd34c859b7bf3bd0290c106d887900a41105c

See more details on using hashes here.

Provenance

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