awesome-wasm-langs icon indicating copy to clipboard operation
awesome-wasm-langs copied to clipboard

Talk about WASI

Open rambip opened this issue 4 years ago • 4 comments

I really apreciate you're referencing work !

I'm really interested in the most recent developements of webassembly, and I'm surprised you don't talk about WASI.

Wasi is a standard developed by bytealliance to be able to execute any wasm module outside the browser, by a runtime or by importing functions from another language.

There are some languages/compilers in the list that compile to webassembly, but doesn't implement this interface. As a result, you have to import some functions that are not at all standardized to run this assembly, so you must use javascript glue for I/O for example. They can't run outside the browser !!!

For example that is the case with emscripten: it implements non-standard functions, so you can't run it without javascript.

I think rust, c, cpp and go are the only languages that compile to this interface. You can look here

So it would be nice to present all the languages in a table, indicating if they compile to this standard or not.

rambip avatar Jul 18 '21 18:07 rambip

Zig has always had excellent support for WASI, too.

jedisct1 avatar Jul 18 '21 21:07 jedisct1

I haven't had the time to maintain this repo as I'm no longer actively following the WebAssembly scene. I don't mind PRs that help with this.

appcypher avatar Aug 07 '21 20:08 appcypher

I haven't had the time to maintain this repo as I'm no longer actively following the WebAssembly scene. I don't mind PRs that help with this.

This is no longer true. I will look into this

appcypher avatar Jul 14 '22 08:07 appcypher

I see this and https://github.com/appcypher/awesome-wasm-langs/issues/61 maybe being solved using some kind of tags (or symbols + legend) for the implementations, describing whether they are:

  • An interpreter runtime compiled to mostly freestanding Wasm (optionally + supporting host code)
  • An interpreter runtime compiled to WASI-compatible Wasm
  • A compiler emitting freestanding Wasm (optionally + supporting host code)
  • A compiler emitting WASI-compatible Wasm
  • A hybrid setup where the interpreter/compiler runtime is compiled to Wasm and itself emits Wasm (like WAForth for instance)

I think that would make it easier to parse at a glance whether a language implementation is suitable for a particular use case.

jpaquim avatar Sep 07 '22 11:09 jpaquim