finds.dev← search

// the find

georust/geozero

★ 469 · Rust · Apache-2.0 · updated Jul 2026

Zero-Copy reading and writing of geospatial data.

GeoZero is a Rust library for converting between geospatial formats without materializing an intermediate geometry representation. You implement the `GeomProcessor` trait and GeoZero streams coordinates directly to your handler — no allocation per vertex. It's for anyone building geospatial pipelines in Rust who wants to avoid the shapefile→geo-types→WKB round-trip.

The trait-based streaming API is genuinely clever: you can count vertices, build spatial indexes, or render directly to a canvas without touching an intermediate heap-allocated geometry. PostGIS integration covers rust-postgres, SQLx, and Diesel with proper SRID-aware WKB encoding, which is the thing that breaks most people. Format coverage is wider than you'd expect for a 469-star project — MVT, GeoPackage, Shapefile, GPX, plus GeoArrow/GeoParquet via companion crates. The benchmarks are committed to the repo with violin plots, which means perf regressions are at least visible.

Write support is missing for half the formats — GPX, Shapefile, and FlatGeobuf are read-only, which will surprise anyone assuming symmetry. The bench results in the repo are from June 2020 and haven't been updated since; whether the numbers still reflect current performance is unknown. Coordinate reference system handling is absent from the core API — SRID shows up only in the PostGIS WKB path, so anything requiring reprojection requires reaching for GDAL or a separate crate. The `GeomProcessor` trait has a lot of methods with default no-op implementations, making it easy to silently miss a callback (e.g. forgetting `polygon_begin` when you only implement `xy`).

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →