Faster startup https://bytecodealliance.org/articles/making-javascript-run-fast-on-webassembly ## Single-file apps Can probably use https://github.com/bytecodealliance/WASI-Virt to store Python files along w/ [[#^binary-wheels]]. Should be able to do [minimal builds of Wasmtime](https://docs.wasmtime.dev/examples-minimal.html) to help shrink the overall size. Can also use wizer to make application startup be fast. ## HTTP fetch API Create an [[HTTP fetch API]] and have that use [wasi-http](https://github.com/WebAssembly/wasi-http). This avoids OpenSSL. ## Dynamic loading of components It would definitely be nice. ## Binary wheels - [ ] Binary wheels ^binary-wheels - [ ] Figure out _how_ this would work in terms of importing - [ ] Platform tag - [x] See what the generic wheel tag is - [x] Figure out what info needs to be covered by a WASI platform tag - [ ] If not forward/backwards-compatible, decide when to freeze to WASI SDK (probably latest version as of first alpha) - [ ] Write a PEP - [ ] Tool to take an extension module wheel and `.py` files and create a single `wasm` file ### Default tag list ``` cp312-cp312-wasi_0_0_0_wasm32 cp312-abi3-wasi_0_0_0_wasm32 cp312-none-wasi_0_0_0_wasm32 cp311-abi3-wasi_0_0_0_wasm32 cp310-abi3-wasi_0_0_0_wasm32 cp39-abi3-wasi_0_0_0_wasm32 cp38-abi3-wasi_0_0_0_wasm32 cp37-abi3-wasi_0_0_0_wasm32 cp36-abi3-wasi_0_0_0_wasm32 cp35-abi3-wasi_0_0_0_wasm32 cp34-abi3-wasi_0_0_0_wasm32 cp33-abi3-wasi_0_0_0_wasm32 cp32-abi3-wasi_0_0_0_wasm32 py312-none-wasi_0_0_0_wasm32 py3-none-wasi_0_0_0_wasm32 py311-none-wasi_0_0_0_wasm32 py310-none-wasi_0_0_0_wasm32 py39-none-wasi_0_0_0_wasm32 py38-none-wasi_0_0_0_wasm32 py37-none-wasi_0_0_0_wasm32 py36-none-wasi_0_0_0_wasm32 py35-none-wasi_0_0_0_wasm32 py34-none-wasi_0_0_0_wasm32 py33-none-wasi_0_0_0_wasm32 py32-none-wasi_0_0_0_wasm32 py31-none-wasi_0_0_0_wasm32 py30-none-wasi_0_0_0_wasm32 cp312-none-any py312-none-any py3-none-any py311-none-any py310-none-any py39-none-any py38-none-any py37-none-any py36-none-any py35-none-any py34-none-any py33-none-any py32-none-any py31-none-any py30-none-any ```