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.