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

Uploaded CPython 3.9+Windows x86-64

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

Uploaded CPython 3.9+macOS 11.0+ ARM64

rom_runtime-0.0.9-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.9.tar.gz.

File metadata

  • Download URL: rom_runtime-0.0.9.tar.gz
  • Upload date:
  • Size: 143.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.9.tar.gz
Algorithm Hash digest
SHA256 1e087241c254bd4eb107022077855812d31c79ce2c4516bb0dc4f2290ad30f90
MD5 f7b8cead7e08c7ba9ca6cc332e756d8c
BLAKE2b-256 7248583e05e089ac86a0aa28eb648cb45ec2269d786026e972bb7c5e34f1e3ee

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: rom_runtime-0.0.9-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.9-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 293ef961ceab91ed329e7eec485d834051517c74c05a3ace94d9b6a2f6de6ea9
MD5 8a7a026f0e49536147e6fbe93085cefa
BLAKE2b-256 2b30081493dae05bc8b50525d88753e2528016aab4e4d84f75a9107289b2f938

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rom_runtime-0.0.9-cp39-abi3-manylinux_2_38_x86_64.whl
Algorithm Hash digest
SHA256 06a508ee49428eeabdd3822e104ef6ccada69f812987425dc8f96e8d6bac81a8
MD5 8a6320016a582df982d36f2dc86b4561
BLAKE2b-256 0b1aa66b7e3a32c3ec21bff691088822ba4a184991980d6b29bcb2b3401901bb

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rom_runtime-0.0.9-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5c98f1d08354ff079af77d6b94c269eb4f4bf1190a3269ba1db31e12a5f60998
MD5 aef157a1d4e7a194377683904e7118b8
BLAKE2b-256 f652ce0f32ab2835f779c704ad5e804a6fd66572f695c7261f924fecda9f43cc

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rom_runtime-0.0.9-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 a9e686c1303742a78bcd1a18ff022edcc2405b93455a45ba2af1c0114efaa7f4
MD5 676fc3208f85dff12ea126d86bdb1c95
BLAKE2b-256 f5d4352cce4a39ad70f34f51b78e1ed855ce19309f772227305c4a6633ae2983

See more details on using hashes here.

Provenance

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