https://github.com/geoarrow/geoarrow-rs
GeoArrow in Rust, Python, and JavaScript (WebAssembly) with vectorized geometry operations
https://github.com/geoarrow/geoarrow-rs
apache-arrow geoarrow geoparquet geospatial javascript pyo3 python rust typescript wasm-bindgen webassembly
Last synced: 5 months ago
JSON representation
GeoArrow in Rust, Python, and JavaScript (WebAssembly) with vectorized geometry operations
- Host: GitHub
- URL: https://github.com/geoarrow/geoarrow-rs
- Owner: geoarrow
- License: apache-2.0
- Created: 2023-06-30T22:18:22.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-05-13T17:49:46.000Z (5 months ago)
- Last Synced: 2025-05-13T17:55:54.145Z (5 months ago)
- Topics: apache-arrow, geoarrow, geoparquet, geospatial, javascript, pyo3, python, rust, typescript, wasm-bindgen, webassembly
- Language: Rust
- Homepage: http://geoarrow.org/geoarrow-rs/
- Size: 13.9 MB
- Stars: 326
- Watchers: 9
- Forks: 27
- Open Issues: 113
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE_APACHE
Awesome Lists containing this project
README
# geoarrow-rs
[](https://github.com/geoarrow/geoarrow-rs/actions/workflows/ci.yml)
[](https://docs.rs/geoarrow/latest/geoarrow/)
[](https://crates.io/crates/geoarrow)
A Rust implementation of the [GeoArrow](https://github.com/geoarrow/geoarrow) specification and bindings to [GeoRust algorithms](https://github.com/georust/geo) for efficient spatial operations on GeoArrow memory.
This repository also includes [Python bindings](https://github.com/geoarrow/geoarrow-rs/blob/main/python/README.md) and [JavaScript (WebAssembly) bindings](https://github.com/geoarrow/geoarrow-rs/blob/main/js/README.md), wrapping the GeoArrow memory layout and offering vectorized geometry operations.
## Documentation
[**Documentation Website**](https://geoarrow.org/geoarrow-rs/)
## Examples
- [Rust examples](examples/README.md)
## References
- [Prototyping GeoRust + GeoArrow in WebAssembly](https://observablehq.com/@kylebarron/prototyping-georust-geoarrow-in-webassembly) gives an early preview of the JavaScript API.
- [GeoArrow and GeoParquet in deck.gl](https://observablehq.com/@kylebarron/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](https://kylebarron.dev/blog/geos-wasm) introduces why I think GeoRust + GeoArrow on the web has significant potential.
- [Zero-copy Apache Arrow with WebAssembly](https://observablehq.com/@kylebarron/zero-copy-apache-arrow-with-webassembly) explains how the JavaScript bindings are able to move memory between JavaScript and WebAssembly so efficiently.