Publishing WASM wheels to PyPI for use with Pyodide
The Pyodide 314.0 release announcement includes news that Python packages built for Pyodide (or any Python runtime compatible with the PyEmscripten platform defined in PEP 783) can now be published directly to PyPI and installed at runtime. Previously, Pyodide maintainers had to maintain, build, and host over 300 packages themselves, creating a significant burden and bottleneck. A PR to PyPI supporting this landed on April 21st. Simon Willison celebrated by packaging his Luau WebAssembly research spike from March 9th. Luau is a small, fast, embeddable programming language based on Lua with a gradual type system, developed by Roblox and released under MIT license. Using Codex + GPT-5.5 xhigh, he created the luau-wasm PyPI package, which publishes a 276KB wheel file (luau_wasm-0.1a0-cp314-cp314-pyemscripten_2026_0_wasm32.whl). It can be used in Pyodide via micropip install. The GitHub repo includes build and deploy scripts using the latest cibuildwheel and deploys an HTML demo page. Willison also queried PyPI's public dataset on BigQuery and found 28 packages currently publishing with the new pyemscripten_202*_wasm32 tags, including luau-wasm, uuid7-rs, cmm-16bit, pyOpenTTDAdmin, imgui-bundle, numbertoolkit, bashkit, geoarrow-rust-core, arro3-io, arro3-core, arro3-compute, onnx, powerfit-em, tcod, chonkie-core, tokie, robotraconteur, pydantic_core, yaml-rs, cadquery-ocp-novtk-OCP.wasm, uuid_utils, base64_utils, pycdfpp, lib3mf-OCP.wasm, typst, toml-rs, onnx-weekly, and dummy-pyodide-ext-test.
Package maintainers can now build and publish Pyodide wheels to PyPI, removing a major bottleneck for community package distribution.