Comment by simonw
1 day ago
I've been looking forward to this for ages!
This means we can now take any C/Rust/whatever extension for Python, compile that as a `.wasm` extension, and then load it directly in browser Pyodide projects using:
await micropip.install("package-on-pypi")
import package_name
Here's how to try the new feature out. Visit https://pyodide.org/en/stable/console.html and type:
import micropip
await micropip.install("pydantic_core")
import pydantic_core
That gets you this WASM wheel: https://pypi.org/project/pydantic_core/#pydantic_core-2.47.0...
You can tell that it's got compiled code in (and not just Python) by running:
pydantic_core._pydantic_core
I get this:
<module 'pydantic_core._pydantic_core' from '/lib/python3.14/site-packages/pydantic_core/_pydantic_core.cpython-314-wasm32-emscripten.so'>
I had an older experimental Pyodide WASM project lying around (a packaging of the Luau language by Roblox) so I had Codex package that up for me and pushed it to PyPI.
Here's the package: https://pypi.org/project/luau-wasm/
And an interactive demo page where you can try it out: https://simonw.github.io/luau-wasm/
Wrote about this in more detail on my blog: https://simonwillison.net/2026/Jun/13/publishing-wasm-wheels...
`await micropip.install()` is starting to feel dangerously close to "just ship the whole universe to the browser."
Is there any form of client-side caching that kicks in with all of this flow?
Tbh I don't feel great about people just writing up a bunch of scripts pulling things just on every run.
Browser caching works with stuff pulled from PyPI, so it shouldn't get loaded more than once.
Here are all of the existing emscripten-forge recipes for building WASM packages: > jupyterlite-xeus supports environment.yml with jupyterlite with packages from emscripten-forge: https://jupyterlite-xeus.readthedocs.io/en/latest/environmen...
emscripten-forge was a Quetz repo built with but is now hosted on prefix.dev.
From - API Reference
- Hacker News RSS
- Source on GitHub
- Support Ukraine
- Equal Justice Initiative
- GiveWell Charities
Slacker News
Product
Community