Skip to content

A more convenient, type-safe and boilerplate-less way to write Node.js C++ addons.

License

ajihyf/node-addon-api-helper

Repository files navigation

node-addon-api-helper

NPM CI lint C++17 LICENSE

Windows Support Linux Support Mac Support

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

QuickStart

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

Documentation

Examples

See naah directories in the fork of node-addon-examples for examples.

Thanks

About

A more convenient, type-safe and boilerplate-less way to write Node.js C++ addons.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published