NAPI-RS 是一个使用 Rust 构建预编译 Node.js 原生扩展的框架
轻松锈化你的 Node.js 应用!
lib.rs
use napi_derive::napi;
#[napi]
fn fibonacci(n: u32) -> u32 {
match n {
1 | 2 => 1,
_ => fibonacci(n - 1) + fibonacci(n - 2),
}
}
与 CommonJS
, esm
模块系统兼容, 自动生成 .d.ts
定义文件:
main.mjs
import { fibonacci } from './index.js'
// output: 5
console.log(fibonacci(5))
main.cjs
const { fibonacci } = require('./index')
// output: 5
console.log(fibonacci(5))
功能
🚀 为 Node.js
应用带来原生性能
👷♂️ 由 Rust
编译器保障的内存安全
⚡️ Rust
与 Node.js
之间通过 Buffer
和 TypedArray
实现零数据拷贝交互
⚙️ 轻松并行代码
赞助
生态
AFFiNEPolarsLogseqFormat.JSPerfseeDatabendRspackHugging FacedittoLoroRollup
支持列表
Node.js
Node10 | Node12 | Node14 | Node16 | Node18 | Node20 |
---|---|---|---|---|---|
✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
操作系统与平台
✅ Means official tested in napi-rs repo.
-
Means no official Node.js release.
i686 | x64 | aarch64 | arm | |
---|---|---|---|---|
Windows | ✅ | ✅ | ✅ | - |
macOS | - | ✅ | ✅ | ✅ |
Linux | - | ✅ | ✅ | ✅ |
Linux musl | - | ✅ | ✅ | - |
FreeBSD | - | ✅ | - | - |
Android | - | - | ✅ | ✅ |