Move Rust modules into workspace. Make crates/ top level directory?
All crates/dirs inside crates/ are published to crates.io
Make geoarrow-python crate inside crates/ with the rlib bindings to pyo3
Convert existing geoarrow.rust.core code to only import from geoarrow-python and create a #[pymodule]
Make a top-level function in geoarrow.rust.core named from_arrow which takes in any Arrow object (via pycapsule) and returns either a geometry array, chunked array, or table.
Make tiny structs inside geoarrow-python that are just ArrowArray, ArrowSchema and ArrowStream to hold arbitrary pycapsule objects.
Then a new geoarrow.rust.proj module can have functions that operate on any geoarrow input via pycapsule and return the above Arrow* minimal classes.
crates/
top level directory?crates/
are published to crates.iogeoarrow-python
crate insidecrates/
with therlib
bindings to pyo3geoarrow.rust.core
code to only import fromgeoarrow-python
and create a#[pymodule]
geoarrow.rust.core
namedfrom_arrow
which takes in any Arrow object (via pycapsule) and returns either a geometry array, chunked array, or table.geoarrow-python
that are justArrowArray
,ArrowSchema
andArrowStream
to hold arbitrary pycapsule objects.geoarrow.rust.proj
module can have functions that operate on any geoarrow input via pycapsule and return the aboveArrow*
minimal classes.Ref https://github.com/geoarrow/geoarrow-rs/issues/454