A very small, understandable node native extension with reasonable project structure
C++ JavaScript Python
Switch branches/tags
Nothing to show
Clone or download


Node Native Extension Boilerplate

Build Status

A very approachable node native extension.

This repository serves as a nearly minimal native extension built on Nan with enough tooling to also make it a great starting point for more complex projects.


To compile the extension for the first time, run

$ npm i
$ npm run configure
$ npm run build

All subsequent builds only need npm run build

You can confirm everything built correctly by running the test suite.

Working With the Extension Locally

After building:

$ node
> var NativeExtension = require('./')
> NativeExtension.aString()
'This is a thing.'
> NativeExtension.aBoolean()
> NativeExtension.nothing()

To run tests:

$ npm test

or to run test continuously

$ npm test -- watch

The Parts

File Contents
NativeExtension.cc Represents the top level of the module. C++ constructs that are exposed to javascript are exported here
functions.cc Example top-level functions. These functions demonstrate how to build and return various js types.
index.js The main entry point for the node dependency
binding.gyp Describes your node native extention to the build system (node-gyp). As you add source files to the project, you should also add them to the binding file.