Skip to content

feat(javascript): add Node.js ADBC driver manager#4046

Open
kentkwu wants to merge 21 commits intoapache:mainfrom
kentkwu:gh-3734
Open

feat(javascript): add Node.js ADBC driver manager#4046
kentkwu wants to merge 21 commits intoapache:mainfrom
kentkwu:gh-3734

Conversation

@kentkwu
Copy link

@kentkwu kentkwu commented Mar 4, 2026

This PR introduces an ADBC Driver Manager for JavaScript, specifically Node.js.

It is architected as a Node-API native module that wraps the Rust ADBC Driver Manager via NAPI-RS. This was chosen to leverage existing Arrow infrastructure in Rust and the mature Rust/JS FFI ecosystem.

This means that the driver manager will run on Node (and bun, but currently untested).

  • Rust layer (src/): Wraps adbc_driver_manager crate.
    • Async operations are run on the libuv thread pool via NAPI-RS AsyncTask. Results cross the boundary as Arrow IPC streams
    • IPC is used as JS does not currently have a C Data Interface implementation. In the future, we can switch the driver manager to use the C Data Interface for true zero-copy once that is implemented
  • TypeScript layer (lib/)
    • JS Binding API with AdbcDatabase, AdbcConnection, AdbcStatement
  • Platform binaries are built for
    • linux-x64
    • linux-arm64
    • darwin-x64
    • darwin-arm64
    • win32-x64

I've omitted final publishing to NPM in this PR. I will file a separate issue to set up publishing once this is merged.

Closes #3734

@kentkwu kentkwu marked this pull request as ready for review March 4, 2026 16:39
@kentkwu kentkwu changed the title feat(javascript/adbc-driver-manager): Add JavaScript NAPI Driver Manager feat(javascript/driver-manager): add Node.js ADBC driver manager Mar 4, 2026
@kentkwu kentkwu marked this pull request as draft March 4, 2026 16:43
@kentkwu kentkwu marked this pull request as ready for review March 4, 2026 16:47
Copy link
Member

@zeroshade zeroshade left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

initial first pass of reviews on the workflows

@kentkwu kentkwu changed the title feat(javascript/driver-manager): add Node.js ADBC driver manager feat(javascript): add Node.js ADBC driver manager Mar 4, 2026
@kentkwu kentkwu requested a review from zeroshade March 4, 2026 22:09
@kentkwu kentkwu requested a review from lidavidm March 5, 2026 02:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement Node.js driver manager

3 participants