使用 Neon 和 Wasm 编写 Node.js 模块之间的技术差异是什么?

ama*_*iny 5 rust webassembly

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

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

使用一种或另一种的技术差异是什么?

Col*_*inE 10

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

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

所以主要的区别是 Neon 编译为本机,而使用 wasm 您编译为新的运行时(具有接近本机性能)。

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