Uploaded image for project: 'Funtoo Linux'
  1. Funtoo Linux
  2. FL-12258

Add New WebAssembly based Rust+Go tooling as Autogens including Wasmtime, wasm-tools, wit-bindgen, and TinyGo

    • Icon: Improvement Improvement
    • Resolution: Unresolved
    • Icon: Minor Minor
    • None
    • None

      Now that FL-11956 has progressed to a fully code complete state, this request is to start seamlessly adding support in Funtoo for WebAssembly based tooling that is useful from a Linux systems perspective by leveraging the new Rust dynamic archive YAML autogens.

      WebAssembly has matured significantly since its original Minimal Viable Product (MVP) back in 2017 and is now branching off to the systems world with the recent launch of WebAssembly System Interface (WASI) Preview 2 (https://blog.sunfishcode.online/wasi-0-2/ ).

      WASI allows WebAssembly applications written in many different languages (C, C++, Rust, Zig, Go, Java, and more) to run outside the browser in a standalone mode and within Operating Systems like Linux. This adds general purpose to Wasm applications beyond its original specification and makes it a potential new software application type for Linux users.

      A generalized Wasm app development workflow right now is: Chose a programming language than can compile WASI Preview 2 compliant WebAssembly bytecode (right now additional tools are needed, see below), chose a Wasm runtime that can securely just-in-time compile Wasm WASI compliant bytecode to machine code and then run the Wasm application, distribute Wasm bytecode universally to users or run server-side in Wasm runtime.

      This feature request is to add four relevant and useful Rust+Go tools (by using Metatools Rust Autogens) to Funtoo Linux, which will allow Funtoo users to fully develop, debug, and generally work with WebAssembly WASI 0.2 applications natively in Funtoo more easily:

      1. wasm-tools Rust CLIDefaco CLI for low-level manipulation and debugging of Wasm modules
      2. wit-bindgen Rust CLIGuest Rust language bindings generator CLI for WIT and the Component Model
      3. Wasmtime Rust CLIA fast and secure runtime for WebAssembly, WASI compliant, and created by the Bytecode Alliance (folks making the WASI spec)
      4. TinyGoGo compiler for embedded systems and specifically WASI compliant Go WebAssembly{}
      5. BinaryenOfficially supported compiler and toolchain infrastructure library for WebAssembly, written in C++

      Proposed kits and categories for these new packages in kit-fixups:

      • dev-util/wasm-tools – dev-kit/curated
      • dev-util/wit-bindgen – dev-kit/curated
      • app-emulation/wasmtime – core-server-kit/curated
      • dev-lang/tinygo-bin – lang-kit/curated
      • sys-devel/binaryen-bin – dev-kit/curated

            siris siris
            siris siris
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: