Поддерживает ли node-chakracore WASM (веб-сборка)?

Могу ли я развернуть те же модули JavaScript WASM на node-chakracore, что и на nodejs v8?

2 ответа

ChakraCore поддерживает WebAssembly начиная с версии 1.4, а node-chakracore поддерживает его через JavaScript начиная с версии 8.x:

WASM поддерживается в Node-ChakraCore, если вы используете методы WebAssembly из JavaScript. Используя basic.wasm, следующий код работал с Node-ChakraCore:

const fs = require('fs'); const buf = fs.readFileSync('basic.wasm')

async function test() {
    try {
        const module = await WebAssembly.compile(buf);
        const inst = new WebAssembly.Instance(module, {test: {foo: function(a){console.log(`foo called: ${a}`); return 2;}}});
        console.log(inst.exports.a(1));
    } catch (reason) { 
        console.log(`Failed: ${reason}`)
    } }

test();

https://github.com/sass/node-sass/pull/1777

В качестве альтернативы, вы можете использовать node-wasm для загрузки вашего файла wasm, а затем в вашем приложении js для узла сделайте следующее:

import loadWasm from 'node-wasm';

async function run() {
  const {rust_function} = await loadWasm('/local/path/to/wasm');
  const result = rust_function();
  console.log(result);
}

run();

Вот полный пример здесь в том же репо. Удачи!

Другие вопросы по тегам