跳至主要内容

WebAssembly

WebAssembly 是一种用于描述程序数据和指令的二进制格式。它是一种新的、更高效的二进制格式。

在 Github 上编辑
我们使用 WebAssembly 模块的字节创建一个新的 Uint8Array。这通常是某些编译器的输出,而不是手写的。
const bytes = new Uint8Array([
  0,97,115,109,1,0,0,0,1,7,1,96,2,
  127,127,1,127,2,1,0,3,2,1,0,4,1,
  0,5,1,0,6,1,0,7,7,1,3,97,100,100,
  0,0,9,1,0,10,10,1,8,0,32,0,32,1,
  106,15,11,11,1,0,
]);
我们为 WebAssembly 模块创建一个接口,其中包含所有导出内容。
interface WebAssemblyExports {
  add(a: number, b: number): number;
}
WebAssembly 模块是一种用于描述程序数据和指令的二进制格式。
const exports = await WebAssembly.instantiate(bytes);
我们从 WebAssembly 模块中获取导出内容并将其转换为接口。
const functions = exports.instance.exports as unknown as WebAssemblyExports;
我们调用导出的函数。
console.log(functions.add(1, 2)); // 3

使用 Deno CLI 在本地运行 此示例

deno run https://docs.deno.org.cn/examples/webassembly.ts