Description
The criteria for bringing N-API out of experimental were discussed in the VM Summit last July and captured here: nodejs/abi-stable-node#284.
The items where:
- Multiple implementations of n-api on at least 2 VMs
- Was already in place as N-API is implemented on V8 and Chakra core
- Define N-API / async_hooks dependency
- This was completed last August in src,async_hooks,n-api: refactor async callback handling node#14697
- At least two modules used in real world use cases on at least one VM
- There are now 3 modules being used in production using N-API (see #293 for more details):
- bcrypt-n-api - in Lexgenda Search engine
- node-zopfli in Microsoft Edge Developer Portal
- [email protected] in CANPIE
- There is additional real world usage through:
- There are 21017 downloads so far of node-addon-api, the C++ wrapper for use as an
alternative to NAN.
- There are now 3 modules being used in production using N-API (see #293 for more details):
- At least two modules that are NPM installable with pre-builds and all unit tests passing
-
We have worked through the process of how N-API will integrate with node-pre-gyp and
have a pull request here to integrate the required changed #345 -
We did not have to make any changes to the APIs to support working with node-pre-gyp and
don't believe any future changes will be required either. As such the N-API team does not believe
waiting until the PR lands is necessary to move N-API out of experimental.
-
We have not had to make any breaking changes to the APIs since the last ones which were originally planned for Node 8.6.x back in September 2017.
Along the way we have had comments from a number of modules owners that they will be more interested in moving to N-API once it comes out of experimental.
At this point in time, the N-API team believes it has met the substance of the criteria originally set out and the recommendation of the N-API team is to move it out of experimental as we believe that we will not get a material amount of additional validation while it remains in experimental. This is because modules owners are reluctant to invest while it is in that state.