kentkwu opened a new pull request, #4046: URL: https://github.com/apache/arrow-adbc/pull/4046
This PR introduces an ADBC Driver Manager for JavaScript. It is architected as a [Node-API](https://nodejs.org/api/n-api.html) native module that wraps the Rust ADBC Driver Manager via [NAPI-RS](https://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](https://napi.rs/docs/concepts/async-task). 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 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
