💬 观点Simon Willison
Running Python code in a sandbox with MicroPython and — Simon Willison 分享如何用 MicroPython 和 WASM
Simon Willison 分享如何用 MicroPython 和 WASM 构建安全、可控的 Python 代码沙箱,为插件和代理系统提供新思路。
2026-06-06原文
本文为要点摘要,完整细节以原文为准。
🧭 一图看懂
由原文自动提炼 · 以原文为准点击任一分支,查看这一点的一句话解读
MicroPython + WASM 沙箱运行…
插件代码拥有完整权限,可能破坏应用或泄露数据
- Datasette、LLM、sqlite-utils 均支持插件
- 希望限制文件、网络、内存与 CPU
⚙️ 流程拆解
STEP 1编译 MicroPython 为 WASM
STEP 2wasmtime 加载并启动解释器
STEP 3宿主函数阻塞等待代码
STEP 4eval 执行并返回结果
STEP 5队列维持会话状态
🔗 涉及的概念与玩家
- Simon Willison人物
- MicroPython产品
- WebAssembly方法
- wasmtime产品
- Pyodide产品
- Datasette产品
- micropython-wasm产品
- GPT-5.5模型
- Simon Willison—发布→micropython-wasm
- micropython-wasm—编译为→MicroPython
- micropython-wasm—运行于→WebAssembly
- wasmtime—执行→WebAssembly
- Simon Willison—开发→Datasette
- GPT-5.5—辅助构建→micropython-wasm
博主 Simon Willison 为了解决其开源项目(如 Datasette)中插件系统因拥有完全权限而带来的安全风险,探索并构建了一个基于 MicroPython 和 WebAssembly 的代码沙箱。
- 核心需求是安全隔离:他希望插件代码能在受控环境中运行,无法随意访问文件、网络或消耗过量资源。这意味着开发者可以为用户提供强大的扩展能力,同时将安全风险隔离在沙箱内。
- 选择 WebAssembly 作为基础:WASM 从设计之初就注重安全隔离,且经过近十年的浏览器环境考验。这表明WASM 正成为服务端安全执行不可信代码的可靠技术选择,而不仅仅是前端技术。
- 实现持久化会话与主机函数:通过定制 MicroPython 的 WASM 构建,他实现了跨多次执行的变量保持,并能安全地向沙箱内代码暴露特定的主机功能。这为构建复杂的、有状态的代理(Agent)或工具链提供了可行的底层执行环境。
原文:Running Python code in a sandbox with MicroPython and WASM · 作者 Simon Willison
🕸 顺着图谱继续读
- micropython-wasm 0.1a0 — Simon Willison 发布 micropython2026-06-02 · 共同涉及 Simon Willison、micropython-wasm、MicroPython
- datasette-agent-micropython 0.1a0 — Simon Willison 分享如何用 WebAssembly 和 Micro2026-06-02 · 共同涉及 Simon Willison、MicroPython、WebAssembly
- micropython-wasm 0.1a2 — Simon Willison 发布 micropython2026-06-06 · 共同涉及 Simon Willison、micropython-wasm、MicroPython
- micropython-wasm 0.1a1 — Simon Willison 发布 micropython2026-06-02 · 共同涉及 Simon Willison、micropython-wasm、MicroPython