21,118 颗星、半年发了 7 个大版本:Wasmer v7.5 用 WASIX 重新定义「本地 AI Agent 沙箱」的边界

21,118 颗星、半年发了 7 个大版本:Wasmer v7.5 用 WASIX 重新定义「本地 AI Agent 沙箱」的边界

如果你最近给 Claude Code 写过工具调用,或者在 MCP 服务里跑过外部脚本,大概率踩过同一个坑——AI Agent 要执行不可信代码,传统方案要么走 Docker 起容器(冷启动 100ms+),要么走 gVisor/Kata/Firecracker(隔离够,但每条命令一个 microVM),要么干脆丢给 E2B/Daytona 这种远程沙箱服务(每次调用都走一次网络)。Wasmer 想切的,是这张”沙箱决策表”里的第四个格子——把 WebAssembly 当成库嵌进你的程序里,让沙箱变成一段 in-process 调用。

仓库 wasmerio/wasmer 的官方一句话定位已经从「WebAssembly runtime」悄悄改成了「Lightweight sandboxes for your apps and AI agents」——这是 2026 年 9 月刚发 v7.4.1 时的 README 表述,最新版本是 2026 年 10 月 1 日的 v7.5.0(CHANGELOG)。

数据先摆出来:21,118 颗星、1,004 个 Fork、152 个 Release、253 个 Open Issue、近 90 天提交 251 次、活跃贡献者 19 人。半年内连发了 v7.0.0(1 月 28 日)、v7.1.0(3 月 27 日)、v7.2.0(6 月 30 日)、v7.2.1(7 月 23 日)、v7.3.0(8 月 21 日)、v7.4.0(8 月 31 日)、v7.4.1(9 月 8 日)、v7.4.2(9 月 16 日)、v7.5.0(10 月 1 日)——平均不到一个月一个大版本(releasealert.dev)。这是个仍在快速进化的运行时,不是停在”完成态”的化石。

WASIX 是什么,为什么 v7.5 在为它铺路

Wasmer 跟 Wasmtime、WasmEdge 最大的差异,不是冷启动时间(zylos.ai 实测 Wasmer 约 2ms/12MB,Wasmtime 约 3ms/15MB,WasmEdge 约 1.5ms/8MB),而是 WASIX——一套 Wasmer 自己 fork 的 POSIX-like 系统调用层。WASIX 给 WebAssembly 模块补了线程、socket、fork 等 WASI Preview 1 没定义的 syscall。v7.4.0 加的「WASIX import preparation hook」、v7.3.0 加的「page-granular mmap through the updated WASIX libc」和「externref/funcref C API」,都是为了让 WASIX 跑得更像”半个 Linux”,而不是”半个浏览器”。

这是为什么 Wasmer 能直接跑 Python、Node.js、Postgres、FFmpeg——wasmer run python/python 不需要你本地装 Python,wasmer run wasmer/edgejs 跑的是 QuickJS 版的 Node.js,wasmer run wasmer/pglite 跑的是 WASIX 版的 PostgreSQL(wasmer.io/posts)。

「沙箱即库」是它真正的卖点

跟 Docker 对比最有意思的一张图,Wasmer 官方自己画的(wasmer-local-sandboxes-for-ai-agents):

Docker:   应用 → 网络 → Sandbox 服务 → KVM → 客户机 Linux → 应用
Wasmer:   应用 → Wasmer → WebAssembly 沙箱 → Python/Node.js/Postgres/...

沙箱不再是一个独立的进程、一个 microVM、一个远程服务,它就是你的程序里的一个对象。Wasmer SDK(注意是单独的 wasmerio/wasmer-sdk 仓库)现在支持 5 个平台的 5 种语言:JavaScript/TypeScript(npm i @wasmer/sdk)、Python(pip install wasmer-sdk)、Rust(当前是 source dependency,Crate.io publishing 还是 disabled)、Swift(iOS 27+/macOS 12+,要 Xcode 27)、还有 C API。冷启动是”个位数毫秒”,M5 Max 上的 Python 沙箱 benchmark 在 benchmarks/RESULTS-2026-09-01.md 里。

