介绍

webAssembly 是一套运行在浏览器上的二进制机器语言。其具有是小且快的特点。
你可以通过CC++emscirpten)、TypescriptAssemblyScript)、Rustwasm-pack)来编写 webAssembly

webAssembly 可以直接运行在浏览器环境中,也可以运行在node 环境中。

时间线

特点

  • 运行在沙箱,保证了环境隔离,因此可以用于虚拟机的实现。
  • 高效、可移植,在多个平台上可运行。

使用场景

浏览器环境

  • 一些语言的工具包
  • 游戏
  • 点对点应用,例如区块链
  • 音乐 APP
  • 图片处理
  • 远程桌面
  • 加密
  • 本地 web server

非浏览器环境

  • 服务端应用程序
  • 服务端的沙箱环境
  • hybird native app

查看更多

WebAssembly 关键概念

javascriptAPI 中。

  • 模块:编译后的二进制文件,以.wasm 后缀结尾。
  • 内存ArrayBuffer,大小可变。WebAssembly 需要手动管理内存。WebAssembly 是按照“页”这个单位来划分内存,一“页”是 32B(常看到i32就是这个大小)。
  • 表格:带类型数组,大小可变。Javascript包装具有类数组结构的对象,存储了多个函数引用。
  • 实例:是 WebAssembly.Module 的一个可执行实例。  实例包含所有的 WebAssembly 导出函数 ,

参考

03-05 13:50