Forge is an experimental JavaScript runtime built on Mozilla's SpiderMonkey engine. Everything beneath the engine (memory management, containers, the event loop, the filesystem layer) is custom C++17 with zero external dependencies.
JavaScript, armored: Forge is designed so every package runs with only the permissions it declares.
The project is in early development. Everything there is to know about it is linked, directly or indirectly, from this page.
The industry keeps layering faster APIs and better tooling on top of the same shared foundation. Forge starts from a different question: what if the runtime were built from scratch for this era, instead of inherited from one?
That is why Forge runs on SpiderMonkey instead of V8, and why its core is written from the ground up.
And this era has a new problem. Any package you install can read your files, steal your keys, and send them anywhere, and AI agents now install packages nobody has read. Forge is being built so that cannot happen. It is its own ecosystem, not another Node: its own runtime, standard library, and package registry.
Read the full Manifesto.
Planned. In design.
Kavach (कवच, "armor") is the security layer Forge is designed around. Every package declares the access it needs, and the runtime enforces it, per package, on by default.
A package's manifest would look like this:
// forge.json (planned design)
{
"name": "@varad/weather",
"permissions": {
"net": ["api.weather.example"],
"fs": false,
"env": false
}
}setTimeout(), setInterval(), clearTimeout()queueMicrotask()fs.readFileSync(), fs.writeFileSync(), fs.appendFileSync(), fs.existsSync(), fs.mkdirSync(), fs.rmSync(), fs.statSync()fs.readFile(), fs.writeFile(), fs.appendFile(), fs.exists(), fs.mkdir(), fs.rm(), fs.stat()forge --self-test), including async tests that drive the real event loopPlatform: Windows x64. Linux and macOS support are planned.
Create a file called hello.js:
print("Hello Forge!");Run it:
forge.exe hello.js
Forge is currently built from source on Windows. See the README for build instructions.
| Benchmark | Forge | Bun | Node | Winner |
|---|---|---|---|---|
| Startup | 21.58 ms | 40.02 ms | 47.00 ms | Forge |
| JSON | 378.19 ms | 256.88 ms | 558.21 ms | Bun |
| Loop | 83.85 ms | 73.92 ms | 97.29 ms | Bun |
| Timers | 23.12 ms | 54.18 ms | 61.28 ms | Forge |
| Microtasks | 57.04 ms | 55.20 ms | 108.92 ms | Bun |
| Promise chains | 87.39 ms | 45.69 ms | 48.59 ms | Bun |
| Filesystem | 802.58 ms | 1,054.32 ms | 938.36 ms | Forge |
| Async filesystem | 935.39 ms | 1,239.99 ms | 1,413.65 ms | Forge |
Lower is better. Median of 5 runs per script on one Windows machine (2026-08-02). See the full benchmark report.
import / export)fetch, URL, streamsSee the complete roadmap.
All posts are on the blog.