Here at the Bytecode Alliance, we are very excited about the potential of the WebAssembly Component Model proposal and we understand that many of you are actively exploring ways to build solutions that use WebAssembly components as well!
We have been working hard on an implementation of the proposal across many of our repositories. However, keeping track of the various versions of the tooling that are compatible with one another is not an easy undertaking.
As work on an implementation progresses, we would like to periodically publish a “matrix” of known-compatible versions of the tooling to make it easier for users to work with our component model implementation.
The compatibility matrix is a snapshot of the tooling that aligns on the underlying support for the textual and binary representations of WebAssembly components (as specified in the proposal) and also on component-model-compatible WASI interfaces.
Note that the matrix is not a guarantee of the quality of the implementation: as many of the tools are very much in active development and bugs will definitely be encountered, please consider the tooling to be a technology preview.
When the proposal and implementation have stabilized, we will announce that it is ready to use in a production environment.
Here is the current compatibility matrix for the component model tooling:
|Runtime||Bindings||WASI (preview2)||Tooling||CLI Tools|
|wasmtime (7.0.0)||wasmtime-wit-bindgen (7.0.0)||host (408f0bf)||componentize-js (0.0.3)||cargo-component (2101df5)|
|wit-bindgen-c (0.4.0)||js-preview2-shim (0.0.5)||wasm-compose (0.2.11)||jco (0.5.3)|
|wit-bindgen-go (0.2.0)||preview1-command-adapter (408f0bf)||wasm-encoder (0.25.0)||wasm-tools (1.0.28)|
|wit-bindgen-rust (0.4.0)||preview1-reactor-adapter (408f0bf)||wasm-metadata (0.3.1)||wit-bindgen (0.4.0)|
|wit-bindgen-teavm-java (0.4.0)||wasi-cap-std-sync (408f0bf)||wasmparser (0.102.0)|
|wasi-common (408f0bf)||wasmprinter (0.2.54)|
|wasi-tokio (408f0bf)||wat (1.0.61)|
The following table lists the versions of the runtime packages that are compatible:
The following table lists the versions of the host bindings generator packages that are compatible:
The following table lists the versions of the guest bindings generator packages that are compatible:
The following table lists the versions of the WASI preview2 packages that are compatible:
Note: most of the WASI preview2 packages above are from a repository serving as a prototype development fork; the intention is to merge the prototype work to upstream repositories once it is ready.
The following table lists the versions of the component tooling library packages that are compatible:
The following table lists the versions of the CLI tools that are compatible:
To get started with producing components with Rust, see the cargo-component repository.
For other languages, see the wit-bindgen repository.
If you encounter issues with the component model tooling, please file an issue in the repository for the tool you are using.
Additionally, many of the maintainers of the component model tooling are active on the Bytecode Alliance Zulip. Feel free to reach out there if you have questions or need help!