From Fedora Project Wiki

Revision as of 21:07, 24 January 2023 by Mhdawson (talk | contribs)

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

 * 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 
 * possibly 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

 * 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: