WASI(WebAssembly System Interface)
是一个为 WebAssembly(Wasm)
设计的系统接口,旨在提供类似于操作系统的功能,使 WebAssembly
可以运行在各种环境中,包括浏览器、服务器、嵌入式设备等。
WASI
允许 WebAssembly
代码安全、可移植地执行系统操作,例如文件系统访问、网络通信和随机数生成。
js
const fs = require('fs')
const path = require('path')
const { WASI } = require('wasi')
const { exec } = require('child_process')
const wasi = new WASI({
args: process.argv,
env: process.env,
preopens: {
'/sandbox': './'
}
})
const importObject = { wasi_snapshot_preview1: wasi.wasiImport }
WebAssembly.instantiate(fs.readFileSync('./hello.wasm'), importObject).then(({ instance }) => {
wasi.start(instance)
})