The order listed here is not necessarily the best order of work.
[ ] Set up Rust monorepo with multiple crates
[ ] Create geoarrow-io crate. Move existing IO functionality into that crate. This should vastly simplify the dependencies in the main geoarrow crate.
[ ] Refactor type signatures of readers and writers. The goal here is to decouple the readers from the GeoTable concept. It should also improve functionality with streaming operations and support future integration with Datafusion.
[x] #595
[ ] #596
[ ] P1 Python APIs to sync readers should return a RecordBatchReader object
[ ] P2 Async readers should return a RecordBatchStream? Note that this means the geoarrow-io will have to depend on datafusion...
[ ] P0 Sync writers should accept a RecordBatchReader.
[ ] P1 Async writers should accept a RecordBatchStream?
[ ] Refactor writers to accept a RecordBatchReader.
[ ] Refactor GeoTable to Table, remove a hard-coded geometry column index. Note that this is not necessary for the initial parsing as long as you're able to convert the RecordBatchReader into a GeoTable.
The order listed here is not necessarily the best order of work.
RecordBatchReader
objectRecordBatchStream
? Note that this means thegeoarrow-io
will have to depend ondatafusion
...RecordBatchReader
.RecordBatchStream
?RecordBatchReader
.RecordBatchReader
into aGeoTable
.