Based on node-addon-api, node-addon-api-helper(naah) provides a more convenient, type-safe and boilerplate-less way to write Node.js C++ addons.
Features:
- Automatically transform values between JavaScript and C++
- Automatically register exports
- Class binding (with inheritance)
- Custom object type
- Thread safe function
- Create async work and return promise
- Can be used together with original node-addon-api, no need to rewrite all
- Pure header, can be easily integrated
npm install node-addon-api node-addon-api-helper
Add following content to your GYP file.
{
'include_dirs': [
"<!(node -p \"require('node-addon-api').include_dir\")",
"<!(node -p \"require('node-addon-api-helper').include_dir\")",
]
}
naah heavily depends on C++17, if you haven't configured your project on C++17, have a look at naah.gypi as an example.
A hello world example :
#include <naah.h>
uint32_t add(uint32_t a, uint32_t b) {
return a + b;
}
NAAH_REGISTRATION {
naah::Registration::Function<add>("add");
}
NAAH_EXPORT
- Exports
- Function
- Object
- Class
- Mix with node-addon-api
- Thread Safe Function
- Async Work
- Error Handling
See naah
directories in the fork of node-addon-examples for examples.
- Based on node-addon-api.
- Inspired by napi-rs, emscripten and nbind.