Giter VIP home page Giter VIP logo

abi-stable-node's Introduction

Node.js API (Node-API)

This repository is the home for ABI Stable Node API project Node-API which was previously known as N-API.

The goal of this project is to provide a stable Node API for native module developers. Node-API aims to provide ABI compatibility guarantees across different Node versions and also across different Node VMs - allowing Node-API enabled native modules to just work across different versions and flavors of Node.js without recompilations.

It is introduced by this Node enhancement proposal: 005-ABI-Stable-Module-API.md.

Node-API is part of Node.js core. Documentation is available here: https://nodejs.org/docs/latest/api/n-api.html.

Node.js versions 8.12.0 and above provide Node-API as a stable feature.

Branches

Currently this repo is being used only for meta issue management and future planning by the Node-API team.

API Design & Shape

The current shape of the API can be found in header file node_api.h. Full documentation is available as part of the standard Node.js API docs here: https://nodejs.org/docs/latest/api/n-api.html.

There is also a header-only C++ API, which simplifies development while still using the same ABI-stable Node API underneath. It is distributed as a separate npm package: https://www.npmjs.com/package/node-addon-api.

Node-API enabled modules

Module Converted By Location Conversion Status Performance Assessment
leveldown n-api team https://github.com/sampsongao/leveldown/tree/napi Completed #55
nanomsg n-api team https://github.com/sampsongao/node-nanomsg/tree/napi Completed #57
canvas n-api team https://github.com/jasongin/node-canvas/tree/napi Completed #77
node-sass n-api team https://github.com/boingoing/node-sass/tree/napi Completed #82
iotivity gabrielschulhof https://github.com/gabrielschulhof/iotivity-node/tree/abi-stable Completed N/A
node-sqlite3 n-api team https://github.com/mhdawson/node-sqlite3/tree/node-addon-api Completed

Testing

In addition to running the tests in the converted modules we also have a converted version of the NAN examples node-addon-examples

How to get involved

  • Convert a native module to use Node-API and report issues on conversion and performance;
  • Port ABI stable APIs to your fork of Node and let us know if there are gaps;
  • Review the roadmap and see how you can help accelerate this project.

Badges

The use of badges is recommended to indicate the minimum version of Node-API required for the module. This helps to determine which Node.js major versions are supported. Addon maintainers can consult the Node-API support matrix to determine which Node.js versions provide a given Node-API version. The following badges are available:

Node-API v1 Badge Node-API v2 Badge Node-API v3 Badge Node-API v4 Badge Node-API v5 Badge Node-API v6 Badge Node-API v7 Badge Node-API Experimental Version Badge

Meeting

The team meets once a week on zoom. See the Node.js Calendar for the current time/day of the week. The link to participate to the meeting is: https://zoom.us/j/363665824 .

Project Participants

Active

Name GitHub Link
Chengzhong Wu legendecas
Gabriel Schulhof gabrielschulhof
Jim Schlight jschlight
Kevin Eady KevinEady
Michael Dawson mhdawson
Nicola Del Gobbo NickNaso

Emeritus

Name GitHub Link
Anisha Rohra anisha-rohra
Arunesh Chandra aruneshchandra
Cory Mickelson corymickelson
Hitesh Kanwathirtha digitalinfinity
Ian Halliday ianwjhalliday
Jason Ginchereau jasongin
Kyle Farnung kfarnung
Sampson Gao sampsongao
Taylor Woll boingoing

abi-stable-node's People

Contributors

anisha-rohra avatar aruneshchandra avatar ddlan avatar digitalinfinity avatar jasongin avatar jschlight avatar kevineady avatar kfarnung avatar mhdawson avatar nicknaso avatar scholtzm avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.