Поддерживает ли 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();
В качестве альтернативы, вы можете использовать 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();
Вот полный пример здесь в том же репо. Удачи!