
Research
Node.js Fixes AsyncLocalStorage Crash Bug That Could Take Down Production Servers
Node.js patched a crash bug where AsyncLocalStorage could cause stack overflows to bypass error handlers and terminate production servers.
@grain-testing/js-runner
Advanced tools
The JavaScript runner for the Grain language.
This project makes it easier to get your Grain programs running in a JavaScript environment—either Node.js or the browser. If your Grain code is compiled in unlinked mode (--no-link), @grain/js-runner will perform module resolution and load all necessary modules.
To install the package, install it from npm:
npm install @grain/js-runner
The package provides two versions of the runner. One for the browser and one for node.
In the browser, without a bundler, add this as a script to your index.html:
<script src="node_modules/@grain/js-runner/dist/grain-runner-browser.js"></script>
<script>
// You'll also need to install the @grain/stdlib package
let locator = Grain.defaultURLLocator(["/", "node_modules/@grain/stdlib"]);
let GrainRunner = Grain.buildGrainRunner(locator);
GrainRunner.runURL("hello.gr.wasm");
</script>
The easiest way to get running in the browser is to fork the grain-web-example.
In node, you can require the runner:
let Grain = require("@grain/js-runner");
let locator = Grain.defaultFileLocator([
__dirname,
require.resolve("@grain/stdlib"),
]);
let GrainRunner = Grain.buildGrainRunner(locator);
GrainRunner.runFile("hello.gr.wasm");
You can also just use the Grain CLI to run your files, like grain run hello.gr.wasm.
MIT
FAQs
The JavaScript runner for the Grain language.
We found that @grain-testing/js-runner demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
Node.js patched a crash bug where AsyncLocalStorage could cause stack overflows to bypass error handlers and terminate production servers.

Research
/Security News
A malicious Chrome extension steals newly created MEXC API keys, exfiltrates them to Telegram, and enables full account takeover with trading and withdrawal rights.

Security News
CVE disclosures hit a record 48,185 in 2025, driven largely by vulnerabilities in third-party WordPress plugins.