24 unstable releases (7 breaking)
Uses new Rust 2024
| 0.7.0 | Jan 5, 2026 |
|---|---|
| 0.6.2 | Oct 27, 2025 |
| 0.5.0 | Aug 7, 2025 |
| 0.4.0 | Jul 14, 2025 |
| 0.0.0 | Sep 29, 2022 |
#199 in Geospatial
697 downloads per month
Used in 7 crates
(5 directly)
1MB
18K
SLoC
geoarrow-rs
A Rust implementation of the GeoArrow specification and bindings to GeoRust algorithms for efficient spatial operations on GeoArrow memory. This implements GeoArrow version 0.2.0.
This repository also includes Python bindings and JavaScript (WebAssembly) bindings, wrapping the GeoArrow memory layout and offering file format readers and writers and vectorized geometry operations.
Documentation
References
- Prototyping GeoRust + GeoArrow in WebAssembly gives an early preview of the JavaScript API.
- GeoArrow and GeoParquet in deck.gl gives an overview of what GeoArrow's memory layout looks like under the hood, even though it's focused on how to render the data on a map.
- Thoughts on GEOS in WebAssembly introduces why I think GeoRust + GeoArrow on the web has significant potential.
- Zero-copy Apache Arrow with WebAssembly explains how the JavaScript bindings are able to move memory between JavaScript and WebAssembly so efficiently.
lib.rs:
A complete, safe, native Rust implementation of GeoArrow, which adds geospatial support to the Apache Arrow tabular in-memory data format.
As of version 0.4, the geoarrow crate was refactored to a monorepo of smaller crates, each
with a more well-defined scope. Users may want to depend on the subcrates manually:
geoarrow_array: GeoArrow array definitions.geoarrow_cast: Functions for converting from one GeoArrow geometry type to another.geoarrow_schema: GeoArrow geometry type and metadata definitions.
This crate is an "amalgam" crate, which just re-exports types from the underlying sub-crates.
Dependencies
~9.5MB
~175K SLoC