From Fedora Project Wiki
(→‎Use cases: Updated for Ruby. Ruby is written by C, and the configure script has the "--host wasm32-unknown-wasi" target to build WebAssembly. See <https://github.com/ruby/ruby/blob/master/wasm/README.md>.)
 
Line 23: Line 23:
== Use cases ==
== Use cases ==
* Compile language from X to WASM with support for WASI
* Compile language from X to WASM with support for WASI
   * C (Needed by Node.js)  
   * C (Needed by Node.js and Ruby)  
   * Rust  
   * Rust
  * Ruby
* Run WebAssembly within a runtime
* Run WebAssembly within a runtime
   * Node.js (supported through V8)
   * Node.js (supported through V8)

Latest revision as of 11:19, 26 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)
  • Jun Aruga (jaruga)
  • 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 and Ruby) 
 * Rust
  • 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: