Skip to content

rust-v0.4.0-geoparquet

Compare
Choose a tag to compare
@kylebarron kylebarron released this 08 Jul 15:50
· 75 commits to main since this release
58ad7a9

This is the tag for the v0.4 release of the geoparquet crate, which was delayed compared to the 0.4 release of the other crates.

0.4.0 (geoparquet crate) - 2025-07-08

New standalone geoparquet crate!

New Features 🪄

  • GeoParquet reader refactor to avoid making duplicate wrappers of upstream structs #1089
    • Removes wrapper structs for builders. So we no longer have a GeoParquetRecordBatchReaderBuilder or a GeoParquetRecordBatchStreamBuilder. Users will use upstream parquet sync/async Builder structs directly. Means a significantly lower maintenance overhead here, and we don't need to do anything to support new upstream functionality.

    • Adds GeoParquetReaderBuilder trait that extends the upstream ArrowReaderBuilder. This allows users to implement a spatial RowFilter directly on an upstream builder instance. It also allows low-level access, so that if a user wanted a spatial filter plus something else, that would be doable.

    • Allows user to choose when the WKB column should be parsed to a native GeoArrow type or not in the geoarrow_schema method. (the parse_to_native parameter)

    • Keeps wrapper structs for readers. So we still have a GeoParquetRecordBatchReader and a GeoParquetRecordBatchStream, but these are very lightweight wrappers.

      The benefit of having these wrapper structs is that we can ensure GeoArrow metadata is always applied onto the emitted RecordBatches.

  • Refactor of GeoParquetReaderMetadata and GeoParquetDatasetMetadata #1172
    • Remove Option for the geospatial metadata of each GeoParquetReaderMetadata and GeoParquetDatasetMetadata. We assume that if the user is using the geoparquet crate, all files will have valid GeoParquet metadata.
  • Remove GeoParquet writer wrappers and just expose encoder #1214
    • Similar to how we refactored the read side (#1089, #1172), this PR changes the writing APIs of the geoparquet crate to only provide additive APIs to the upstream parquet crate. So this is now intended to be used in conjunction with the upstream parquet crate, not exclusively of it.
  • Add support for writing covering column to GeoParquet #1216
    • Add support for generating the a bounding box covering column while writing data.
    • Reconfigure writer properties generation. This takes inspiration from the upstream parquet properties generation, and has both column specific properties and default properties. So you can set the encoding for all columns but you can also override the encodings for specific columns.
  • Allow passing primary column to parquet writer #1159
  • Correctly set geometry types in GeoParquet metadata when writing #1218