【问题标题】:What are the technical differences between writing a Node.js module using Neon vs Wasm?使用 Neon 和 Wasm 编写 Node.js 模块之间的技术差异是什么?
【发布时间】:2019-04-06 18:19:23
【问题描述】:

我希望使用 Rust 为 node.js 编写一个 npm 模块。经过一番快速研究,我找到了两种方法:

  • Neon: "用于编写安全快速的原生 Node.js 模块的 Rust 绑定"
  • Wasm: "基于堆栈的虚拟机的二进制指令格式。"

使用其中一种有什么技术差异?

【问题讨论】:

    标签: rust webassembly


    【解决方案1】:

    Neon 提供绑定,使得在 Rust 中编写本机节点模块变得容易。顾名思义,本机节点模块被编译为本机代码(通常在安装时)。

    Wasm (WebAssembly) 是浏览器和节点的新运行时,旨在成为更广泛语言的快速高效编译目标。它与 JavaScript 运行时一起执行,共享线程/内存。 Rust 具有非常好的 WebAssembly 支持和绑定。

    因此,主要区别在于 Neon 编译为原生,而使用 wasm 您正在编译为新的运行时(具有接近原生的性能)。

    WebAssembly 可能会减少使用本机节点模块所涉及的一些摩擦。

    【讨论】:

    • 你知道在性能方面是否有差异吗?
    • @slorenzo 这将取决于您的用例,但我希望本机比 wasm 快一些,但都比 JS 快很多倍
    • 有一些研究表明 SSVM 在某些情况下可以胜过原生:infoq.com/articles/arm-vs-x86-cloud-performance
    猜你喜欢
    • 1970-01-01
    • 2011-09-02
    • 2011-03-23
    • 1970-01-01
    • 2016-10-28
    • 2012-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多