It would be nice to support WASIp3, as it would make sockets work and would unblock WASI-GFX, but, as for now, there are a few issues:
- Threads. Currently Webrogue uses WASI-Threads proposal to let guest code spawn threads. It works fine, but is not compatible with component model. To use threads with WASIp3, cooperative threads must land in stable WASI-SDK release. Wasmtime seem to already support cooperative threads. Status of cooperative threads support in JCO is unknown.
- wasmtime-wasi. An implementation of WASIp3 in Wasmtime is tied to Tokio. It should work on most OSes, but not on the wasm32-unknown-unknown. As for web, I see 2 solution. First is to implement WASIp3 on wasm32-unknown-unknown using JCO's wasi-shim. Second is to rewrite web implementation of Webrogue to use WASI and run it using JCO with some custom imports. Dependency on Tokio may become a bigger issue if Webrogue will be ported to something exotic
It would be nice to support WASIp3, as it would make sockets work and would unblock WASI-GFX, but, as for now, there are a few issues: