6/13/2026 at 9:54:18 PM
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'>
by simonw
6/13/2026 at 11:20:15 PM
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/
import micropip
await micropip.install("luau-wasm")
import luau_wasm
print(luau_wasm.execute(r'''
local animals = {"fox", "owl", "frog", "rabbit"}
table.sort(animals, function(a, b) return #a < #b end)
for i, name in animals do print(i .. ". " .. name .. " (" .. #name .. ")") end
'''))
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...
by simonw
6/14/2026 at 12:29:15 AM
`await micropip.install()` is starting to feel dangerously close to "just ship the whole universe to the browser."by willXare
6/14/2026 at 3:37:20 AM
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.
by rtpg
6/14/2026 at 3:41:45 AM
Browser caching works with stuff pulled from PyPI, so it shouldn't get loaded more than once.by simonw