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

Uploaded CPython 3.9+Windows x86-64

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

Uploaded CPython 3.9+macOS 11.0+ ARM64

rom_runtime-0.0.16-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.16.tar.gz.

File metadata

  • Download URL: rom_runtime-0.0.16.tar.gz
  • Upload date:
  • Size: 156.8 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.16.tar.gz
Algorithm Hash digest
SHA256 98b000a5b5243261f537eb50aea85efda4d1c870c0d10442f830c748e755e749
MD5 4afce2392d8158f19741e9ab764d3630
BLAKE2b-256 75b23885ab94c3dfdc604d8284928d6b5d79c6a1d630345e9e66dfa1802cbcbe

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: rom_runtime-0.0.16-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.16-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 9646f31c584acd1b2a3c1dee58f5f0bc380749f776b3b3408fcb5a01ad56eab9
MD5 9d98a756aa083a6fecf2b517c34870fe
BLAKE2b-256 f696445b32c387059e92c6dcf56a92889018c70aee9c631a43fc822c66695e81

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rom_runtime-0.0.16-cp39-abi3-manylinux_2_38_x86_64.whl
Algorithm Hash digest
SHA256 49b596c05e5152f3c22f93764d9ab5404c795a7b4ae3d4a76182ec3d5bdc3421
MD5 8400a70e6137af2bfbb1d6e8562122b6
BLAKE2b-256 ad09b18e6ee209360439974c08c3e754db1d1d11bb7c1447bcd17b6b97b70031

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rom_runtime-0.0.16-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c1400d41c6ceb527b09e338347bdcccee9d7a7fb3b7b87e809da3c9848ff4778
MD5 36bba84286b0f53d9b3c917d4996be9b
BLAKE2b-256 30b56d6d9e741d601d6765be92782642a45f4f540fddd92106f8a76c9f0e2f13

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rom_runtime-0.0.16-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 e91e700720d07ff546d8e68afefc85f25d97de029e19b17081fa95d99963907f
MD5 943bf1759820d1906c274edf81ffac61
BLAKE2b-256 7ece324d2d3f85e790f64dfaf13f074f6cc43c99913cd1921b5927e34e0eb4b4

See more details on using hashes here.

Provenance

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