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

Uploaded CPython 3.9+Windows x86-64

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

Uploaded CPython 3.9+macOS 11.0+ ARM64

rom_runtime-0.0.17-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.17.tar.gz.

File metadata

  • Download URL: rom_runtime-0.0.17.tar.gz
  • Upload date:
  • Size: 156.9 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.17.tar.gz
Algorithm Hash digest
SHA256 8728779260d33cb579b310e5937616c40946996950501cbaea8cd539eacb50ac
MD5 4983e9a77f4d6554aab4b9a18806eeee
BLAKE2b-256 03b2c47dc5011815d33abd8bfb99914521b11b71607191f6cd7fb1fef02d2d18

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: rom_runtime-0.0.17-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.17-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 2705ed392372be54079f937cbb245861f07dc09b8c5d672e4fc39a7dacabd621
MD5 8e69f06388416ad1c96d9d17c4fc158f
BLAKE2b-256 14c9c6e8e3bd60d093f7163c529622dd7853f99fe687f12132878231ce8e4083

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rom_runtime-0.0.17-cp39-abi3-manylinux_2_38_x86_64.whl
Algorithm Hash digest
SHA256 6b73b9c07e5815b54feda14d8b8429c9349f38e4e37888fc2cf8cd3a563885d2
MD5 6d2b6b5caaec08723300f63a1529f519
BLAKE2b-256 1b11dc0ee96cc3a04c3c672c41abdaa3d15f11f9633f1c95cb169544b3ecfba2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rom_runtime-0.0.17-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4cd2b61d7d2092adece1560715131f0af8e349768d003977e0f22ce646d78754
MD5 84e872530c67ae8ee20fc17699f8f10a
BLAKE2b-256 a704aaf4dcdb77ebf550d84a6dad34830c5c11319694e2fffe3ad56261a85db3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rom_runtime-0.0.17-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 538ab269de4326b4c2967f15fc925f44290b7fcc5e8c3ce68a76032548830ef5
MD5 6d073ec43afe0b56febaf9366b5bc69b
BLAKE2b-256 fe6a0f3e0604d2a52f665b49cf5e74555be45f1a9feb602927ae7be9a1ef8b67

See more details on using hashes here.

Provenance

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