155 releases (86 stable)

new 3.5.1 Jan 8, 2026
3.5.0 Dec 30, 2025
3.3.3 Nov 10, 2025
3.1.2 Jul 30, 2025
0.1.0 Nov 30, 2017

#100 in Procedural macros

Download history 147577/week @ 2025-09-22 180145/week @ 2025-09-29 175501/week @ 2025-10-06 185089/week @ 2025-10-13 252332/week @ 2025-10-20 257409/week @ 2025-10-27 305265/week @ 2025-11-03 272911/week @ 2025-11-10 296293/week @ 2025-11-17 265390/week @ 2025-11-24 292834/week @ 2025-12-01 297776/week @ 2025-12-08 270608/week @ 2025-12-15 175411/week @ 2025-12-22 183890/week @ 2025-12-29 267014/week @ 2026-01-05

918,260 downloads per month
Used in 119 crates (100 directly)

MIT license

265KB
7.5K SLoC

napi-derive

chat

Checkout more examples in examples folder

#[macro_use]
extern crate napi_derive;
use napi::bindgen_prelude::*;

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

#[napi]
fn get_cwd<T: Fn(String) -> Result<()>>(callback: T) {
  callback(env::current_dir().unwrap().to_string_lossy().to_string()).unwrap();
}

Dependencies

~0.5–1MB
~19K SLoC