-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
const fs = require('fs');
const uvwasi = require('uvwasi');
const { WASI } = require('wasi');
async function main() {
const module = await WebAssembly.compile(fs.readFileSync('./file.wasm'));
const wasi = new WASI({
preopens: {
'/sandbox': './sandbox'
},
args: [ './file.wasm' ]
});
const importObject = {
uvwasi_snapshot_preview1: uvwasi.snapshot_preview1
};
const instance = await WebAssembly.instantiate(module, {
...importObject,
wasi_snapshot_preview1: wasi.wasiImport
});
wasi.start(instance);
const { read_file } = instance.exports;
const buffer = new Uint8Array(256);
const bytesRead = read_file(3, buffer.byteOffset, buffer.byteLength, 0);
const text = new TextDecoder().decode(buffer.slice(0, bytesRead));
console.log(text);
}
main().catch((err) => {
console.error(err);
});
Metadata
Metadata
Assignees
Labels
No labels