Back to Explore

nodejs/node-addon-api

GitHub
2 updates · last 90 days1 watchersOpen source

Last release: 2 weeks ago

node-addon-api is a header-only C++ wrapper for Node-API, designed to make it easier to build Node.js native add-ons in C++. It provides a C++ object model and exception handling with low overhead, while targeting supported Node-API versions so the resulting addons can run on compatible Node.js releases.

Project status

  • Actively maintained, with recent tagged updates (last upstream push on 2026-06-05) and multiple successive version updates in 2026.
  • Update cadence appears steady, roughly every 6 to 10 weeks (v8.6.0 on 2026-02-02, v8.7.0 on 2026-03-26, v8.8.0 on 2026-05-22).

AI summary generated Today

AI-generated from public sources. May be inaccurate. Report

Recent updates

  • v8.8.0

    2 weeks ago

    v8.8.0 adds new C++ overloads that accept std::string_view for creating strings and symbols, plus fetching well-known symbols from the global registry using string view keys. The release notes document these new overloads, and the diff also updates headers, inline implementations, and tests to cover the new APIs.

    Features
  • v8.7.0

    2 months ago

    Release v8.7.0 adds new Node-API wrapper capabilities, including Date::New overloads for std::chrono::system_clock::time_point, Object prototype accessors, and SharedArrayBuffer support for DataView (behind experimental feature macros). It also includes a small API correctness fix for ObjectReference::Set string parameter constness.

    Features
  • v8.6.0

    4 months ago

    node-addon-api v8.6.0 adds C++ bindings for JavaScript SharedArrayBuffer, gated behind the library and Node header experimental feature flags. It also suppresses a vfptr sanitizer warning seen on Android NDK 29 by annotating internal wrapper methods to avoid vptr sanitization checks.

    Features
  • v8.5.0

    10 months ago

    v8.5.0 adds Promise chaining support by introducing Then and Catch methods to the Promise wrapper. In addition to the API additions, the repo updates CI workflows and documentation/tests to cover the new methods.

    SecurityFeatures
  • v8.4.0

    11 months ago

    v8.4.0 adds a convenience (sugar) API to `PropertyLValue` via a new `AsValue()` method. The only library-level change shown in the diff is this method, while the rest of the diff mainly updates tests and CI workflow action versions.

    Features
  • v8.3.1

    2/21/2025

    v8.3.1 is a maintenance release focused on bug fixes. The documented changes are adding a missing test include for stdexcept and addressing Node-API version 10 support. The code diff also shows some build/documentation changes and a notable compile-time conditional change in the error handling path that is not fully described in the release notes.

    Security
  • v8.3.0

    11/29/2024

    node-addon-api v8.3.0 adds support for catching all C++ exceptions thrown from Node-API C++ callbacks (not only Napi::Error). The implementation introduces a new build-time mode that wraps std::exception and non-standard exceptions into JavaScript exceptions, and updates documentation and tests accordingly.

    SecurityFeatures
  • v8.2.2

    11/8/2024

    v8.2.2 is a small patch release focused on two C++ API correctness fixes. It also updates the Node-API header docs and implementation around “basic” environment usage for memory and version related functions, plus adjusts ObjectWrap finalization behavior to address reference cleanup.

    Breaking
  • v8.2.1

    10/11/2024

    v8.2.1 is primarily a bugfix release for node-addon-api, addressing an issue with type cast checks in Symbol::WellKnown and a missing node_api_nogc_env-related definition. However, the actual diff also includes additional header and API changes beyond what the release notes describe, including a new UnsafeAs casting API and a broader refactor around the environment type used for “basic” finalizers.

    Features
  • v8.2.0

    9/30/2024

    v8.2.0 introduces support for nogc-based “basic finalizers” through a new Napi::BasicEnv abstraction, plus an option to require that all finalizers are basic. It also fixes finalization behavior by ensuring a base basic finalizer is used when none is defined. Most release-note items are about finalizer support, but the code diff also shows additional behavior and type-binding changes around how finalizers are invoked and when cleanup is run.

    Features