<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Forge blog</title><description>Forge is a JavaScript runtime built from scratch on Mozilla&apos;s SpiderMonkey engine, designed so every package runs with only the permissions it declares.</description><link>https://forgeruntime.org/</link><language>en-us</language><item><title>Hello, Forge</title><link>https://forgeruntime.org/blog/hello-forge/</link><guid isPermaLink="true">https://forgeruntime.org/blog/hello-forge/</guid><description>Why I&apos;m building a JavaScript runtime from scratch on SpiderMonkey, what works today, and where Forge is going next.</description><pubDate>Mon, 19 Oct 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;A couple of months ago I looked at libuv and Tokio and thought: I want to understand this deeply enough to build my own. So I did. Forge started as an event loop, a thread pool, a file system layer, and sockets, all written from scratch in C++, running Mozilla’s SpiderMonkey engine instead of V8.&lt;/p&gt;
&lt;h2 id=&quot;what-works-today&quot;&gt;What works today&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;A native event loop built directly on Windows I/O completion ports&lt;/li&gt;
&lt;li&gt;A thread pool, so real file I/O runs off the main thread&lt;/li&gt;
&lt;li&gt;Timers and a microtask queue&lt;/li&gt;
&lt;li&gt;Seven &lt;code&gt;fs&lt;/code&gt; methods, each in a blocking and a Promise-based version&lt;/li&gt;
&lt;li&gt;A built-in &lt;code&gt;forge --self-test&lt;/code&gt; suite&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Forge starts faster than both Node and Bun in my benchmarks, and it loses some too. Promise chains are the biggest gap. The full numbers are on the &lt;a href=&quot;../../&quot;&gt;home page&lt;/a&gt; and in the &lt;a href=&quot;https://github.com/varadTheDeveloper/forge-runtime/blob/main/Forge_Benchmark_Report.md&quot;&gt;benchmark report&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;where-its-going&quot;&gt;Where it’s going&lt;/h2&gt;
&lt;p&gt;Any package you install today 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 can’t happen. With &lt;strong&gt;Kavach&lt;/strong&gt;, every package will declare what it needs and run with only those permissions, on by default.&lt;/p&gt;
&lt;p&gt;Next up: an ES module system, then web-standard APIs, and then Kavach itself.&lt;/p&gt;
&lt;p&gt;I’ll write here as I build. Follow along on &lt;a href=&quot;https://github.com/varadTheDeveloper/forge-runtime&quot;&gt;GitHub&lt;/a&gt; or &lt;a href=&quot;https://x.com/opentestudox&quot;&gt;X&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;— Varad&lt;/p&gt;
</content:encoded><category>forge</category><category>javascript</category><category>spidermonkey</category><category>security</category><author>Varad Modhekar</author></item></channel></rss>