Mozilla, Fastly, Intel, and Red Hat are the founding members of the newly-formed Bytecode Alliance, an open source community dedicated to creating new software foundations, building on standards such as WebAssembly and WebAssembly System Interface (WASI).
The Bytecode Alliance will, through the joint efforts of its contributing members, "deliver a runtime environment and associated language toolchains, where security, efficiency, and modularity can all coexist across the widest possible range of devices and architectures." Technologies contributed and collaboratively evolved through the Alliance leverage established innovation in compilers, runtimes, and tooling, and focus on fine-grained sandboxing, capabilities-based security, modularity, and standards such as WebAssembly and WASI.
Today, support for WebAssembly is part of all of the major browser engines.
Founding members are making several open source project contributions to the Bytecode Alliance, including:
- Wasmtime, a small and efficient runtime for WebAssembly & WASI
- Lucet, an ahead-of-time compiler and runtime for WebAssembly & WASI focused on low-latency, high-concurrency applications
- WebAssembly Micro Runtime (WAMR), an interpreter-based WebAssembly runtime for embedded devices
- Cranelift, a cross-platform code generator with a focus on security and performance, written in Rust
The main projects are licensed under the Apache 2.0 license + LLVM exception (which ensures GPL compatibility). Some supporting projects are licensed under Apache 2.0/MIT dual license.
The Bytecode Alliance aims to cover as many hardware and OS configurations as possible. Right now, the architectures covered are:
- Wasmtime and Cranelift are officially supported and tested on Linux, macOS 10.9+, and Windows 10 on x86_64, and reported to work on FreeBSD on x86_64.
- Lucet is officially supported and tested on Linux and macOS 10.9+ on x86_64.
- WAMR runs under Linux, macOS, Zephyr, AliOS Things, and VxWorks and has support for x86_32, x86_64, Arm, and MIPS.
Different use cases are best served by different execution modes, or a mix of execution modes. Right now, the execution modes covered are:
- Interpreter in WAMR
- Baseline and optimizing JIT in Wasmtime through Lightbeam and Cranelift
- AoT in Wasmtime/Cranelift and in Lucet
Full support for all these execution modes, including tiering where applicable, is planned for Wasmtime.
Modern software applications and services are built from global repositories of shared components and frameworks, which accelerates creation of new and better multi-device experiences but understandably increases concerns about trust, data integrity, and system vulnerability. The Bytecode Alliance is committed to establishing a capable, secure platform that allows application developers and service providers to confidently run untrusted code, on any infrastructure, for any operating system or device, leveraging the experience doing so inside web browsers.