nan (https://github.com/nodejs/nan) is a collection of header files providing helpers and macros aimed at simplifying the creation of add-ons. According to the documentation, nan was created primarily in order to preserve compatibility of your C++ code across different Node versions:
Thanks to the crazy changes in V8 (and some in Node core), keeping native add-ons compiling happily across versions, particularly 0.10 to 0.12 to 4.0, is a minor nightmare. The goal of this project is to store all logic necessary to develop native Node.js add-ons without having to inspect NODE_MODULE_VERSION and get yourself into a macro-tangle.
In the examples that follow, we will use nan to build some native add-ons. Let's rebuild our hello world example using nan.