ferrijs 0.2.3

An embeddable JavaScript runtime on QuickJS: Node and web standard globals, ES modules and require, a capability sandbox with resource limits, and an extension model for host APIs.
Documentation

ferrijs: an embeddable JavaScript runtime on QuickJS.

A [Runtime] is one sandboxed realm: the engine, its context, the single event loop that owns them, and the policy they run under. Build one with [Runtime::builder], granting what the program may reach through [Permissions] and bounding what it may consume through [Limits]; add host API as [Extension]s; then [Runtime::eval_script] a script, [Runtime::eval_module] a compiled module, or [Runtime::run] a body of your own under the same bracket.

What every realm has: the web-standard globals (URL, fetch, Streams, crypto, TextEncoder, AbortController, Blob, structuredClone, ...), the timer globals, console, process and require, and the Node modules (node:fs, node:path, node:buffer, node:crypto, node:events, node:util, node:zlib, ...) under the same names Node serves them. Every one of them answers to the realm's permissions.