Skip to content

WebAssembly 是什么

WebAssembly(缩写为 Wasm)是一种为基于栈的虚拟机设计的二进制指令格式。Wasm 被设计成一种适用于各种编程语言的可移植编译目标,使得客户端和服务器应用程序都能在网络上部署。

WebAssembly 设计为可移植、高效和快速,它可以由许多不同的编程语言编写,包括 C、C++ 和 Rust,并且可以在所有主要的浏览器中运行,例如 Chrome、Firefox、Safari 和 Edge。

WebAssembly 的特点包括:

  1. 快速-性能: WebAssembly 旨在快速解码和执行,执行速度接近原生代码的速度。

  2. 安全性: WebAssembly 在沙盒环境中运行,与 JavaScript 一样受到严格的安全限制,以防止恶意行为。

  3. 语言中立: 虽然目前主要支持 C、C++ 和 Rust,但 WebAssembly 的设计目标是支持多种语言。

  4. W3C 标准一部分: WebAssembly 设计为可以在多种不同的平台上运行,无论是桌面、移动设备还是嵌入式设备。

WebAssembly 的运行过程:

  1. 开发者使用如 C、C++ 或 Rust 等语言编写代码。
  2. 代码被编译成 WebAssembly 模块。
  3. WebAssembly 模块被发送到浏览器。
  4. 浏览器下载并快速解码 WebAssembly 模块。
  5. WebAssembly 代码在浏览器中以近乎本地性能执行。

WebAssembly 和 JavaScript 是互补的。WebAssembly 可以执行计算密集型任务,而 JavaScript 可以处理高级应用逻辑和 UI 交互。同时,WebAssembly 模块可以和 JavaScript 代码互相调用,使得开发者能够灵活地组合两者,以实现更优的应用性能。

参考

百度百科 https://baike.baidu.com/item/WebAssembly/61812997?fr=ge_ala

WebAssembly 官网 https://webassembly.org/