Name: abi-stable-node
Owner: Node.js Foundation
Description: NAPI ? Node with PoC ABI stable API for native modules.
Created: 2016-09-06 20:23:47.0
Updated: 2018-05-17 20:04:16.0
Pushed: 2018-05-10 17:34:25.0
Size: 236026
Language: JavaScript
GitHub Committers
User | Most Recent Commit | # Commits |
---|
Other Committers
User | Most Recent Commit | # Commits |
---|
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 as an experimental feature. 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:
e:16761) Warning: N-API is an experimental feature and could change at any time.
Branches
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: https://nodejs.org/docs/latest/api/n-api.html.
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| |——|————|——–|—|———–| |leveldown| n-api team | https://github.com/sampsongao/leveldown/tree/napi | Completed | #55 | |nanomsg| n-api team | https://github.com/sampsongao/node-nanomsg/tree/napi| Completed | #57| |canvas| n-api team | https://github.com/jasongin/node-canvas/tree/napi | Completed | #77| |node-sass| n-api team | https://github.com/boingoing/node-sass/tree/napi | Completed | #82| |iotivity|gabrielschulhof | https://github.com/gabrielschulhof/iotivity-node/tree/abi-stable | Completed |N/A| |node-sqlite3 |n-api team | https://github.com/mhdawson/node-sqlite3/tree/node-addon-api | Completed | |
Testing
In addition to running the tests in the converted modules. We have also
Converted version of the NAN examples abi-stable-node-addon-examples
Converted version of the core addons tests which can be run with make test addons-napi
How to get involved
Hangout link for weekly standup https://zoom.us/j/363665824 (PRIMARY) https://plus.google.com/u/0/events/c0eevtrlajniu7h8cjrdk0f56c8?authkey=COH04YCalJS8Ug (backup)