Runtimes
Runtimes: Docker & WebAssembly
Choose how your engine executes — server-side Docker or instant client-side WebAssembly in the browser.
An engine declares one or more runtimes. Verentis selects the best available runtime for each run: Docker for server-side execution, or a client-compatible WebAssembly runtime for eligible browser runs.
Docker (server-side)
The general-purpose runtime: any language, packaged as a container image.
spec:
runtimes:
docker:
image: ghcr.io/you/engine:1.0.0
pull-policy: IfNotPresent
- Best for: arbitrary languages and dependencies, heavier workloads, anything that needs a full OS userland.
- Trade-off: cold-start latency when a container must be pulled and started.
Warm pools
The platform can keep warm pools to reduce cold starts. Optimisations like warm pooling can be gated on trust signals (such as a verified first-party signature); third-party engines still run, fully sandboxed.
WebAssembly (client-side)
Run a WASM module in the browser for instant execution — no round-trip to the server.
spec:
runtimes:
wasm:
module: https://cdn.example.com/pyodide/pyodide.js
runtime: pyodide
adapter: ./browser/dist/pyodide-runner.js
client-compatible: true
The adapter is an engine-owned worker that implements the client warm/run protocol. The platform
loads it generically and ships none itself — the deliberate symmetry with docker.image. This is how a
third-party browser engine plugs in its own execution worker.
Reference the worker manifest-relative (./…) and bundle it in your package
(packaging.files) — installed packages resolve it to a child of the manifest node
(e.g. /applications/my-engine/browser/dist/pyodide-runner.js). Loose manifests may also use an absolute
workspace path or an HTTPS URL.
- Best for: instant, interactive execution (e.g. running a Python snippet inline) with zero server latency.
Server-side execution is Docker
There is deliberately no server-side WASM target. CLI, service, and API callers run through the Docker runtime; browser-capable workspace callers may select client WASM when the engine is client-compatible, has an adapter, and the script does not require server-only features.
Choosing & combining
| Need | Runtime |
|---|---|
| Any language, heavy deps | Docker |
| Instant, in-browser execution | Client WASM |
You can declare both and let the platform pick. A common pattern is Docker for full server-side runs plus client WASM for instant in-browser previews.
Next
Understand the run context, identity, and scoped tokens.