.wasm
Other
WebAssembly 二进制
WebAssembly(Wasm)是一种面向基于栈的虚拟机的二进制指令格式。它为浏览器中的游戏、视频编辑、CAD 和科学模拟等应用提供接近原生的性能。C、C++、Rust 和 Go 的代码可以编译为 Wasm 进行可移植执行。
MIME 类型
application/wasm
类型
二进制
压缩
无损
优点
- + Near-native execution speed in web browsers
- + Compile from C, C++, Rust, Go, and more
- + Sandboxed execution for security
- + Portable — runs in browsers and server-side via WASI
缺点
- − No direct DOM access — requires JavaScript interop
- − Debugging is harder than JavaScript
- − Binary format is not human-readable
何时使用 .WASM
将 Wasm 用于 CPU 密集型网页应用、将原生代码移植到浏览器以及通过 WASI 运行无服务器边缘函数。
技术细节
Wasm 使用紧凑的二进制格式,包含类型化函数、线性内存和确保安全的验证步骤。它在沙箱环境中运行,无法直接访问 DOM——通过 JavaScript 桥接提供 I/O。WASI 将 Wasm 扩展到服务端使用。
历史
W3C 于 2017 年发布了 WebAssembly 1.0,由 Mozilla、Google、Microsoft 和 Apple 联合开发。它被设计为网页的编译目标,以确定性和可预测的性能补充 JavaScript。