Forge logo

Forge

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.



What is Forge?
A summary of the project and why it exists.
Kavach
How Forge is designed to keep packages from stealing from you.
Current progress
What already works.
Running Forge
How to run your first script.
Benchmarks
How Forge compares with Bun and Node.
Roadmap
Where the project is going next.
Blog
Notes from building Forge. Also available as RSS.
Manifesto
Why Forge exists, and why it is built this way.
Source code
The repository on GitHub.
For AI agents
A plain-text summary of Forge for AI agents and language models. Every page is also available as Markdown.

What is Forge?

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.

Kavach

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
  }
}

Current progress

Platform: Windows x64. Linux and macOS support are planned.

Running Forge

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.

Benchmarks

BenchmarkForgeBunNodeWinner
Startup21.58 ms40.02 ms47.00 msForge
JSON378.19 ms256.88 ms558.21 msBun
Loop83.85 ms73.92 ms97.29 msBun
Timers23.12 ms54.18 ms61.28 msForge
Microtasks57.04 ms55.20 ms108.92 msBun
Promise chains87.39 ms45.69 ms48.59 msBun
Filesystem802.58 ms1,054.32 ms938.36 msForge
Async filesystem935.39 ms1,239.99 ms1,413.65 msForge

Lower is better. Median of 5 runs per script on one Windows machine (2026-08-02). See the full benchmark report.

Roadmap

  1. Module system (import / export)
  2. Web-standard APIs: fetch, URL, streams
  3. Networking API and HTTP server
  4. Kavach: per-package permissions
  5. The Forge package registry
  6. One-binary toolchain: run, test, format, publish
  7. Worker threads
  8. Linux support
  9. macOS support

See the complete roadmap.

News

All posts are on the blog.


Forge is built by Varad Modhekar (X). Released under the MIT License.