NAPI-RS é um framework para construir addons pré-compilados para Node.js em Rust.
Rustifique o Node.js em poucas linhas!
lib.rs
use napi_derive::napi;
#[napi]
fn fibonacci(n: u32) -> u32 {
match n {
1 | 2 => 1,
_ => fibonacci(n - 1) + fibonacci(n - 2),
}
}Compatível tanto com CommonJS quanto com esm, além do arquivo .d.ts ser gerado automaticamente:
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))Recursos
🚀 Traga desempenho nativo para o Node.js
👷♂️ Segurança de memória, garantida pelo compilador do Rust
⚡️ Transferência interativa de dados sem cópia entre Rust e Node.js via Buffer e TypedArray
⚙️ Paralelismo em poucas linhas
Patrocinadores
Ecossistema
AFFiNE


Polars
LogseqFormat.JS
Perfsee
DatabendRspackHugging FacedittoLoroRollup
Matriz de suporte
Node.js
| Node10 | Node12 | Node14 | Node16 | Node18 | Node20 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Plataformas suportadas
✅ Significa testado oficialmente no repositório napi-rs.
-Significa nenhuma release oficial do Node.js.
| i686 | x64 | aarch64 | arm | |
|---|---|---|---|---|
| Windows | ✅ | ✅ | ✅ | - |
| macOS | - | ✅ | ✅ | ✅ |
| Linux | - | ✅ | ✅ | ✅ |
| Linux musl | - | ✅ | ✅ | - |
| FreeBSD | - | ✅ | - | - |
| Android | - | - | ✅ | ✅ |