node-chakracore是否支持WASM(Web Assembly)?

时间:2017-07-13 20:24:56

标签: node.js webassembly chakracore

我是否可以将相同的WASM javascript模块部署到node-chakracore,因为我可以将nodejs v8部署到node-chakracore?

2 个答案:

答案 0 :(得分:1)

ChakraCore自v1.4起支持WebAssembly,而node-chakracore自8.x以来一直通过JavaScript支持它:

  

如果您正在使用WebAssembly,则Node-ChakraCore支持WASM   来自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#discussion_r127280773

答案 1 :(得分:0)

或者,您可以使用node-wasm加载您的wasm文件,然后在您的节点js app中执行此操作:

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();

在同一个回购中有一个完整的例子here。祝你好运!