WebAssembly:从浏览器插件到下一个通用运行时

主要观点:数字世界汇聚于网页浏览器这一通用计算平台,其原生语言为 JavaScript,但性能有上限,难以运行计算密集型任务且无法直接使用 C++等语言的代码生态。WebAssembly 应运而生,作为二进制指令格式,可将高性能语言代码编译为紧凑的 Wasm 二进制文件,在浏览器中以接近原生速度运行,开启新应用类别。其设计基于快速、安全、可移植原则,超出浏览器范畴后有了 WebAssembly System Interface (WASI),实现服务器端应用,基于能力的安全模型更安全。与容器相比,Wasm 以传输应用逻辑为主,在大小、速度、安全等方面有显著优势,二者可互补。在云计算和边缘计算中,Wasm 与 Kubernetes 深度集成,在平台工程和边缘设备应用中优势明显,打破了不同环境的架构壁垒。WebAssembly Component Model 旨在解决语言间互操作性问题,将 Wasm 模块变为可组合的“乐高积木”,实现运行时的精细组合,是软件复用的范式转变。

关键信息

  • JavaScript 性能受限,WebAssembly 可弥补。
  • WASI 实现服务器端 Wasm 应用及安全交互。
  • Wasm 与容器在多方面有差异且可互补。
  • 在云计算和边缘计算中 Wasm 优势突出。
  • WebAssembly Component Model 解决互操作性。

重要细节

  • WebAssembly 是二进制指令格式,可编译多种语言代码。
  • WASI 从 Preview 1 到 Preview 2 再到 Preview 3 不断演进。
  • 容器以传输环境为主,Wasm 以传输应用逻辑为主。
  • Wasm 在云计算中与 Kubernetes 集成及平台工程应用。
  • 在边缘计算中 Wasm 适合资源受限环境。
  • WebAssembly Component Model 通过 WIT 和“worlds”实现互操作性。
阅读 27
0 条评论