feat: decouple extension ABI from arrow-rs with Arrow C Data Interface types
Remove arrow-rs dependency from daft-ext-abi by introducing owned Arrow C Data
Interface types (ArrowSchema, ArrowArray, ArrowArrayStream) that are layout-
compatible with the C ABI. This allows extensions to use any Arrow implementation
(arrow-rs, arrow2, etc.) without coupling to a specific version.
Key changes:
- Add ArrowSchema, ArrowArray, ArrowArrayStream C types to daft-ext-abi
- Add ArrowData (schema + array pair) for safe FFI data transfer
- Move FFI conversion helpers into daft-ext-abi/src/ffi/arrow.rs
- Update DaftScalarFunction trait to use ABI types instead of arrow-rs
- Update DaftSession trait to use ABI types
- Remove arrow-rs dependency from daft-ext-abi Cargo.toml
- Add arrow.rs helpers in daft-ext-core for arrow-rs <-> ABI conversions
- Update hello example to use new ABI types