eitsupi opened a new issue, #3106:
URL: https://github.com/apache/arrow-adbc/issues/3106

   ### What feature or improvement would you like to see?
   
   As pointed out by @lidavidm[^1], splitting the adbc_core crate seems 
worthwhile for a better separation of concerns.
   
   [^1]: 
https://github.com/apache/arrow-adbc/issues/2739#issuecomment-2976726395
   
   Considering the use cases for our current Rust drivers, I believe splitting 
the crate into the following three components would clarify dependencies and 
effectively isolate unsafe code.
   
   1. adbc_core: This crate would represent the C API specification (The 
current `rust/core/src/ffi/constants.rs`) and the ADBC behavior purely in Rust. 
For crates written purely in Rust, like adbc_datafusion, this would be 
sufficient, excluding the `export_driver` macro.
   2. adbc_ffi: This crate would depend on adbc_core and implement the unsafe 
functions. The `export_driver` macro definition is also included.
   3. adbc_driver_manager: This crate would depend on adbc_ffi and provide the 
functionality currently found in `rust/core/src/driver_manager.rs`. 
Rust-written drivers like adbc_datafusion would not need to depend on this 
crate.
   
   I'd appreciate your feedback on this proposal.
   


-- 
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: issues-unsubscr...@arrow.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to