WebAssembly#
WebAssembly (sometimes abbreviated Wasm) defines a portable binary-code format and a corresponding text format for executable programs as well as software interfaces for facilitating interactions between such programs and their host environment.
The main goal of WebAssembly is to enable high-performance applications on web pages, “but it does not make any Web-specific assumptions or provide Web-specific features, so it can be employed in other environments as well.” It is an open standard and aims to support any language on any operating system, and in practice all of the most popular languages already have at least some level of support.
Read more on Wikipedia.
Sites#
Standards and interfaces#
- Component Model: A module interface
- Extism: The Universal Plug-in System
Example modules#
- Wavacity: A free, open source audio editor for the web
Runtimes#
Toolchains#
- Binaryen: Optimizer and compiler/toolchain library for WebAssembly
- Cranelift: A low-level retargetable code generator. It translates a target-independent intermediate representation into executable machine code
- Emscripten: A complete compiler toolchain to WebAssembly, using LLVM, with a special focus on speed, size, and the Web platform
- Wasienv: WASI Development Toolchain for C/C++
Tools#
wasm-pack
: Rust to Wasm workflow tool
Community#
Forums#
Companies and organizations#
News#
Showcase#
Resources#
Text#
- Wasm By Example
- Wasmer vs. Wasmtime
- [2022] Avoiding allocations in Rust to shrink Wasm modules ⭐
- [2022] Isolates, microVMs, and WebAssembly
- [2022] Performance Comparison between WASM/Yew and JavaScript/React — Part 1
- [2022] Performance Comparison between WASM/Yew and JavaScript/React — Part 2
- [2022] Recommendations when publishing a Wasm library ⭐
- [2022] The Go WebAssembly ABI at a Low Level
- [2022] The Promise of WASM
- [2022] The WebAssembly Component Model
- [2022] WebAssembly: The Future Looks Bright ⭐
- [2022] Why WebAssembly Belongs Outside the Browser
- [2020] Can WASM become the new Docker?