先来一张经典图:
WebAssembly 是什么
以下是 Mozilla 在 MDN 上给出的定义:
WebAssembly(缩写:Wasm)是一种新的编码方式,可以在现代的网络浏览器中运行 - 它是一种低级的类汇编语言,具有紧凑的二进制格式,可以接近原生的性能运行,并为诸如 C/C++ 等语言提供一个编译目标,以便它们可以在 Web 上运行。它也被设计为可以与 JavaScript 共存,允许两者一起工作。
Wasm 官网自己挑出的重点是:
-
是一种基于堆栈的虚拟机的二进制指令格式。
-
被设计为编程语言的可移植编译目标。
-
能够在网络上部署客户端和服务器应用程序。
新编码方式,可以在浏览器中运行。可以以接近原生的性能运行。可以跨语言,例如:C/C++;可以与 JavaScript 共存。
看着是一个不错的可跨平台运行的新玩具。
由哪家研发
最早 WebAssembly1.0 基于 asm.js(Javascript 的严格子集,静态类型,取消垃圾回收机制等)的特性集实现。随后的 WebAssembly2.0 又根据新的标准进行了进一步的延伸和开发。
WebAssembly 的开发团队分别来自 Mozilla、Google、Microsoft、Apple,代表