不同调用方调用RUST,分清“对接”的三种不同层次:
| 调用方 | 对接方式 | 是否需要额外运行时 | 是否零拷贝 | 典型耗时 | 一句话要点 |
|---|---|---|---|---|---|
| Python | PyO3 / maturin 生成 .so 或 .pyd | 不需要 | 支持(PyO3 零拷贝 slice) | 微秒级 | 最自然、最成熟 |
| Node.js | ①NAPI-RS ②Neon ③WASM | ①②不需要 ③需要 WASM 运行时 | ①②可零拷贝 ③需序列化 | ①②微秒级 ③~0.1 ms | 生产环境优先 NAPI-RS |
| Vue3(浏览器) | 只能走 WASM (wasm-pack) | 浏览器自带 WASM | 需序列化 | ~0.1 ms | 适合纯计算、不适合 DOM |
1. Python ↔︎ Rust
-
用 PyO3 + maturin 一键生成
.whl,pip install后就能import rust_mod。 -
支持 NumPy 零拷贝 (
pyo3::buffer::PyBuffer),量化场景常用。
2. Node.js ↔︎ Rust
-
NAPI-RS:官方 Node-API 封装,ABI 稳定、无额外运行时,推荐。
-
Neon:语法更简单,社区示例多。
-
WASM:想同一份代码同时跑在浏览器与 Node.js 时才选,性能略低。
3. Vue3(浏览器) ↔︎ Rust
-
只能走 WebAssembly(
wasm-pack build --target web)。 -
适合纯计算逻辑(如特征提取、加密),不能直接操作 DOM;需要与 Vue 的 JS 代码通过序列化通信。
结论
-
Python:无缝对接,零额外运行时,最推荐。
-
Node.js:无缝对接(NAPI-RS/Neon),也可选 WASM。
-
Vue3:只能走 WASM,不能直接调用原生
.so/.node,适合纯算法加速。
491

被折叠的 条评论
为什么被折叠?



