Skip to content

duckdb/duckdb-node-neo

Repository files navigation

DuckDB Node Bindings & API

Node bindings to the DuckDB C API, plus a friendly API for using DuckDB in Node applications.

Packages

Documentation

Published

Development

Setup

Build & Test Bindings

  • cd bindings
  • pnpm run build
  • pnpm test

Build & Test API

  • cd api
  • pnpm run build
  • pnpm test

Run API Benchmarks

  • cd api
  • pnpm bench

Update Package Versions

Change version in:

  • api/pkgs/@duckdb/node-api/package.json
  • bindings/pkgs/@duckdb/node-bindings/package.json
  • bindings/pkgs/@duckdb/node-bindings-darwin-arm64/package.json
  • bindings/pkgs/@duckdb/node-bindings-darwin-x64/package.json
  • bindings/pkgs/@duckdb/node-bindings-linux-arm64/package.json
  • bindings/pkgs/@duckdb/node-bindings-linux-x64/package.json
  • bindings/pkgs/@duckdb/node-bindings-win32-x64/package.json

Upgrade DuckDB Version

Change version in:

  • bindings/scripts/fetch_libduckdb_linux_aarch64.py
  • bindings/scripts/fetch_libduckdb_linux_amd64.py
  • bindings/scripts/fetch_libduckdb_osx_universal.py
  • bindings/scripts/fetch_libduckdb_windows_amd64.py
  • bindings/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.