El desarrollador Simon Willison ha presentado micropython-wasm, un paquete en fase alpha que permite ejecutar código Python dentro de un entorno aislado basado en MicroPython compilado a WebAssembly. La herramienta nace de una necesidad concreta: sus principales proyectos de código abierto —Datasette, LLM y sqlite-utils— admiten extensiones mediante plugins escritos en Python con Pluggy, que se ejecutan con los mismos privilegios que el resto de la aplicación, lo que abre la puerta a fallos o comportamientos maliciosos capaces de filtrar datos o romper el sistema.
El autor detalla las características que busca en un sandbox: instalación limpia desde PyPI con binarios multiplataforma; límites estrictos de memoria y tiempo de CPU para impedir bucles infinitos; control total del acceso al sistema de archivos y a la red; posibilidad de exponer selectivamente funciones del anfitrión; y un proyecto mantenido y bien documentado. Tras descartar la integración de motores de JavaScript por su complejidad y mantenimiento irregular, se decanta por WebAssembly, una tecnología diseñada desde su origen para ejecutar código no fiable y probada durante casi una década en los navegadores.
La elección del intérprete también fue determinante. Pyodide, la solución más madura para correr Python en WASM, está construida con Emscripten y solo funciona en navegadores o Node.js, lo que la descarta para uso en el lado del servidor. MicroPython, en cambio, es una implementación reducida y optimizada de Python 3 orientada a entornos con recursos limitados, categoría en la que encaja un binario de WebAssembly. Willison recurrió a GPT-5.5 Pro y Codex Desktop para investigar un pull request experimental con soporte WASI en MicroPython y compilar automáticamente un binario personalizado.
El resultado es un prototipo capaz de ejecutar Python dentro de WASM a través de wasmtime, aunque la persistencia del estado del intérprete entre ejecuciones sigue siendo el reto abierto más relevante, ya que el binario actual expone un único punto de entrada que arranca, ejecuta y detiene el intérprete. Willison ya lo integra como plugin (datasette-agent-micropython) en Datasette Agent y anima a probarlo, recordando al mismo tiempo que se trata de código generado con asistencia de IA y que conviene no confiar ciegamente en su seguridad.