对 AI Agent 工作流这意味着什么?E2B、Daytona、Modal、Blaxel 这些远程沙箱服务的优势是「物理隔离」,劣势是「每条工具调用一次网络往返」。Wasmer 想补的是「本地、有隔离、零物理机器」这一档。bex.co 的 @bex.co/blog/2026/07/09/wasmer-edgejs-wasm-nodejs-runtime-codex 一篇说得很直——「对短命的、纯 JS、高密度的代码,比如 AI Agent 生成的脚本,Wasm 沙箱的 syscall 表故意不完整这件事,比 gVisor/Kata 包一个通用容器,攻击面要小,冷启动要快」。

v7.5 刚发的几件事,看它的取舍

v7.5.0(2026 年 10 月 1 日)的 release notes 比较克制,主要是一些稳定性和打包流程的修复。值得关注的反而是 v7.3.0 和 v7.2.0 那批改动——v7.2.0 砍掉了 WAMR 和 Wasmi 两个引擎后端(#6500),砍掉了 macOS 上的 x86_64 支持(#6506),把 LLVM 后端升到 22.1(#6300),还把 V8 后端”复活”并进了 CI(#6673)。v7.3.0 又把 Windows 上的 Sys 编译器后端砍了、LLVM 的 RV32 target 也砍了。这些动作的潜台词是:Wasmer 在缩战线,把资源集中在「Linux + ARM64/x86_64 + Cranelift/LLVM/Singlepass + V8 兜底」这条主路径上。

Wasmtime 走的是「标准合规 + 多租户严格隔离」路线(webassembly-wasm.com),所以它有更完整的 fuel metering、epoch interruption、resource limiters。Wasmer 走的是「生态广度 + 多语言嵌入 + WASIX 扩展」路线,代价就是多租户隔离的 enforcement 要少靠自己。选型时这是关键的分叉。

谁该用,谁不该用

适合:

  • 给 AI Agent / MCP server 写本地工具执行环境,不想每条命令都跑 Docker 或远程 sandbox 的团队
  • 想在 iOS / Android / 浏览器里跑同一段 Python、Node.js、Postgres 的产品(wasmer/sdk 是当前唯一把这些平台统一了的方案)
  • 想要”嵌入式插件系统”的 Rust/Python/Go/C 应用(docs.wasmer.io/runtime/features 列出了完整 backend × ISA 矩阵)

不适合:

  • 需要严格多租户安全边界(多客户代码互相不能影响)的 PaaS——这时请选 Wasmtime + pooling allocation
  • 想跑任意 native Linux 二进制(依赖 ioctl、内核模块、eBPF 的)——Wasmer 官方自己也说不支持
  • 当前 SDK 还标着 alpha(README 原话),需要嵌入 SDK 的项目要先评估接口稳定性

下一步可以做什么

  • 想试最小成本:装个 CLI,wasmer run python/python -- -c "print('Hello from Wasmer')",5 秒跑通
  • 想嵌入到 AI Agent 里:先看 wasmer-local-sandboxes-for-ai-agents,跟着 README 里的 npm i @wasmer/sdk 或 pip install wasmer-sdk 写个 20 行的 sandbox demo
  • 想做对比:clone wasmer-sdk/benchmarks/sandboxes/RESULTS-2026-09-01.md 跑一次,量级心里有数再下选型结论
  • 想跟读开发:wasmer.io/posts 是 Wasmer 团队的工程博客,v6.0「closer to Native speeds」、Edge.js 用 Codex 14 天搭出 Node.js 运行时那几篇值得读
  • HN 讨论:搜 “Performance of WebAssembly Runtimes in 2026″,libsodium 在 Wasmtime 46.0.0 上启用 wide_arithmetic 后从 2.41x native 降到 1.46x,Wasmer 7.1.0 从 2.08x 降到 1.33x——同一个 WebAssembly 模块,不同 runtime 性能差距是真存在的,记得用自己的 workload benchmark 一次

如果只记一件事:Wasmer 现在已经不是”另一个 WASM runtime”,而是”想用 Wasm 取代 Docker 跑 AI Agent 沙箱”这个赌注里最完整的开源答案——赌赢了,它就是下一个 Cloudflare Workers;赌输了,至少 WASIX 这套扩展思路会被其它运行时 fork 走。

评论区

0 条评论

登录后可评论。

拾光·开源拾遗 374 阅读