超越 WASI:用 BrowserPod 3.0 在浏览器里跑任意 Rust 应用
来源:labs.leaningtech.com — 2026-08-13
📋 概述
BrowserPod 3.0 声称能在浏览器里运行任意 Rust 应用——无需改一行代码。它把应用编译成 WebAssembly,并提供完整 Linux syscall 接口,文件系统、网络、子进程、并发一应俱全。团队没有选择实现 WASI 层(因为现有 Rust WASI 目标在标准库功能与第三方 crate 兼容上有明显短板),而是自造了 wasm32-browserpod-linux-musl 目标,用两个「hack」(去掉 wasm 家族、把 arch 伪装成 wasm64)绕过生态对简化目标的误判。ripgrep、starship、jj 等大型项目都直接跑通。
🔑 核心要点
- WASI 不够用:std::os::unix 无法映射、线程支持缺失,编译 yarn 需要大改代码。
- 自造 wasm32-browserpod-linux-musl 目标,模型自 x86 Linux,运行时靠每个 Worker 独立线程实现真并行。
- 两个关键 hack:去掉 wasm target_family、把 arch 伪装成 wasm64,绕开生态的「wasm=简化」假设。
- 无需改代码即跑通 ripgrep、starship、jj、openai/codex(约 20 万-125 万行)。
- 未来可能改用 WALI 目标(x86-64 syscall),以便同一二进制浏览器内外通用。
💡 金句
浏览器把它当内核:为 Web 平台实现的一个操作系统内核,用 WebAssembly 写成。
👍 0
👎 0
← 返回 Lobsters 首页