node icon indicating copy to clipboard operation
node copied to clipboard

Plans on supporting wasix

Open d3lm opened this issue 1 year ago • 5 comments

What is the problem this feature will solve?

Are there any plans to support wasix at some point? What's great about wasix is that it support of the existing WASI ABI plus additional syscall to enable more real world native applications to be compiled. Also it means no breaking changes to wasi_preview1.

What is the feature you are proposing to solve the problem?

With wasix it's for example to compile the Rust compiler, curl, and other applications which is pretty huge, and not possible if you target wasi.

What alternatives have you considered?

An alternative would be to use wasmer which currently supports wasix, or to use emscripten instead to target wasm32-emscripten but that's also quite bloated. Also emscripten has quite minimal support for wasi, so the only option here is to use the wasi-sdk but that doesn't allow to compile more complex applications like curl.

d3lm avatar Aug 08 '23 20:08 d3lm

Disclaimer: everything I'm about to say is my personal opinion and not necessarily that of the project.

I regret adding WASI support to Node. I think we should remove it while it's still experimental and allow it to be implemented in userland. My reasoning is:

  1. I personally don't like the way WASI is evolving, particularly its "standardize everything under the sun" approach and concept of worlds. These worlds should live on npm since Node will never include them all in core.
  2. Most of Node's users seem largely uninterested. WASI support has been in core for a few years now and it has gotten very little attention on the issue tracker.
  3. No one seems very interested in maintaining WASI in Node.

With that said, wasix seems more appealing to me but:

  • Problems 2 and 3 above would likely continue. The lack of maintainers would be a bigger problem because we could end up maintaining WASI and wasix implementations.
  • From what I understand, wasix is essentially controlled by a single company and is not on any standards track.

cjihrig avatar Aug 08 '23 21:08 cjihrig

Yea those are fair points. I think if anything, I would merge WASI and WASIX support if it was every supported by Node.js because WASIX is just an extension similar to TS being a superset of JS. But I do see the point of WASI not gaining lots of traction at the moment and that people generally seem uninterested. On the other hand, it's a bit surprising because WASI / WASIX is getting attention and seems to be a popular choice for serverless and edge computing.

Regarding 3, yea that's true.

d3lm avatar Aug 08 '23 21:08 d3lm

On the other hand, it's a bit surprising because WASI / WASIX is getting attention and seems to be a popular choice for serverless and edge computing.

That's true. My guess is that there just isn't a huge overlap with Node. If someone wants to run wasm at the edge, there usually isn't much need to drag along the rest of the Node runtime.

cjihrig avatar Aug 08 '23 21:08 cjihrig

From what I understand, wasix is essentially controlled by a single company and is not on any standards track.

We are trying to have more entities to chime in as well, currently people from Zig, AssemblyScript and other runtimes are participating. It might be a good idea to have someone from Node as well to join: https://github.com/orgs/wasix-org/discussions/1

syrusakbary avatar Aug 10 '23 03:08 syrusakbary

There has been no activity on this feature request for 5 months and it is unlikely to be implemented. It will be closed 6 months after the last non-automated comment.

For more information on how the project manages feature requests, please consult the feature request management document.

github-actions[bot] avatar Feb 07 '24 01:02 github-actions[bot]

There has been no activity on this feature request and it is being closed. If you feel closing this issue is not the right thing to do, please leave a comment.

For more information on how the project manages feature requests, please consult the feature request management document.

github-actions[bot] avatar Mar 08 '24 01:03 github-actions[bot]

I'd love to have WASIX supported in Node!

syrusakbary avatar Mar 08 '24 14:03 syrusakbary

I request to kindly bring WASIX in nodejs as soon as possible

observer11rac avatar Apr 26 '24 10:04 observer11rac