使用 Neon 与 Wasm 编写 Node.js 模块之间的技术差异是什么?
What are the technical differences between writing a Node.js module using Neon vs Wasm?
我希望使用 Rust 为 node.js 编写一个 npm 模块。经过一些快速研究,我找到了两种方法:
- Neon: "Rust bindings for writing safe and fast native Node.js modules"
- Wasm: "Binary instruction format for a stack-based virtual machine."
使用其中一种有什么技术差异?
Neon 提供绑定,使得用 Rust 编写本机节点模块变得容易。顾名思义,本机节点模块被编译为本机代码(通常在安装时)。
Wasm (WebAssembly) 是浏览器和节点的新运行时,旨在成为更广泛语言的快速高效编译目标。它与 JavaScript 运行时一起执行,共享线程/内存。 Rust 有很好的 WebAssembly 支持和绑定。
所以主要区别在于 Neon 编译为本机,而使用 wasm 则编译为新的运行时(具有接近本机的性能)。
WebAssembly 可能会减少使用本机节点模块所涉及的一些摩擦。
我希望使用 Rust 为 node.js 编写一个 npm 模块。经过一些快速研究,我找到了两种方法:
- Neon: "Rust bindings for writing safe and fast native Node.js modules"
- Wasm: "Binary instruction format for a stack-based virtual machine."
使用其中一种有什么技术差异?
Neon 提供绑定,使得用 Rust 编写本机节点模块变得容易。顾名思义,本机节点模块被编译为本机代码(通常在安装时)。
Wasm (WebAssembly) 是浏览器和节点的新运行时,旨在成为更广泛语言的快速高效编译目标。它与 JavaScript 运行时一起执行,共享线程/内存。 Rust 有很好的 WebAssembly 支持和绑定。
所以主要区别在于 Neon 编译为本机,而使用 wasm 则编译为新的运行时(具有接近本机的性能)。
WebAssembly 可能会减少使用本机节点模块所涉及的一些摩擦。