Introduction

NAPI-RS 是一个使用 Rust 构建预编译 Node.js 原生扩展的框架

轻松锈化你的 Node.js 应用!

use napi_derive::napi;
 
#[napi]
fn fibonacci(n: u32) -> u32 {
  match n {
    1 | 2 => 1,
    _ => fibonacci(n - 1) + fibonacci(n - 2),
  }
}

CommonJSesm 模块系统兼容, 自动生成 .d.ts 定义文件:

import { fibonacci } from './index.js'
 
// output: 5
console.log(fibonacci(5))
const { fibonacci } = require('./index')
 
// output: 5
console.log(fibonacci(5))

功能

🚀 为 Node.js 应用带来原生性能

👷‍♂️ 由 Rust 编译器保障的内存安全

⚡️ RustNode.js 之间通过 BufferTypedArray 实现零数据拷贝交互

⚙️ 轻松并行代码

全平台测试覆盖

LintLinux muslmacOS/Windows/Linux x64Linux-aarch64Linux-armv7macOS-AndroidAndroid-armv7Windows i686Windows arm64FreeBSD

赞助

Platinum SponsorsGold Sponsors Prisma CarGurus, Sliver Sponsors Durran Backers

生态

Prisma.ioswcParcelnext.js

支持列表

Node.js

Node10Node12Node14Node16Node18

操作系统与平台

✅ Means official tested in napi-rs repo.
- Means no official Node.js release.

i686x64aarch64arm
Windows-
macOS-
Linux-
Linux musl--
FreeBSD---
Android--

相关项目