RFC: gaps for out-of-tree WASI/WIT module support #70
matthargett
started this conversation in
General
Replies: 1 comment
|
I opened an issue for async host functions since that's something I already want to add and it should cover the async host-call side of this. I'll also take another look at the exports / extern API. The C API still needs some internal APIs there too, so there's probably some stuff we should expose / clean up anyway. For anything else I'd rather see what actually ends up being missing and add smaller APIs as needed. I'll move this to a discussion since that seems like a better fit for figuring out the integration surface. |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
I ship an Apple app (currently in TestFlight, demonstrated at HOPE 2026 conference a last month) that runs untrusted
.wasmguests on Apple TV 4K (A10X), iPhone XS (A12), and Apple Watch SE2/6 (S4, technically A14 efficiency CPU cores and slightly cut-down GPU). we currently integrated WAMR, and are evaluating TinyWasm. Our target is currentlywasm32-wasip2components on WASI 0.2.6; native capabilities are statically linked—we do not need dynamically loaded WASI modules. Most of our WASI/WIT is W3C API shaped, and I'm attributing each in-tree request to the specific module that currently works under the WAMR integration.I agree with the direction in #62: keep component handling, canonical ABI, resource tables, and custom WASI/WIT modules out of TinyWasm. It decouples maintenance overhead from a shifting standard, and lets crazy people like me innovate :D WASIp1-only users should only see negligible code-size and call-path impact that doesn't affect their low-end embedded deployment scenarios.
The concrete integration needs I can see right now are:
realloc/post-return, and resource ownership.compression-streamspasseslist<u8>chunks and stream resourcesw3c:file-system-access/read-only-file-pickerreturns a selected-file resource backed bywasi:io/streams.input-streamw3c:web-audio/realtime-renderadds short-lived WASM worklet workers and resource cleanup across threadswasi:io/pollevent-queue pattern inw3c:web-speech/speech-recognition,shape-detection-camera/live-camera-detection, and WebAudio worker notifications. Polling is a not great for Apple Watch performance or battery life on any mobile device.Which core APIs would you prefer an external layer to rely on (eg they'll be reasonably stable)? I can contribute narrow, independently tested changes when a concrete fixture demonstrates a gap we can't solve out of tree, but is there a specific place you'd like me to start?
All reactions