No edit summary |
(Updated the sentences about Ruby.) |
||
Line 24: | Line 24: | ||
* C (Needed by Node.js) | * C (Needed by Node.js) | ||
* Rust | * Rust | ||
* | * Ruby | ||
* Run WebAssembly within a runtime | * Run WebAssembly within a runtime | ||
* Node.js (supported through V8) | * Node.js (supported through V8) | ||
* Ruby | * Ruby | ||
* Python etc ? | |||
* Running WASM containers | * Running WASM containers | ||
* Compile interpreter to WASM to run in browser | * Compile interpreter to WASM to run in browser |
Revision as of 12:20, 25 January 2023
Welcome to WASM SIG! WebAssembly (abbreviated Wasm) is a binary instruction format for a stack-based virtual machine. Wasm is designed as a portable compilation target for programming languages, enabling deployment on the web for client and server applications.
WASM is used across various language ecosystems and technologies and the goal of this SIG is to help organize the effort of packaging and maintaining the packages while providing a good user experience.
If you're interested in joining, please send a message to the public mailing list: wasm-sig@lists.fedoraproject.org
Participants (alphabetical order)
- Carlos O'Donell (codonell)
- Ivan Font (ifont)
- Jan Stanek (jstanek)
- Michael Dawson
- Zuzana Svetlikova (zvetlik)
Communication
- Wiki (this page): https://fedoraproject.org/wiki/SIGs/WASM
- public list:
* wasm-sig@lists.fedoraproject.org * https://lists.fedoraproject.org/archives/list/wasm-sig@lists.fedoraproject.org/
- IRC: TBD
- Pagure: TBD
Use cases
- Compile language from X to WASM with support for WASI
* C (Needed by Node.js) * Rust * Ruby
- Run WebAssembly within a runtime
* Node.js (supported through V8) * Ruby * Python etc ?
- Running WASM containers
- Compile interpreter to WASM to run in browser
* Out of scope
What's needed for use cases we want to cover to start
- Compile language from X to WASM with support for WASI
* compiler support (clang) * wasi-libc
- Run WebAssembly within an language runtime like Node.js, Ruby etc.
* WASM engine (V8, wasm-edge, …), needs to be embedable
- Externalize WebAssembly bundled into languages like Node.js
* When there are WASM binaries included in a Fedora component (ie not built as part of the regular component build process), we have to be able to replace these binaries replacement which is compiled from plain sources in order to comply with: https://docs.fedoraproject.org/en-US/packaging-guidelines/what-can-be-packaged/#prebuilt-binaries-or-libraries
- Run WebAssembly stand-alone
* WASM engine (V8, wasm-edge, …)
- Run WebAssembly containesr
* WASM engine (V8, wasm-edge, …) * crun with support for WASM engine integrated/enabled.
Existing Work/Initiatives
- Jan - working on wasi-libc - https://gitlab.com/khx/fedora/wasi-libc, fork of upstream with some Fedora specific mods
* Needed by Node.js to support WASI along with compiler support, possibly Rust?
- Compiler Support
* RHEL devtools team has added support in clang for emitting WASM32 as a target from C (RHEL8+ and Fedora)
- Rust
- WAS Edge is in Fedora for (x86,arm)
- Ivan is working on getting Wasmtime into Fedora (x86, arm and s390x)
- Work is ongoing to support WASM Edge/Wasmtime in crun for WASM containers
Packages
Wishlist
List of packages needed to build or run WASM packages: