AI 快讯 编译自 simon_willison #沙箱#MicroPython#WASM

MicroPython+WASM沙箱运行Python代码:开源项目micropython-wasm发布

Simon Willison发布micropython-wasm,通过MicroPython编译为WASM在浏览器或服务器端沙箱中安全运行Python代码,解决插件系统权限过高问题。对中文开发者意味着低成本的代码隔离方案,但需注意性能限制和国产替代方案。

编译发布 2026/06/06 原文发布 2026/06/06

一句话看懂

Simon Willison发布micropython-wasm,用MicroPython编译为WASM实现Python代码沙箱执行,兼顾安全与轻量。

详细发生了什么

Simon Willison(Datasette、LLM等开源项目作者)多年来一直在探索安全的代码沙箱方案。他的最新尝试是micropython-wasm,一个将MicroPython解释器编译为WebAssembly(WASM)的Python包,可在浏览器或服务器端隔离运行用户提供的Python代码。

该方案的核心动机是解决插件系统的安全风险:Willison的项目广泛使用Pluggy插件机制,但插件代码拥有完整系统权限,可能读取敏感文件、访问网络或破坏应用。通过将MicroPython编译为WASM,插件代码运行在受限的WASM沙箱中,无法访问宿主文件系统、网络或系统调用,仅能操作通过API显式传入的数据。

Willison已基于此构建了datasette-agent-micropython插件,用于Datasette Agent的代码执行功能。该项目目前为alpha阶段,代码托管在GitHub上。

中文圈视角

国内用户用得上吗? 不需要梯子。micropython-wasm是纯Python包,可通过pip安装,WASM运行时在浏览器或Node.js中均可工作。但注意:MicroPython仅支持Python 3.4语法子集,标准库有限,无法运行依赖NumPy、Pandas等C扩展的代码。

国产平替? 国内类似方案有:

  • Pyodide(Mozilla主导):完整CPython编译为WASM,支持NumPy等,但体积大(约10MB),启动慢。
  • 阿里云函数计算:提供沙箱环境,但需云服务。
  • 腾讯云Serverless:类似。

micropython-wasm的优势是极轻量(WASM文件约500KB),启动快,适合简单脚本或AI Agent的tool calling场景。

对中文用户的具体场景影响:

  • AI Agent工具调用:国内Agent框架(如Dify、FastGPT)可集成此沙箱,安全执行用户自定义Python代码。
  • 在线编程教育:轻量级Python执行环境,无需后端。
  • 低代码平台:插件系统可借此实现安全扩展。

监管/合规角度: 沙箱运行在浏览器端,数据不出域,符合数据安全要求。但MicroPython本身无网络访问能力,需注意API设计避免数据泄露。

几条值得记住的细节

  • micropython-wasm将MicroPython解释器编译为WASM,通过Python的wasmtime或wasmer运行时加载。
  • 沙箱内代码无法访问文件系统、网络或环境变量,仅能通过传入的字典读写数据。
  • 支持标准Python语法子集,包括列表推导、生成器、异常处理,但不支持多线程、C扩展。
  • 当前为alpha版本,API可能变化,不建议生产环境使用。
  • 性能:简单计算与原生CPython相当,但I/O操作受限,适合短小脚本。

一句话总结

micropython-wasm为Python插件系统提供了一种轻量、安全的沙箱方案,中文开发者可低成本集成到Agent或低代码平台中。