An industry consortium founded by Mozilla, Red Hat, Intel, and Fastly, the Bytecode Alliance promotes WebAssembly standards efforts including the WebAssembly System Interface (WASI) and the WebAssembly Component Model.
“The Bytecode Alliance doesn’t promote non-standard system interfaces that exist for WebAssembly, such as the Emscripten ABI and POSIX compatibility layer, the wasm-bindgen interfaces created by the Rust-Wasm WG, or WASIX,” said alliance co-founder and technical steering committee member Till Schneidereit, in an email response to questions.
The mission of the Bytecode Alliance is to foster the creation of new foundations for building software including WebAssembly (Wasm) and WASI, Schneidereit said. In working toward this goal, the alliance focuses on open standards wherever possible, he said.
The alliance sees the WebAssembly Component Model and WASI as strongly aligned with this mission, and believes the W3C (World Wide Web Consortium) is the right place for developing them as standards, Schneidereit said.
Announced by Wasmer May 30 and described as a superset of WASI, WASIX is a specification and toolchain to build applications with POSIX compatibility, with the intent to streamline compilation to WebAssembly.
“The main goal of WASIX is to allow any kind of program to run on top of WebAssembly including Bash, Nginx, Redis, Curl and many more popular projects that require system calls that are likely to never be accepted in WASI, such as the fork syscall,” said Syrus Akbary, Wasmer founder and CEO.
WASI, Akbary argued, is going through breaking changes that make it hard for Wasm runtime implementers to update. In the meantime, WASIX fills gaps in WASI and is backward-compatible with WASI Preview 1, said Akbary.
However, Schneidereit described WASIX as a fork of WASI. “In the Bytecode Alliance, we do not believe that this model can fundamentally be improved purely by using WebAssembly as an implementation technology, which is why we believe that the Component Model and WASI are the better approach to the key challenges software development faces—from supply chain security, to reliability, to resource efficiency, and to developer productivity,” Schneidereit said.
The WebAssembly Component Model serves as an addition to Wasm, with capabilities such as strong encapsulation of a component’s memory, the ability to link modules together, and a language-agnostic interface.
The Component Model has been endorsed by multiple WebAssembly runtimes as well as a number of different platform providers, Schneidereit said.