Liking cljdoc? Tell your friends :D

com.blockether.spel.driver

External Playwright driver management for native-image builds.

Instead of bundling Playwright's large Node.js driver in the native binary, this module materializes it into a local cache on first use.

Playwright shut down its prebuilt driver CDN (cdn.playwright.dev/builds/driver) in mid-2026. For Playwright Java 1.61.0+, the official upstream layout changed: driver.jar now contains playwright-core (driver/package/...) and driver-bundle.jar contains only the per-platform Node runtimes (driver/<platform>/node). This module mirrors that official layout by sourcing those same Maven artifacts, extracting only the current platform, and assembling the exact directory Playwright Java expects:

<driver-dir>/node # the Node.js runtime (node.exe on Windows) <driver-dir>/package/cli.js # the driver entry point

Source order:

  1. Clojure tools.deps resolver (local Maven cache first)
  2. Configured Maven repositories / mirrors / ~/.m2/settings.xml

Cache: ~/.cache/spel/<version>/<platform>/

Configuration (checked in order):

  1. playwright.cli.dir system property — points to pre-installed driver dir
  2. SPEL_DRIVER_DIR env var — overrides cache location
  3. Default: ~/.cache/spel/<version>/<platform>/
External Playwright driver management for native-image builds.

Instead of bundling Playwright's large Node.js driver in the native binary,
this module materializes it into a local cache on first use.

Playwright shut down its prebuilt driver CDN (cdn.playwright.dev/builds/driver)
in mid-2026. For Playwright Java 1.61.0+, the official upstream layout changed:
`driver.jar` now contains `playwright-core` (`driver/package/...`) and
`driver-bundle.jar` contains only the per-platform Node runtimes
(`driver/<platform>/node`). This module mirrors that official layout by
sourcing those same Maven artifacts, extracting only the current platform,
and assembling the exact directory Playwright Java expects:

  <driver-dir>/node              # the Node.js runtime (node.exe on Windows)
  <driver-dir>/package/cli.js    # the driver entry point

Source order:
  1. Clojure tools.deps resolver (local Maven cache first)
  2. Configured Maven repositories / mirrors / ~/.m2/settings.xml

Cache: ~/.cache/spel/<version>/<platform>/

Configuration (checked in order):
  1. playwright.cli.dir system property — points to pre-installed driver dir
  2. SPEL_DRIVER_DIR env var — overrides cache location
  3. Default: ~/.cache/spel/<version>/<platform>/
raw docstring

driver-ready?clj

(driver-ready?)

Checks if the driver is already extracted and ready to use.

Checks if the driver is already extracted and ready to use.
sourceraw docstring

ensure-driver!clj

(ensure-driver!)

Ensures the Playwright Java Node.js driver is available locally.

Materializes it from the official Playwright Java Maven artifacts on first use and sets the playwright.cli.dir system property so Playwright Java uses the external driver instead of trying to extract from bundled resources.

No-op if playwright.cli.dir is already set (for custom installations).

Ensures the Playwright Java Node.js driver is available locally.

Materializes it from the official Playwright Java Maven artifacts on first
use and sets the playwright.cli.dir system property so Playwright Java uses
the external driver instead of trying to extract from bundled resources.

No-op if playwright.cli.dir is already set (for custom installations).
sourceraw docstring

cljdoc builds & hosts documentation for Clojure/Script libraries

Keyboard shortcuts
Ctrl+kJump to recent docs
Move to previous article
Move to next article
Ctrl+/Jump to the search field
× close