Skip to content
Go to file

Latest commit


Failed to load latest commit information.

Node.js API (N-API)

This repository is the home for ABI Stable Node API project (N-API). The goal of this project is to provide a stable Node API for native module developers. N-API aims to provide ABI compatibility guarantees across different Node versions and also across different Node VMs - allowing N-API enabled native modules to just work across different versions and flavors of Node.js without recompilations.

It is introduced by this Node enhancement proposal:

N-API is now part of core. Documentation is available here:

As of Node.js version 8.6.0 N-API is enabled by default. If you use an N-API enabled module you will be warned that it is experimental as follows:

(node:16761) Warning: N-API is an experimental feature and could change at any time.

Node.js versions 8.12.0 and above provide N-API as a stable feature.


Currently this repo is being used only for meta issue management and future planning by the N-API team. All branches can be considered stale as they are no longer being maintained. Updates and changes to N-API are being done in the core repo.

API Design & Shape

The current shape of the API can be found in header file node_api.h. Full documentation is available as part of the standard Node.js API docs here:

There is also a header-only C++ API, which simplifies development while still using the same ABI-stable Node API underneath. It is distributed as a separate npm package:

N-API enabled modules

Module Converted By Location Conversion Status Performance Assessment
leveldown n-api team Completed #55
nanomsg n-api team Completed #57
canvas n-api team Completed #77
node-sass n-api team Completed #82
iotivity gabrielschulhof Completed N/A
node-sqlite3 n-api team Completed


In addition to running the tests in the converted modules we also have

How to get involved

  • Convert a native module to use N-API and report issues on conversion and performance;
  • Port ABI stable APIs to your fork of Node and let us know if there are gaps;
  • Review the roadmap and see how you can help accelerate this project.


The use of badges is recommended to indicate the minimum version of N-API required for the module. This helps to determine which Node.js major versions are supported. Addon maintainers can consult the N-API support matrix to determine which Node.js versions provide a given N-API version. The following badges are available:

N-API v1 Badge N-API v2 Badge N-API v3 Badge N-API v4 Badge N-API v5 Badge N-API v6 Badge N-API v7 Badge N-API Experimental Version Badge


The team meets once a week on zoom. See the Node.js Calendar for the current time/day of the week. The link to participate to the meeting is: .

Project Participants


Name GitHub Link
Arunesh Chandra aruneshchandra
Taylor Woll boingoing
Hitesh Kanwathirtha digitalinfinity
Gabriel Schulhof gabrielschulhof
Jim Schlight jschlight
Michael Dawson mhdawson
Nicola Del Gobbo NickNaso
Anisha Rohra anisha-rohra
Kyle Farnung kfarnung
Kevin Eady KevinEady


Name GitHub Link
Cory Mickelson corymickelson
Ian Halliday ianwjhalliday
Jason Ginchereau jasongin
Sampson Gao sampsongao
You can’t perform that action at this time.