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]

Reply via email to