wasmi-labs / wasmi

WebAssembly (Wasm) interpreter.

Home Page:https://wasmi-labs.github.io/wasmi/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Implement the Wasm `component-model` proposal

Robbepop opened this issue · comments

This is about adding support for the component-model Wasm proposal.

The component-model Wasm proposal is still in early Phase 1 and thus stabilization cannot be expected to happen soon, however, the people working on the Wasm standard are extremely convinced that it is going to become the defacto standard for all future Wasm runtimes to be supported since it is a huge enabler for the multi-language interopt vision of Wasm.

Note: component model is in Phase 1 (not 4):
https://github.com/WebAssembly/proposals?tab=readme-ov-file#phase-1---feature-proposal-cg

From what other browsers have inputted, I believe is unlikely to transition phase any time in the close horizon

@syrusakbary Thank you for the correction. I fixed the typo to avoid confusion.

I usually try to only implement phase 4+ proposals in Wasmi since that provides safety to avoid maintenance burden with changes to the spec as is common for early phase proposals. However, with the component-model I feel people are really serious about its inclusion into the standard and it seems to be in a pretty developed state already for a phase 1 proposal. I might be wrong about this though.

It is already possible to use the component model with wasmi (as long as no multi-memory is required, see #776) using the wasm_component_layer and wasmi_runtime_layer crates (the former provides component model emulation using multi-memory, the later is an adapter for the wasm_runtime_layer abstraction over various WASM runtimes).