DuckDB Node Bindings & API
May 18, 2026 ยท View on GitHub
Node bindings to the DuckDB C API, plus a friendly API for using DuckDB in Node applications.
Packages
Documentation
- @duckdb/node-api
- @duckdb/node-bindings
- @duckdb/node-bindings-darwin-arm64
- @duckdb/node-bindings-darwin-x64
- @duckdb/node-bindings-linux-arm64
- @duckdb/node-bindings-linux-arm64-musl
- @duckdb/node-bindings-linux-x64
- @duckdb/node-bindings-linux-x64-musl
- @duckdb/node-bindings-win32-arm64
- @duckdb/node-bindings-win32-x64
Published
- @duckdb/node-api
- @duckdb/node-bindings
- @duckdb/node-bindings-darwin-arm64
- @duckdb/node-bindings-darwin-x64
- @duckdb/node-bindings-linux-arm64
- @duckdb/node-bindings-linux-arm64-musl
- @duckdb/node-bindings-linux-x64
- @duckdb/node-bindings-linux-x64-musl
- @duckdb/node-bindings-win32-arm64
- @duckdb/node-bindings-win32-x64
Development
Setup
- Install pnpm
pnpm install
Build & Test Bindings
cd bindingspnpm run buildpnpm test
Build & Test API
cd apipnpm run buildpnpm test
Run API Benchmarks
cd apipnpm bench
Update Package Versions
Change version in:
api/pkgs/@duckdb/node-api/package.jsonbindings/pkgs/@duckdb/node-bindings/package.jsonbindings/pkgs/@duckdb/node-bindings-darwin-arm64/package.jsonbindings/pkgs/@duckdb/node-bindings-darwin-x64/package.jsonbindings/pkgs/@duckdb/node-bindings-linux-arm64/package.jsonbindings/pkgs/@duckdb/node-bindings-linux-arm64-musl/package.jsonbindings/pkgs/@duckdb/node-bindings-linux-x64/package.jsonbindings/pkgs/@duckdb/node-bindings-linux-x64-musl/package.jsonbindings/pkgs/@duckdb/node-bindings-win32-arm64/package.jsonbindings/pkgs/@duckdb/node-bindings-win32-x64/package.json
Upgrade DuckDB Version
Change version in:
bindings/scripts/fetch_libduckdb_linux_amd64_musl.pybindings/scripts/fetch_libduckdb_linux_amd64.pybindings/scripts/fetch_libduckdb_linux_arm64_musl.pybindings/scripts/fetch_libduckdb_linux_arm64.pybindings/scripts/fetch_libduckdb_osx_universal.pybindings/scripts/fetch_libduckdb_windows_amd64.pybindings/scripts/fetch_libduckdb_windows_arm64.pybindings/test/constants.test.ts
Also change DuckDB version in package versions.
Check Function Signatures
node scripts/checkFunctionSignatures.mjs [writeFiles]
Checks for differences between the function signatures in duckdb.h and those declared in duckdb.d.ts and implemented in duckdb_node_bindings.cpp.
Optionally outputs JSON files that can be diff'd.
Useful when upgrading the DuckDB version to detect changes to the C API.
Publish Packages
- Update package versions (as above).
- Use the workflow dispatch for the DuckDB Node Bindings & API GitHub action.
- Select all initially-unchecked checkboxes to build on all platforms and publish all packages.
- Uncheck "Publish Dry Run" to actually publish.