Python bindings to the GeoArrow Rust implementation.
This library contains Python bindings to the GeoArrow Rust implementation.
- Fast: Connects to algorithms implemented in GeoRust, which compile to native code.
- Parallel: Multi-threading is enabled out-of-the-box for all operations on chunked data structures.
- Self-contained:
pyproj
is the only Python dependency. - Easy to install: Distributed as static binary wheels with zero C dependencies.
- Static typing: type hints for all operations.
- Interoperable ecosystem: Efficient data exchange with other libraries in the Python Arrow and GeoArrow ecosystems. , such as geoarrow-c or lightning-fast map rendering.
Refer to the documentation website.
geoarrow.rust
is distributed with namespace packaging, meaning that each Python submodule is published to PyPI independently. This allows for separation of concerns and smaller environments when only some portion of functionality is necessary.
Existing modules:
geoarrow-rust-core
: Data structures to store and manage geometry data in GeoArrow format.geoarrow-rust-compute
: Compute operations on GeoArrow data.geoarrow-rust-io
: Pure-rust readers and writers for geospatial file formats.
In order to obtain relevant modules, you should install them from PyPI directly, e.g.:
pip install geoarrow-rust-core geoarrow-rust-compute geoarrow-rust-io
Future potential modules:
geoarrow-rust-geos
: GEOS-based algorithms on GeoArrow memory.geoarrow-rust-proj
: PROJ-based coordinate reprojection on GeoArrow memory.
See DEVELOP.md for more information on developing and building the Python bindings.