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

Uploaded CPython 3.9+Windows x86-64

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

Uploaded CPython 3.9+macOS 11.0+ ARM64

rom_runtime-0.0.10-cp39-abi3-macosx_10_12_x86_64.whl (3.0 MB view details)

Uploaded CPython 3.9+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: rom_runtime-0.0.10.tar.gz
  • Upload date:
  • Size: 148.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.10.tar.gz
Algorithm Hash digest
SHA256 ddff0422be98582096736d44c5c4cfb6a7de8189b5eec6816e3b3043b5ff1f54
MD5 22cb0c15ddbb2e66f34f739559477e99
BLAKE2b-256 a313fc114e281e1a8be13f83bb2b7105d1b15e56b1246e00a61b4e6441775ea6

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: rom_runtime-0.0.10-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.10-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 10a83a7a44c2ccfc05e822f80dfd4c8ad5ad2c6939e65ccf067bb44a689c6bc0
MD5 3d13403ffa0b27fff39a4d55c2577db6
BLAKE2b-256 d08b97cd0cd76db478f864acb0cc9302a587e1795bbecb1fe15781788c92524f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rom_runtime-0.0.10-cp39-abi3-manylinux_2_38_x86_64.whl
Algorithm Hash digest
SHA256 d96d76fbd286e37c5a2eb13b1eddae3b3390426b9e0b1f768b347258eb660b21
MD5 8243fb12ec2300077d22466510fffbea
BLAKE2b-256 03919fa4fc14a87e39431bdcad73ed255b69d94ae33e44838fef9e49eda4ef46

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rom_runtime-0.0.10-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9340b591ae5ce4c42c9d62d32860b4104d556217d67691bfa5ff9918d6326d81
MD5 5f2b5a34184c6a5f6964ae27052e2de0
BLAKE2b-256 2493a5468a91d50640c0991a228c51564c4b1230ac922b1332d7da1bd1932301

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rom_runtime-0.0.10-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 9e259bff6655546282815af13ed95f008e951fbf100f3064b7f21fe76fb41867
MD5 814ad3ad1ee558f4f4087b280dee5fe9
BLAKE2b-256 38cf61ea9f1e32804aa88371872ab2a254ca512884e58337233c209f90d54f3d

See more details on using hashes here.

Provenance

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