From f54300578b1edc7f67daddbfae29575cbf305264 Mon Sep 17 00:00:00 2001 From: Colin McDonnell Date: Thu, 23 Feb 2023 17:13:30 -0800 Subject: Add documentation (#2148) * Add documentation * Tweaks * Fixes * Rearrange * Update --- docs/api/node-api.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 docs/api/node-api.md (limited to 'docs/api/node-api.md') diff --git a/docs/api/node-api.md b/docs/api/node-api.md new file mode 100644 index 000000000..09cc91175 --- /dev/null +++ b/docs/api/node-api.md @@ -0,0 +1,16 @@ +Node-API is an interface for building native add-ons to Node.js. Bun implements 95% of this interface from scratch, so most existing Node-API extensions will work with Bun out of the box. Track the completion status of it in [this issue](https://github.com/oven-sh/bun/issues/158). + +As in Node.js, `.node` files (Node-API modules) can be required directly in Bun. + +```js +const napi = require("./my-node-module.node"); +``` + +Alternatively, use `process.dlopen`: + +```js +let mod = { exports: {} }; +process.dlopen(mod, "./my-node-module.node"); +``` + +Bun polyfills the [`detect-libc`](https://npmjs.com/package/detect-libc) package, which is used by many Node-API modules to detect which `.node` binding to `require`. -- cgit v1.2.3