Skip to content

NAPI-RS é um framework para construir addons pré-compilados para Node.js em Rust.

Rustifique o Node.js em poucas linhas!

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))

Recursos

🚀 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

Patrocinadores

Ecossistema

Suporte e compatibilidade

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.

Compatibilidade de runtime
Estabilidade de ABI do Node-APIUm mesmo binário pode abranger versões compatíveis do Node.js. O nível do Node-API define o runtime mínimo real.

CI atual do código-fonte do napi-rs:

  • Node 22
  • Node 24
  • Node 26

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 →
Destinos de build gerados pelo template
ia32x64arm64armWASI
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.

Projetos relacionados