|
1 | | -ABI Stable Node.js Proof of Concept |
2 | | -=================================== |
| 1 | +# Node.js API (NAPI) |
| 2 | +This repository is the home for ABI Stable Node API project (NAPI). The goal of this |
| 3 | +project is to provide a stable Node API for native module developers. NAPI aims |
| 4 | +to provide ABI compatibility guarantees across different Node versions and also |
| 5 | +across different Node VMs – allowing NAPI enabled native modules to just work |
| 6 | +across different versions and flavors of Node.js without recompilations. |
3 | 7 |
|
4 | | -This repository is the home of the proof of |
5 | | -concept work being done to develop an |
6 | | -ABI stable API for use my node modules. |
| 8 | +This project is in an early proof of concept stage. Check out our [roadmap](https://github.com/nodejs/abi-stable-node/issues/18) |
| 9 | +for details on the remaining work. |
7 | 10 |
|
8 | | -For more details please read the node-eps |
9 | | -covering this effort. The current PR |
10 | | -for the eps is: |
11 | | -https://github.com/nodejs/node-eps/pull/20 |
| 11 | +**API Design & Shape** |
12 | 12 |
|
13 | | -Google Hangout for Weekly Stand up: |
| 13 | +For more details on design of the API, please check out the |
| 14 | +[node-eps](https://github.com/nodejs/node-eps/pull/20) covering this effort. |
| 15 | + |
| 16 | +The current shape of the API can be found in header file |
| 17 | +[node_jsvmapi.h](https://github.com/nodejs/abi-stable-node/blob/api-prototype-6.2.0/src/node_jsvmapi.h) |
| 18 | + |
| 19 | +**Branches** |
| 20 | + |
| 21 | +This repository contains node sources from Node versions 0.10, 0.12, 6.2 and |
| 22 | +Node-ChakraCore version 7.0, with addition of ABI stable Node APIs. The branches |
| 23 | +are named according to the node versions that have been enabled with NAPI support. |
| 24 | + |
| 25 | +**NAPI enabled modules** |
| 26 | +* [leveldown](https://github.com/boingoing/leveldown/) |
| 27 | +* [nanomsg](https://github.com/sampsongao/node-nanomsg) |
| 28 | +* [sqllite3](https://github.com/mhdawson/node-sqlite3) - in progress |
| 29 | + |
| 30 | +**Testing** |
| 31 | + |
| 32 | +In addition to running the tests in the converted modules. We have also |
| 33 | + |
| 34 | +* Converted version of the NAN examples that we always keep working |
| 35 | + [abi-stable-node-addon-examples](https://github.com/nodejs/abi-stable-node-addon-examples) |
| 36 | + |
| 37 | +* Converted version of the [core addons tests](https://github.com/nodejs/abi-stable-node/tree/api-prototype-6.2.0/test/addons-abi) which can be run with ```make test addons-abi``` |
| 38 | + |
| 39 | +**How to get involved** |
| 40 | +* Convert a native module to use ABI stable APIs and report issues on conversion and performance; |
| 41 | +* Port ABI stable APIs to your fork of Node and let us know if there are gaps; |
| 42 | +* Review the [roadmap](https://github.com/nodejs/abi-stable-node/issues/18) and see how can you |
| 43 | +can help accelerate this project. |
| 44 | + |
| 45 | +Hangout link for weekly standup |
14 | 46 | https://plus.google.com/u/0/events/c0eevtrlajniu7h8cjrdk0f56c8?authkey=COH04YCalJS8Ug |
15 | 47 |
|
16 | | -~ |
| 48 | +# Project Participants |
| 49 | +* [aruneshchandra](https://github.com/aruneshchandra) - Arunesh Chandra |
| 50 | +* [boingoing](https://github.com/boingoing) - Taylor Woll |
| 51 | +* [digitalinfinity](https://github.com/digitalinfinity) - Hitesh Kanwathirtha |
| 52 | +* [gabrielschulhof](https://github.com/gabrielschulhof) - Gabriel Schulhof |
| 53 | +* [ianwjhalliday](https://github.com/ianwjhalliday) - Ian Halliday |
| 54 | +* [jasongin](https://github.com/jasongin) - Jason Ginchereau |
| 55 | +* [mhdawson](https://github.com/mhdawson) - Michael Dawson |
| 56 | +* [mykmelez](https://github.com/mykmelez) - Myk Melez |
| 57 | +* [sampsongao](https://github.com/sampsongao) - Sampson Gao |
0 commit comments