Porffor rebuilds the JS engine as a compiler: an order of magnitude lighter in memory and binary size.

curl -fsSL https://porffor.dev/install.sh | sh

Efficiency

Porffor is an order of magnitude more memory efficient than other runtimes. On a server with 1GB of memory, Porffor fits over 1 thousand applications under load. 40x Node containers and 25x self-hosted workerd.

Node containers
28apps/GB
37 MB/app
Self-hosted workerd
45apps/GB
23 MBmemory/app
Porffor processes
1,144apps/GB
0.9 MBmemory/app

How it works

JavaScript engines are made for browsers, designed for JS (from a web page) unknown at build-time. Even though server-side JS is known at build-time existing JS runtimes cannot benefit due to their browser engines. Porffor truly compiles JS ahead-of-time like C or Rust, zero interpreting.

Porffor
JS runtimesNode, Deno, Bun
Build-timeonce
JS / TS C machine code
JS / TS JS bundle
Runtimeevery start
executed
bytecode machine code executed

Conformance

Rebuilding the JS engine requires reimplementing the entire language from scratch. Porffor tests against Test262, the official ECMAScript conformance suite. Porffor is alpha and still has a lot to do, but it is improving every commit.

Porffor compiles 238 of 394 popular npm packages, with output matching Node.

It passes 6,877 of 8,592 tests from Effect's own test suite.

Distribution

Porffor ships your program as a single file that users just run, as that is how it works. With small apps up to 50x smaller than bundling a runtime like Bun and Deno, such as this React SSR demo:

Porffor2.6 MB
Node137 MB
Deno79 MB
Bun59 MB

Porffor compiles through C, so any target with a C compiler can now run JavaScript natively: embedded devices, exotic architectures. It also supports WebAssembly, allowing incredible improvement over existing solutions which embed an interpreter.