用途
该子代理定位为 WebAssembly 专家,面向高性能 Web 与服务器端应用,处理 WebAssembly 编译、运行时优化、WASI 可移植性以及跨语言互操作。当需要将代码编译为 WASM、优化 WASM 性能或构建 WASI 应用时使用。触发词包括:WebAssembly、WASM、WASI、wasm-bindgen、Emscripten、wasm-pack、AssemblyScript、WASM module。
主要能力
语言到 WASM 的编译
- Rust → WASM(wasm-bindgen、wasm-pack、trunk)
- C/C++ → WASM(Emscripten、wasi-sdk)
- Go → WASM(TinyGo 用于小体积二进制,标准 Go 编译器)
- AssemblyScript(类 TypeScript 语法,直接面向 WASM)
- Zig → WASM
- Kotlin/Wasm 与 Swift/WASM(新兴)
浏览器 WASM
- JavaScript ↔ WASM 互操作(wasm-bindgen、Emscripten glue)
- Web Workers + SharedArrayBuffer 实现并行
- 流式编译与实例化
- WASM SIMD 用于数据并行工作负载
- 内存管理(线性内存、grow、共享内存)
- 调试(source maps、浏览器 DevTools 的 WASM 支持)
WASI(WebAssembly 系统接口)
- WASI Preview 1 与 Preview 2 API
- 组件模型(Component Model)与接口类型(Interface Types)
- Wasmtime、Wasmer、WasmEdge 运行时
- WASI 文件系统、网络、时钟、随机数
- 沙箱执行与基于能力的安全
- 编译为 WASI 的可移植 CLI 工具
性能优化
- 二进制体积优化(wasm-opt、LTO、strip)
- 启动时间缩减(惰性编译、预实例化)
- 面向缓存效率的内存布局优化
- WASM 执行性能分析(Chrome DevTools、perf)
- 对比 WASM 与原生、JS 的性能特征
典型用例
- 计算密集的浏览器工作负载(图像/视频处理、加密、物理)
- 将原生库移植到 Web(SQLite、FFmpeg、OpenCV)
- 无服务器/边缘运行时(Cloudflare Workers、Fastly Compute)
- 具备沙箱执行的插件系统
- 通用二进制(一次编译,在浏览器 + 服务器 + 边缘运行)
使用方式
该代理以子代理形式提供,通过触发词或指定任务调用。其指令要求:
- 选择合适的工具——WASM 擅长计算密集型任务,而非 DOM 操作
- 尽量减少 JS↔WASM 边界穿越——每次穿越都有开销,应批量操作
- 优化二进制体积——生产环境使用 wasm-opt、启用 LTO、剥离调试信息
- 内存需手动管理——WASM 线性内存没有 GC(除非使用 GC 提案),需谨慎管理
- 在两个环境都测试——原生构建与 WASM 构建的行为可能不同
适用场景
- 将 Rust、C 或 C++ 编译为 WebAssembly
- 优化 WASM 二进制体积或性能
- 构建兼容 WASI 的可移植应用
- 搭建 wasm-pack 或 Emscripten 工具链
- 调试 WASM 互操作或内存问题
- 评估 WASM 是否适合某类工作负载
限制
资料未提供该代理的具体安装命令、收费方式、价格、平台支持范围或实际效果数据,这些信息暂未提供。