This file contains an overview of the more important elements of the WebAssembly ecousystem.
WebAssembly Binary: a .wasm file that represents a webassembly file in binary format. The specification of the binary format can be found here
WebAssembly Text: an s-expression based human-readable text representation of a webassembly binary
WIT: WebAssembly Interface Types. An IDL meant for specifying the interface a webassembly component implements. WIT files are used to generate host/client code to interact with WASM binary files.
Main github organization for the webassembly standards and tooling.
WASI
Repo for standardizing the WebAssembly systems interface that allows WASM modules to interact with their execution environment. Currently on version 'preview1'.
Specification
The specification and reference interpreter for core webassembly.
Proposals
Tracking repository for proposals to modify the specification.
WIT implementations
The WebAssembly organization contains many implementations of WIT worlds that are in one stage of the standardization process or another. The most interesting are the wasi-*
worlds that are going to be a part of wasi preview2 and preview3.
WABT
Toolkit for interacting with WASM binaries. Main uses:
- Translating to and from WASM binary and WebAssembly Text
- Dumping metadata about wasm binaries
- Manipulate sections
People working to develop standards and tooling for WebAssembly.
Wasmtime
A webassembly runtime with bindings for several programming languages. As this runtime is built by the people that are very closely connected to the WASM/WASI standardization process i trust this the most. It is going to have the latest features first and is going to be built with alignment to the specifications and standards.
wasm-tools
Webassembly toolkit. Similar to WABT but additionally includes utilities to work with WASM components. Prefer this over WABT or install both.
wit-bindgen
Tooling to generate source code in several different programming languages from WIT interfaces. Allows applications to interact with WASM components.
wit-deps
'Package manager' for WebAssembly interfaces. Allows a project to specify which interfaces are needed and keeps them up-to-date.
cargo-component
Cargo subcommand for creating WebAssembly components based on the component model proposal. Only used for rust-based component development.
registry (WARG)
Specification and reference implementation of a webassembly component registry.
wizer
Tooling to pre-initialize some state into a webassembly binary. Might create significant startup time improvements.
spiderlightning: A set of WebAssembly interfaces to build cloud applications with. Now deprecated and being standardized in WASI preview2 as the cloud-core world.
krustlet: run webassembly in kubernetes.