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: 005-ABI-Stable-Module-API.md.
N-API is now part of core. Documentation is available here: https://nodejs.org/docs/latest/api/n-api.html.
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
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: https://www.npmjs.com/package/node-addon-api.
N-API enabled modules
|Module||Converted By||Location||Conversion Status||Performance Assessment|
In addition to running the tests in the converted modules we also have
a converted version of the NAN examples node-addon-examples
a converted version of the core addons tests which can be run with
make test addons-napi
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:
|Nicola Del Gobbo||NickNaso|