Skip to content

Repository used to make the N-API headers more accessible

License

Notifications You must be signed in to change notification settings

nodejs/node-api-headers

Repository files navigation

node-api-headers

Current Node-API version: 9

(See CHANGELOG.md for complete Changelog)

Introduction

node-api-headers contains the header files for the C-based Node-API provided by Node.js. Node-API is an API for building native addons that guarantees the ABI (Application Binary Interface) stability across versions of Node.js (see: Node-API).

Node-API headers are in the include folder. The Node-APIs that provide ECMAScript features from native code can be found in js_native_api_types.h and js_native_api.h. The APIs defined in these headers are included in node_api_types.h and node_api.h. The headers are structured in this way in order to allow implementations of Node-API outside of Node.js considering that for those implementations the Node.js specific APIs may not be applicable.

node-api-headers is also a package published on npm that could be used in a process to compile and build native addons for Node.js.

Install

npm i node-api-headers

Versions

Node-API C headers are backward-compatible. Its version (e.g. 8) is released separately from the Node.js version stream (e.g. 19.8.1) and changes are backported to active Node.js LTS lines (e.g. 16.x and 18.x).

This package publishes semver-minor versions with new Node-API C headers changes. JS API breaking changes are published with new semver-major versions.

API

The module exports two properties include_dir and symbols.

include_dir

This property is a string that represents the include path for the Node-API headers.

def_paths

This property is an object that has two keys js_native_api_def and node_api_def which represents the path of the module definition file for the js_native_api and node_api respectively.

symbols

This property is an object that represents the symbols exported by Node-API grouped by version and api types.

    V1: {
        js_native_api_symbols: [
            // List of symbols in js_native_api.h for the version 1.
        ],
        node_api_symbols: [
          // List of symbols in node_api.h for the version 1
        ]
    },
   // ...

Team members

Active

Name GitHub Link
Anna Henningsen addaleax
Chengzhong Wu legendecas
Gabriel Schulhof gabrielschulhof
Hitesh Kanwathirtha digitalinfinity
Jim Schlight jschlight
Michael Dawson mhdawson
Kevin Eady KevinEady
Nicola Del Gobbo NickNaso

Licensed under MIT