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:
import { fibonacci } from './index.js'
// output: 5
console.log(fibonacci(5))const { fibonacci } = require('./index')
// output: 5
console.log(fibonacci(5))🚀 Traga desempenho nativo para o Node.js
👷♂️ Segurança de memória, garantida pelo compilador do Rust
⚡️ Transferência eficiente de dados binários entre Rust e Node.js via Buffer e TypedArray, com visualizações zero-copy quando apropriado
⚙️ Paralelismo em poucas linhas
A compatibilidade de ABI do Node-API, o requisito de Node.js da CLI de build e as versões testadas continuamente pelo repositório-fonte são contratos diferentes. Para builds atuais da CLI, use Node.js 22.13+ ou 24+; a matriz principal do repositório-fonte testa Node.js 22, 24 e 26. Cada artefato nativo continua específico ao seu sistema operacional, CPU e libc.
CI atual do código-fonte do napi-rs:
Use Node.js 22.13+ ou 24+ com a CLI de build atual. Bun é best-effort no CI upstream; Deno não faz parte da matriz bloqueante de addons nativos.
Leia o contrato completo de suporte →| ia32 | x64 | arm64 | arm | WASI | |
|---|---|---|---|---|---|
| Windows MSVC | |||||
| macOS | |||||
| Linux glibc | |||||
| Linux musl | |||||
| FreeBSD | |||||
| Android | |||||
| WebAssembly |
Incluído na matriz mantida de build e empacotamento do scaffold.
Não incluído no scaffold mantido; pode exigir suporte manual ou estar indisponível.
Destinos aceitos e cobertura de testes →Leia Suporte e compatibilidade para distinguir nível de Node-API, runtime, destinos dos templates e cobertura de CI.