You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[PyO3](https://pyo3.rs/) bindings for GeoArrow types, enabling seamless integration between Rust's GeoArrow implementation and Python.
4
+
5
+
This crate provides Python-compatible wrappers around GeoArrow data structures, allowing Python code to efficiently work with and share geospatial data in the GeoArrow format through the [Arrow C Data Interface][arrow-c-data-interface] (using the [Arrow PyCapsule Interface][arrow-pycapsule-interface]) without data copies.
-**Zero-copy data exchange**: Use Arrow's [C Data Interface][arrow-c-data-interface] for efficient memory sharing between Rust and Python.
13
+
-**GeoArrow types**: Python bindings for GeoArrow geometry arrays, scalars, and metadata.
14
+
-**Type safety**: Strongly-typed wrappers that preserve GeoArrow's type system in Python.
15
+
-**FFI support**: Import and export GeoArrow data to/from Python using the [Arrow PyCapsule Interface][arrow-pycapsule-interface].
16
+
17
+
## Core Types
18
+
19
+
-[`PyGeoArray`]: Python wrapper for GeoArrow geometry arrays
20
+
-[`PyGeoChunkedArray`]: Python wrapper for chunked GeoArrow geometry arrays
21
+
-[`PyGeoArrayReader`]: Python wrapper for streaming array readers
22
+
-[`PyGeoScalar`]: Python wrapper for GeoArrow scalar geometries
23
+
-[`PyGeoType`]: Python wrapper for GeoArrow data types
24
+
-[`PyCrs`]: Python wrapper for coordinate reference system representation
25
+
26
+
## Usage
27
+
28
+
This crate is primarily intended for use by Python binding developers who need to interoperate with GeoArrow data in Python. It is also used internally by the `geoarrow-rust-*` Python packages.
This crate implements the [Arrow PyCapsule Interface](https://arrow.apache.org/docs/format/CDataInterface/PyCapsuleInterface.html), allowing GeoArrow objects to be exchanged with any Python library that supports Arrow, including:
51
+
52
+
- PyArrow
53
+
- Polars (once they support extension types)
54
+
- GeoPandas (via PyArrow)
55
+
- DuckDB
56
+
57
+
## Dependencies
58
+
59
+
This crate builds on:
60
+
61
+
-[`pyo3`](https://docs.rs/pyo3): Python bindings for Rust
62
+
-[`pyo3-arrow`](https://docs.rs/pyo3-arrow): Arrow integration for PyO3
0 commit comments