Remix.run Logo
syrusakbary 16 hours ago

Hi HN!

I'm Syrus, from Wasmer. We built Edge.js in a few weeks after different trials trying to bring Node.js to the Edge. We used AI and Codex heavily for this project, as otherwise the timeline would have spanned to a year plus to develop.

The summary of this announcement is that Edge.js:

  * Runs using WebAssembly when in `--safe` mode
  * It's fully compatible with Node.js (passing all their spec tests for non-VM modules)
  * It has a pluggable JS engine architecture: can work with V8, Javascript, SpiderMonkey, QuickJS, Hermes, etc.
Super happy to answer any questions you may have!
jonny_eh 15 hours ago | parent | next [-]

> * Runs using WebAssembly when in `--safe` mode

Why is safe mode opt-in?

bhelx 10 hours ago | parent | prev | next [-]

Just wanted to chime in to say this is really cool. I dreamed of building something like this for the Extism ecosystem but it was a huge lift to unlock all the pieces. This looks like lots of innovation all the way down the stack. Kudos!

gamebak 12 hours ago | parent | prev | next [-]

noob question, but how can you create a localhost:3000 port, when ported to wasm, in the browser?

I think this is a cool demo for you to show, at least in my mind this might be a little mind blowing + maybe a db?

I know there are wasm dbs availble that are very light, but so that maybe it's a plus to consider.

larsnystrom 16 hours ago | parent | prev | next [-]

Maybe I’m just dense, but it says the fs module is fully supported, so what happens when I try to read a file from disk if the app is fully sandboxed?

syrusakbary 16 hours ago | parent [-]

Only the current working directory will be exposed/mounted to the runtime (we do this to facilitate the DX when running local files without requiring the user to add extra flags).

As a fun exercise, you can try reading process.cwd() from edge in --safe mode and without it.

Onavo 14 hours ago | parent | prev [-]

What's the Next.js compatibility like?

syrusakbary 14 hours ago | parent [-]

Edge.js is fully compatible with Next.js