Skip to content

v0.2.0 — QuickJS executor backend

Choose a tag to compare

@robinbraemer robinbraemer released this 23 May 11:26
· 13 commits to main since this release
4f4058a

Highlights

  • New QuickJSExecutor — pure-WASM sandbox backend via quickjs-emscripten. Optional peer dependency. Auto-selected on Bun and other runtimes where isolated-vm cannot dlopen.
  • createExecutor() — runtime-aware backend picker. Use this as the default for new integrations: executor: await createExecutor({ memoryMB: 128, timeoutMs: 60_000 }).
  • Stats parityExecuteStats shape locked across backends so callers can swap transparently.
  • Shared executor contract test suite — adding a new contract test automatically covers every backend.

When to use which backend

Backend Recommended for
IsolatedVMExecutor Production on Node. Native V8 speed, mature, no upstream async bugs.
QuickJSExecutor Fallback only — runtimes where isolated-vm can't load (Bun, Cloudflare Workers, browser). See README for known upstream quickjs-emscripten@0.32.0 regressions and the Promise.all-over-sequential-await guest-code constraint.

Other changes

  • Dep bumps: vitest 3 → 4, typescript 5 → 6, jdx/mise-action v2 → v4, plus non-major patches across convex, hono, isolated-vm, tsx, zod.
  • 97/97 tests green across both executors.

Full diff: #11