This package contains header-only C++ wrapper classes for the ABI-stable Node.js API also known as N-API, providing C++ object model and exception handling semantics with low overhead. It guarantees backward compatibility when used with older versions of Node.js that do not have N-API built-in.
N-API is an API for building native addons. It is independent from the underlying JavaScript runtime (e.g. V8 or ChakraCore) and is maintained as part of Node.js itself. This API will be Application Binary Interface (ABI) stable across versions and flavors of Node.js. It is intended to insulate native addons from changes in the underlying JavaScript engine and allow modules compiled for one version to run on later versions of Node.js without recompilation. N-API guarantees the API and ABI compatibility across different versions of Node.js. So if you switched to a different version of Node.js, you would not need to reinstall or recompile the native addon.
APIs exposed by N-API are generally used to create and manipulate JavaScript values. Concepts and operations generally map to ideas specified in the ECMA262 Language Specification.
- Setup
- API Documentation
- Examples
- Tests
- More resource and info about native Addons
- Code of Conduct
- Contributors
- License
(See CHANGELOG.md for complete Changelog)
- Basic Types
- Error Handling
- Object Lifetime Management
- Working with JavaScript Values
- Async Operations
- Promises
Are you new to N-API? Take a look at our examples
- Hello World
- Pass arguments to a function
- Callbacks
- Object factory
- Function factory
- Wrapping C++ Object
- Factory of wrapped object
- Passing wrapped object around
To run the N-API tests do:
npm install
npm test
Take a look and get inspired by our test suite
Name | GitHub link |
---|---|
Anna Henningsen | addaleax |
Arunesh Chandra | aruneshchandra |
Benjamin Byholm | kkoopa |
Gabriel Schulhof | gabrielschulhof |
Hitesh Kanwathirtha | digitalinfinity |
Jason Ginchereau | jasongin |
Michael Dawson | mhdawson |
Nicola Del Gobbo | NickNaso |
Sampson Gao | sampsongao |
Taylor Woll | boingoing |
Licensed under MIT