Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nodejs/node-addon-examples
Node.js C++ addon examples from http://nodejs.org/docs/latest/api/addons.html
https://github.com/nodejs/node-addon-examples
node nodejs
Last synced: 4 days ago
JSON representation
Node.js C++ addon examples from http://nodejs.org/docs/latest/api/addons.html
- Host: GitHub
- URL: https://github.com/nodejs/node-addon-examples
- Owner: nodejs
- License: other
- Created: 2013-01-23T05:05:51.000Z (almost 12 years ago)
- Default Branch: main
- Last Pushed: 2024-10-28T05:23:42.000Z (3 months ago)
- Last Synced: 2024-10-29T15:34:48.293Z (3 months ago)
- Topics: node, nodejs
- Language: C++
- Size: 4.66 MB
- Stars: 2,494
- Watchers: 80
- Forks: 600
- Open Issues: 59
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- awesome-github-star - node-addon-examples
README
Node.js Addon Examples
=========================================**A repository of [Node.js Addons](https://nodejs.org/api/addons.html#addons_c_addons) examples.**
Implementations of examples are named either after Node.js versions (`node_0.10`,
`node_0.12`, etc), or Node.js addon implementation APIs:- [`nan`](https://github.com/nodejs/nan): C++-based abstraction between Node and direct V8 APIs.
- [`Node-API`](https://nodejs.org/api/n-api.html): C-based API guaranteeing [ABI stability](https://nodejs.org/en/docs/guides/abi-stability/) across different node versions as well as JavaScript engines. (Node-API was previously known as N-API.)
- [`node-addon-api`](https://github.com/nodejs/node-addon-api): header-only C++ wrapper classes which simplify the use of the C-based Node-API.
- [`node-addon-api-addon-class`](https://github.com/nodejs/node-addon-api/tree/main/doc/addon.md): Similar to `node-addon-api`, but deriving from the `Napi::Addon` class. [1_hello_world](./1_hello_world) provides an example.Implementations against unsupported versions of Node.js are provided for
completeness and historical context. They are not maintained.The examples are primarily maintained for Node-API and node-addon-api and as outlined in
the Node.js [documentation](https://nodejs.org/dist/latest/docs/api/addons.html),
unless there is a need for direct access to functionality which
is not exposed by Node-API, use Node-API.The [Node-API Resource](http://nodejs.github.io/node-addon-examples/) offers an
excellent orientation and tips for developers just getting started with Node-API
and `node-addon-api`.## Usage
The directory structure is as follows:
```sh
REPO_ROOT
├── test_all.js
├── package.json
├── README.md
└── src
├── 1-getting-started
│ ├── example1
│ │ ├── nan
│ │ ├── node-addon-api
│ │ └── napi
│ ├── example2
│ └── example3
├── 2-js-to-native-conversion
├── 3-context-awareness
├── 4-references-and-handle-scope
├── 5-async-work
├── 6-threadsafe-function
├── 7-events
└── 8-tooling
```In each example's implementation subdirectory, run
```text
npm install
node ./
```to see the example in action.