2 releases
0.0.2 | Nov 22, 2023 |
---|---|
0.0.1 | Jul 10, 2023 |
#239 in Geospatial
Used in geoarrow-wasm
2MB
21K
SLoC
NAME CHANGE:
This crate was originally published under the name geoarrow2
because someone
else had reserved the crate name
geoarrow
. That person did not plan
to work on geoarrow
and transferred ownership of that name to me, so future
releases will be under the geoarrow
crate name.
geoarrow-rs
A Rust implementation of the GeoArrow specification and bindings to GeoRust algorithms for efficient spatial operations on GeoArrow memory.
This repository also includes JavaScript (WebAssembly) bindings, wrapping the GeoArrow memory layout and offering vectorized geometry operations.
Documentation
- Rust library https://docs.rs/geoarrow2/latest/geoarrow2/
- JavaScript library: https://kylebarron.dev/geoarrow-rs/js
- Rust wasm-bindgen library: https://docs.rs/geoarrow-wasm/latest/geoarrow_wasm/
Examples
Install
Add this to your Cargo.toml
:
geoarrow = { package = "geoarrow2", version = "0.1" }
This will let you reference the package name as geoarrow
in your code, even though the name on Crates.io is geoarrow2
. Sadly the name geoarrow
is squatted on by an empty package.
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.
Dependencies
~19–33MB
~498K SLoC