跳到主要内容

什么是 WebAssembly(Wasm)

WebAssembly 是一种将 JavaScript 以外的编程语言的应用程序作为网页运行的方式。从本质上讲,Wasm 只是一个在所有现代浏览器上运行的虚拟机,但在过去,你需要使用 JavaScript 来运行网页中的代码,而 Wasm 使你有可能在 JavaScript 以外的编程语言的浏览器中运行代码。

由于技术的特殊性,WebAssembly 虚拟机,简称 Wasm,被证明比任何其他虚拟机都快。WebAssembly 的使用使 Gear 的智能合约能够直接编译成机器代码,并以接近原生的速度运行。更高的速度意味着更低的交易成本和更高的效率。

所有 Gear 程序和智能合约都是作为 WebAssembly 程序运行的。这意味着,例如,开发人员可以将他们的应用程序带到网络上,并在网络浏览器中实现应用程序的全部性能--它们通常在 Windows 或 Mac 上运行原生程序时具有的性能。开发人员实际上也不必直接编写 Wasm 代码。相反,他们将使用 Wasm 作为用其他语言编写的程序的编译目标。

Wasm 解决的主要问题是无法在网络上使用 JavaScript 以外的编程语言。虽然 JavaScript 是一种伟大的编程语言,但它的设计并不是为了在大型应用程序中实现超高速。Wasm 改变游戏规则的地方在于,它以一种完全安全的方式将用其他编程语言编写的本地应用程序的性能带到了网络上。

Wasm 应该在两个主要方面提供显著的速度提升。首先,它应该大大增加应用程序的启动速度。事实上,已经使用 Wasm 的应用程序已经能够将应用程序的启动时间减少一半,而且随着更多的优化,它只会继续进一步提高启动速度。这将使巨大的应用程序能够非常、非常迅速地加载起来。其次,Wasm 在吞吐量方面也有很大的好处,这意味着一旦代码被编译,它的运行速度会更快--使应用程序更有效,反应更快,这将大大改善用户体验。

WebAssembly 有以下优点:

  • Wasm 是非常快速、高效和可移植的。代码可以在不同的平台上以接近原生的速度执行。
  • Wasm 也是可读和可调试的。虽然 WebAssembly 是一种低级语言,但它确实有一种人类可读的文本格式,可以用手写、查看和调试代码。
  • 它也是非常安全的,因为它是在一个安全的沙盒环境中运行的,像其他网络代码一样,它将执行浏览器的同源和无权限安全策略。

Wasm 格式允许 Gear Protocol 的开发者现在使用 Rust 开发,未来 C#/C++、Go 和 Javascript 也可以编写应用程序。