Publishing WASM wheels to PyPI for use with Pyodide
Summary
The Pyodide 314.0 release announcement, made on June 13th, 2026, confirms that Python packages built for Pyodide using the PyEmscripten platform (PEP 783) can now be published directly to PyPI and installed at runtime. This significant change alleviates a major burden on Pyodide maintainers, who previously had to build and host over 300 packages manually. The underlying PyPI support for this functionality landed on April 21st. As a demonstration, the author successfully packaged "luau-wasm", a C++-based Luau interpreter compiled to WebAssembly, publishing a 276KB "luau_wasm-0.1a0-cp314-cp314-pyemscripten_2026_0_wasm32.whl" file to PyPI. A BigQuery analysis of PyPI's public dataset reveals that 28 packages currently utilize these new "pyemscripten_202*_wasm32" tags.
Key takeaway
For Python package maintainers developing for browser-based environments, this PyPI update significantly streamlines distribution. You can now publish WebAssembly wheels directly, eliminating the previous manual review bottleneck and reducing reliance on Pyodide maintainers. Consider updating your build pipelines with cibuildwheel to include "pyemscripten_202*_wasm32" tags. This enables broader adoption of your C/C++/Rust extensions within Pyodide applications, expanding your package's reach.
Key insights
PyPI now directly supports WebAssembly (WASM) wheels for Pyodide, simplifying package distribution and reducing maintainer burden.
Principles
- PyEmscripten platform (PEP 783) defines WASM wheel compatibility.
- C/C++/Rust extensions can compile to WASM for Pyodide.
- PyPI's public dataset allows tracking platform tag adoption.
Method
Package maintainers can build and publish Pyodide wheels to PyPI using tools like cibuildwheel, similar to native wheels, then install via micropip.install().
In practice
- Distribute C/Rust extensions for browser-based Python apps.
- Integrate Luau or other C++ projects into Pyodide environments.
- Monitor WASM wheel adoption using PyPI's BigQuery dataset.
Topics
- Pyodide
- WebAssembly
- PyPI
- Python Packaging
- cibuildwheel
- PEP 783
Code references
Best for: Software Engineer, DevOps Engineer
Related on AIssential
Editorial summary, takeaway, and curation by AIssential. Original article published by Simon Willison's Weblog.