|
5 | 5 |
|
6 | 6 | A Rust implementation of the [GeoArrow](https://github.com/geoarrow/geoarrow) specification. |
7 | 7 |
|
8 | | -<!-- and bindings to [GeoRust algorithms](https://github.com/georust/geo) for efficient spatial operations on GeoArrow memory. --> |
9 | | - |
10 | 8 | ## Crates |
11 | 9 |
|
12 | | -The `geoarrow-rs` repo is currently undergoing a large refactor from a single crate (`geoarrow`) to a monorepo of smaller crates, each with a more well-defined scope. As of May 2025, avoid using the `geoarrow` crate and instead use the newer crates with a smaller scope, like `geoarrow-array` and `geoarrow-schema`. |
| 10 | +| Name | Description | Version | Docs | |
| 11 | +| --------------------- | --------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ | |
| 12 | +| `geoarrow` | Amalgam crate which re-exports items from `geoarrow-array`, `geoarrow-cast`, and `geoarrow-schema`. | [](https://crates.io/crates/geoarrow) | [](https://docs.rs/geoarrow) | |
| 13 | +| `geoarrow-array` | GeoArrow array definitions. | [](https://crates.io/crates/geoarrow-array) | [](https://docs.rs/geoarrow-array) | |
| 14 | +| `geoarrow-cast` | Functions for converting from one GeoArrow geometry type to another. | [](https://crates.io/crates/geoarrow-cast) | [](https://docs.rs/geoarrow-cast) | |
| 15 | +| `geoarrow-flatgeobuf` | Reader and writer for FlatGeobuf files to GeoArrow memory. | [](https://crates.io/crates/geoarrow-flatgeobuf) | [](https://docs.rs/geoarrow-flatgeobuf) | |
| 16 | +| `geoarrow-schema` | GeoArrow geometry type and metadata definitions. | [](https://crates.io/crates/geoarrow-schema) | [](https://docs.rs/geoarrow-schema) | |
| 17 | +| `geoparquet` | GeoParquet reader and writer. | [](https://crates.io/crates/geoparquet) | [](https://docs.rs/geoparquet) | |
| 18 | + |
| 19 | +Additionally we are working on a few other crates that are not yet distributed on crates.io: |
13 | 20 |
|
14 | | -| Name | Description | Stability | Version | Docs | |
15 | | -| --------------------- | -------------------------------------------------------------------- | --------------- | ----------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ | |
16 | | -| `geoarrow-array` | GeoArrow array definitions. | Pretty stable | [](https://crates.io/crates/geoarrow-array) | [](https://docs.rs/geoarrow-array) | |
17 | | -| `geoarrow-cast` | Functions for converting from one GeoArrow geometry type to another. | Pretty stable | [](https://crates.io/crates/geoarrow-cast) | [](https://docs.rs/geoarrow-cast) | |
18 | | -| `geoarrow-flatgeobuf` | Reader and writer for FlatGeobuf files to GeoArrow memory. | Somewhat stable | [](https://crates.io/crates/geoarrow-flatgeobuf) | [](https://docs.rs/geoarrow-flatgeobuf) | |
19 | | -| `geoarrow-schema` | GeoArrow geometry type and metadata definitions. | Pretty stable | [](https://crates.io/crates/geoarrow-schema) | [](https://docs.rs/geoarrow-schema) | |
20 | | -| `geoparquet` | GeoParquet reader and writer. | Pretty stable | [](https://crates.io/crates/geoparquet) | [](https://docs.rs/geoparquet) | |
| 21 | +- `geoarrow-geo`: Integration with `geo` crate for spatial algorithms. |
| 22 | +- `geoarrow-geos`: Integration with `geos` crate for spatial algorithms. |
| 23 | +- `geodatafusion`: Integration with DataFusion. |
| 24 | +- `geodatafusion-flatgeobuf`: FlatGeobuf TableProvider for DataFusion. |
21 | 25 |
|
22 | 26 | ## Versioning |
23 | 27 |
|
24 | | -These crates may diverge in versioning to allow for some sub-crates to receive breaking changes while not forcing a breaking version change to all crates. However, all crates will receive a new breaking version at least every 3 months, as the upstream `arrow-rs` crates currently publish a breaking version every 3 months. |
| 28 | +These crates may possibly diverge in versioning in the future to allow for some sub-crates to receive breaking changes while not forcing a breaking version change to all crates. However, all crates will receive a new breaking version _at least_ every 3 months, as the upstream `arrow` crates currently publish a breaking version every 3 months. |
| 29 | + |
| 30 | +## Version compatibility |
| 31 | + |
| 32 | +| geoarrow | arrow-rs | |
| 33 | +| -------- | -------- | |
| 34 | +| 0.4.x | 55 | |
| 35 | +| 0.5.x | 56 | |
0 commit comments