Roadmap: Component Model Support
kateinoigakukun opened this issue · comments
Component Model would be one of the most significant ecosystem changes in WebAssembly: https://bytecodealliance.org/articles/webassembly-the-updated-roadmap-for-developers
Here is a list of topics to utilize Component Model in SwiftWasm:
- Support
-emit-library
with Reactor model
Currently, we only support-emit-executable
, so .wasm binary always havemain
even though it's compiled with-mexec-model=reactor
. We should allow linking .wasm without main entrypoint as a self-contained component. (Note that it does not mean we should support dynamic linking) - We can adopt WASI Preview 2, based on Component Model, using adapters:
wasi_snapshot_preview1.wasm
- Thanks to C interop, we can already export and import things using Component Model compatible tools using wit-bindgen's C code generator. If we can add Swift code generator to the wit-bindgen, it would be much easier to utilize the Component Model in Swift world.
Links
https://bytecodealliance.org/articles/component-model-tooling-compatibility
Do you know if C++ interop is coming as well? I ask because of the Xcode/SPM C++ interop added recently; thanks
@aehlke C++ interop will be shipped as a part of 5.9 corresponding release soon :)