2022年10月26日 星期三

Deno 執行本地的 WebAssembly 檔案

以以下 wat 為例

(module
  (func (export "addTwo") (param i32 i32) (result i32)
    local.get 0
    local.get 1
    i32.add))

Deno 執行該 wasm 的 addTwo function 的方法如下:

Deno.open("wasm.wasm")
	.then(function(file){
		return Deno.readAll(file)
	})
	.then(function(byteArray)){
		return new WebAssembly.Instance(new WebAssembly.Module(byteArray))
	})
	.then(function(wasm){
		console.log(wasm.export.addTwo(10, 20))
	})

參考資料

Deno.FsFile | Runtime APIs | Deno. Deno. https://deno.land/api@v1.26.2?s=Deno.FsFile
Using WebAssembly in Deno | Manual | Deno. Deno. https://deno.land/manual@v1.26.2/webassembly/using_wasm

沒有留言:

張貼留言