From Fedora Project Wiki
No edit summary
(→‎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>.)
 
(6 intermediate revisions by 2 users not shown)
Line 9: Line 9:
* Ivan Font (ifont)
* Ivan Font (ifont)
* Jan Stanek (jstanek)
* Jan Stanek (jstanek)
* Jun Aruga (jaruga)
* Michael Dawson
* Michael Dawson
* Zuzana Svetlikova (zvetlik)
* Zuzana Svetlikova (zvetlik)
Line 17: Line 18:
   * {{fplistfull|wasm-sig}}
   * {{fplistfull|wasm-sig}}
   * https://lists.fedoraproject.org/archives/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 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 ==
* 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 ==
== Packages ==

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: