What are native modules for Node.js, and what are they used for ? Let’s discover together how can Node.js interact with your C/C++ code to create custom, asynchrone, native modules.

Duration: 1h00
Format: talk


This talk is based on experience gathered around the developpement of krb5 Node.js module. krb5 module exposes MIT Kerberos C library to Node.js as well as the GSS API for authentication through HTTP (SPNEGO). For instance, it is used in the hbase Node.js module to communicate with the HBase REST API on a secured cluster with Kerberos.

It will cover the recent changes in developping a native module, namely the transition from NAN (Native Abstractions for Node.js) to N-API, supported by the Node.js core developpers.

This talk will give a clear example of how to develop a native Node.js module nowadays. It will dig into asynchronous mechanisms that should be valuable even outside the scope of native module developpement. It should also put some light on the underlying Javascript engines like v8 and how it is evolving.


I am Xavier Hermand, working at Adaltas since September 2018 after a six month internship. My main interest since my internship has been around automation of cluster deployment with the project Jumbo. I also spent some time contributing to the krb5 module, as I find it challenging and enjoy lower level black magic.