aboutsummaryrefslogtreecommitdiff
path: root/docs/api/node-api.md
blob: 09cc91175978714d31e4b68387af54ded80bfaa7 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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`.
ve caruso 3-2/+9 2023-08-08Update Worker.cppGravatar Dylan Conway 1-1/+0 2023-08-081. Check if the argument is an empty string in `path.format`. (#4064)Gravatar Ai Hoshino 2-67/+213 2023-08-08import bun (#4055)Gravatar Jarred Sumner 8-18/+61 2023-08-08Enable `Headers.prototype.getSetCookie`Gravatar Jarred Sumner 2-25/+11 2023-08-08Remove printfGravatar Jarred Sumner 1-1/+0 2023-08-07Add `env` option for `node:worker_threads` (#4052)Gravatar dave caruso 23-185/+723 2023-08-07Fix `Bun.hash` functions (#4054)Gravatar jhmaster 4-37/+42 2023-08-07fix `worker.ref()`Gravatar Dylan Conway 1-1/+1 2023-08-07add bun update to help menuGravatar Jarred Sumner 1-0/+2 2023-08-07implement fetching data urls (#4000)Gravatar Dylan Conway 10-21/+244 2023-08-07implement `bun update` (#4046)Gravatar Alex Lam S.L 5-89/+389 2023-08-07fix iterating headers with `set-cookie` (#4048)Gravatar Dylan Conway 5-53/+51 2023-08-07WASM test analyzer (#4043)Gravatar Jarred Sumner 25-169/+965 2023-08-07Improve plugin docsGravatar Colin McDonnell 3-306/+283 2023-08-07Fix `path.normalize` edge case. (#4042)Gravatar Ai Hoshino 2-1/+2 2023-08-06Fixes #4001 (#4034)Gravatar Jarred Sumner 3-9/+108 2023-08-06Fixes #4029 and fixes #4022 (#4032)Gravatar Jarred Sumner 4-29/+34 2023-08-06Fixes #4010 (#4031)Gravatar Jarred Sumner 1-24/+17 2023-08-06Update build-idGravatar Jarred Sumner 1-1/+1 2023-08-06Bind require.resolve() (#4030)Gravatar Jarred Sumner 4-13/+47 2023-08-06Fixes #4020Gravatar Jarred Sumner 2-1/+6 2023-08-06Running missing scripts exits with non-0 (#4026)Gravatar Yash Sharma 2-1/+13 2023-08-06[install] handle `bun add` of existing `peerDependencies` correctly (#4028)Gravatar Alex Lam S.L 3-22/+98 2023-08-06fix nanbun-v0.7.3Gravatar Jarred Sumner 1-0/+3 2023-08-06Update coverage.mdGravatar Jarred Sumner 1-1/+1 2023-08-06Update lol-htmlGravatar Jarred Sumner 1-0/+0 2023-08-06Fixes #3129 (#4018)Gravatar Jarred Sumner 3-104/+58 2023-08-06Code coverage for `bun test` (#3975)Gravatar Jarred Sumner 32-61/+1211 2023-08-06feat: impl `dns.getServers` (#3982)Gravatar Ai Hoshino 5-3/+135 2023-08-06Implement --test-name-pattern (#3998)Gravatar dave caruso 8-7/+151 2023-08-05Fix(cli/init): support subpath entrypoint. (#4002)Gravatar Ai Hoshino 1-1/+8 2023-08-05Remove Bun.plugin transpiler hook, encourage usage of `--preload` instead (#3...Gravatar dave caruso 5-243/+1 2023-08-04Support --dev/-D and support more flags on bun install (#3989)Gravatar Colin McDonnell 5-9/+14 2023-08-04fix macro string escaping (#3967)Gravatar Dylan Conway 4-8/+97 2023-08-04Fixes #3991Gravatar Jarred Sumner 2-4/+40 2023-08-04[install] handle `workspace:*` correctly (#3994)Gravatar Alex Lam S.L 2-54/+158 2023-08-04Update import-meta.mdGravatar Jarred Sumner 1-2/+1 2023-08-04Fix incorrect docsGravatar Jarred Sumner 1-2/+3 2023-08-04[types] fix `blob.json()` (#3995)Gravatar Alex Lam S.L 1-4/+4 2023-08-04FFI typo (#3973)Gravatar dave caruso 3-5/+10 2023-08-04Buffer.copy should ignore out-of-range sourceEnd (#3971)Gravatar Yifei Wang 2-17/+34 2023-08-04[install] store resolved workspace path in lockfile (#3974)Gravatar Alex Lam S.L 5-82/+187 2023-08-04Fix types (#3963)Gravatar Colin McDonnell 14-274/+892 2023-08-04feat(hot-clear-screen): clear terminal on hot reload (#3976)Gravatar simylein 1-0/+7