Comment by syrusakbary

5 days 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!

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.

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!

  • Thanks Ben! Took us a bit to figure out the best architecture for it, but once it became clear then it was just a matter of implementing the missing bits.

    I think the fact that WASIX is much more mature now have helped to increase development speeds quite a bit!

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?

  • 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.