kevingurney opened a new issue, #41656:
URL: https://github.com/apache/arrow/issues/41656

   ### Describe the enhancement requested
   
   After #41653 and #41654 is addressed, we should add MATLAB APIs for 
importing/exporting `arrow.array.Array`s using the C Data Interface format.
   
   The C Data Interface format import/export workflows would look something 
like:
   
   # Import into MATLAB
   
   ```matlab
   cArray = arrow.c.Array
   cSchema = arrow.c.Schema
   .
   .
   .
   % Pass cArray and cSchema to the export APIs of another Arrow language 
binding to fill in C struct details ...
   .
   .
   .
   % Import Arrow Array from pre-populated C Data Interface format C structs
   A = arrow.array.Array.importFromC(cArray, cSchema)
   ```
   
   # Export from MATLAB
   
   ```matlab
   .
   .
   .
   % Create C Data Interface format ArrowArray and ArrowSchema C structs using 
APIs of another Arrow language binding ...
   .
   .
   .
   A = arrow.array(1:10)
   % Export Arrow Array from MATLAB to C Data Interface format and fill in C 
struct details
   A.exportToC(cArrayAddress, cSchemaAddress)
   .
   .
   .
   % Import Arrow Array from pre-populated C Data Interface format C structs 
using APIs of another Arrow language binding 
   .
   .
   .
   ```
   
   We can implement the import/export functionality using the C Data Interface 
format C++ APIs defined in 
https://github.com/apache/arrow/blob/main/cpp/src/arrow/c/bridge.h.
   
   @sgilmore10 and I already created a 
[prototype](https://github.com/mathworks/arrow/tree/arrow-array-address) using 
`mlarrow` and `pyarrow` to verify that these import/export workflows work as 
expected.
   
   ### Component(s)
   
   MATLAB


-- 
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