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.
As in Node.js, .node
files (Node-API modules) can be required directly in Bun.
const napi = require("./my-node-module.node");
Alternatively, use process.dlopen
:
let mod = { exports: {} };
process.dlopen(mod, "./my-node-module.node");
Bun polyfills the detect-libc
package, which is used by many Node-API modules to detect which .node
binding to require
.