WebAssembly
在 Github 上編輯
WebAssembly 是一種二進制格式,用於描述程序的資料和指令。它是一種新的且更有效率的二進制格式。
我們使用 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://deno-docs.dev.org.tw/examples/scripts/webassembly.ts