Topic hub

Python WebAssembly

Coverage of running Python via WebAssembly and lightweight interpreters, including browser ports, sandboxed runtimes, and related tooling.

24 briefs

Latest in Python WebAssembly

Simon WillisonNEWSLETTER

WASM wheels on PyPI: publish packages for Pyodide browsers

Developers can publish WebAssembly wheels to PyPI so Python packages are distributed prebuilt for use with Pyodide in the browser.

The Brieftide Daily

Briefs on Python WebAssembly, in your inbox.

Plus everything else from the frontier, edited down to a two-minute read each morning.

 

About Python WebAssembly

python wasm opens the ability to run Python interpreters and user code inside WebAssembly runtimes, enabling browser ports, edge sandboxes, and embedded use cases. Interest has grown as projects bring CPython, Pyodide, and MicroPython into wasm, creating new ways to run Python without a traditional system install and offering safer isolation than native processes.

What this beat covers

This beat follows multiple layers at once: browser-focused runtimes that execute Python modules in client contexts, minimal interpreters like MicroPython compiled to WebAssembly for constrained environments, and sandboxed server or edge runtimes that use wasm to limit resource and syscalls. Coverage spans runtime internals, packaging and distribution of Python packages for wasm, compatibility with native extension modules, integration with WASI and emerging WebAssembly proposals, developer tooling for bundling, debugging, and performance, plus real-world use cases such as interactive data notebooks, embedded device scripting, and secure plugin sandboxes.

Key sub-areas and tensions

  • Runtime tradeoffs: Full CPython builds in wasm, such as Pyodide, aim for broad compatibility with the Python ecosystem, but their larger size and longer startup contrast with MicroPython ports that prioritize tiny footprints and fast startup at the cost of missing modules and language features.

  • Packaging and extensions: C extension modules and binary wheels are a core friction point. Solutions include reimplementing critical libraries in pure Python or WebAssembly, compiling native dependencies to wasm, or using server-side proxies. Each approach affects performance and compatibility differently.

  • Security and sandboxing: WebAssembly provides a capability-based isolation model, yet file system emulation, network access, and host APIs must be carefully gated. The interplay between browser permissions, WASI, and host embedding determines how safe and usable a python wasm runtime becomes.

  • Performance and observability: JIT support remains limited in many wasm environments, so performance tuning focuses on interpreter optimizations, precompiled packages, and reducing startup overhead. Tooling for profiling and debugging across the wasm boundary is still immature.

What to look for are standards work on WASI extensions, improvements in packaging and build tools, and adoption signals from developer tooling and real projects.

What to watch

  • Adoption of WASI networking and filesystem proposals, which would expand server and edge use cases.
  • Progress on compiling popular C-backed libraries to wasm or providing compatible pure-Python fallbacks.
  • Releases and demos from MicroPython-WASM and Pyodide that reduce size and improve startup.
  • Tooling that simplifies packaging wheels and debugging across the wasm boundary.
Python WebAssembly Concept Map
Python WebAssemblyBrowser runtimes (Pyodide)Lightweight interpreters (MicroPython)WASI and host integrationPackaging and extensionsSecurity and sandboxing

More briefs in Python WebAssembly

  1. MicroPython WebAssembly sandbox by Simon Willison with demoSimon Willison
  2. Wasmer used Codex to build Node.js edge runtime with GPT-5.5OpenAI
  3. Hugging Face adds MCP Tools to Reachy Mini: drivers & demosHugging Face
  4. datasette-agent-micropython 0.1a0: run Agents on MicroPythonSimon Willison
  5. micropython-wasm 0.1a1 alpha brings MicroPython to WebAssemblySimon Willison
  6. Pasted File Editor: Paste and Edit Files in Browser DemoSimon Willison
  7. MicroPython-WASM 0.1a0 alpha release: run MicroPython in WASMSimon Willison
  8. Simon Willison May 2026 newsletter: atom-everything feed guideSimon Willison
  9. Run ASGI in Browser with Pyodide and a Service WorkerSimon Willison
  10. torch.profiler in PyTorch: Record CPU and CUDA tracesHugging Face
  11. OpenAI Codex on Windows sandbox: file and network limitsOpenAI
  12. TanStack npm attack contained by OpenAI; certs revokedOpenAI
  13. NVIDIA Codex and GPT-5.5: How Engineers Use AI to Ship CodeOpenAI
  14. OpenAI Codex safety: sandboxing, approvals and telemetryOpenAI
  15. Transformers.js for Chrome extensions: how to run modelsHugging Face
  16. Waypoint-1.5 from Hugging Face: interactive worlds for GPUsHugging Face
  17. Gradio gr.HTML release: one-shot web apps in a single fileHugging Face

Explore related topics