Awesome Geo Rust
A curated list of awesome geospatial software, libraries, tools and resources, written in Rust
Rust, a language empowering everyone to build reliable and efficient software.
Contributions welcome. Add links through pull requests or create an issue to start a discussion. Please take a look at the contribution guidelines.
Contents
Geospatial primitives and algorithms
- Geo - Geospatial primitives such as Point & LineString, and algorithms such as distance, convex hull, centroidcalculations.
- GEOS - Bindings for the Geometry Engine - Open Source (GEOS) library.
- Robust - Robust primitives for computational geometry.
- PROJ - Bindings for the PROJ library for coordinate transformation and projections.
- geographiclib-rs - A port of geographiclib (geodesic calculations).
- S2 - S2 spherical geometry library in Rust.
- rust-geo-booleanop - Rust implementation of the Martinez-Rueda Polygon Clipping Algorithm.
- intersect2d - Line intersection sweep-line algorithm.
- spatial-join - Perform streaming geospatial-joins on geographic data.
- tile-grid - Library for map tile grid calculations.
- zonebuilder - Build zones for large geographic regions.
- Polylabel-rs - A Rust implementation of the Polylabel algorithm, with FFI.
Spatial index / Partioning
- rstar - R*-tree library for the rust ecosystem.
- kdbush - A Rust port of kdbush, a fast static spatial index for 2D points.
- spade - Delaunay Triangulations for the Rust ecosystem.
- delaunator-rs - A very fast static 2D Delaunay triangulation library for Rust.
- earcutr - Port of MapBox's earcut triangulation code to Rust language.
- boostvoronoi - Segmented Voronoi for Rust.
Handling GIS data formats
- GDAL - Bindings for the Geographic Data Abstraction Library (GDAL) for reading and writing raster and vector GIS files.
- GeoZero - Zero-Copy reading and writing of geospatial data.
- GeoJSON - Work with GeoJSON files.
- GPX - Work with GPS files.
- kml - Rust support for reading and writing KML.
- GeoTIFF - Work with GeoTIFF raster files.
- image-tiff - TIFF decoding and encoding library in pure Rust.
- netCDF - Bindings for Network Common Data Form (netCDF) library. Can read and write HDF5 files.
- hdf5-rust - Thread-safe Rust bindings and high-level wrappers for the HDF5 library API.
- N5 - N5 "Not HDF5" tensor file system format.
- shapefile-rs - Rust library to read & write shapefiles.
- TileJSON - Work with TileJSON files.
- Transit - Work with GTFS files.
- FastGtfs - GTFS parsing, navigation, time table creation, and real-time network simulation.
- WKT - Work with Well-Known Text (WKT) files.
- World file - Work with World-files.
- FlatGeobuf - A performant binary encoding for geographic data based on flatbuffers.
- las-rs - Read and write ASPRS las files.
- stac-rs - Rust implementation of the SpatioTemporal Asset Catalog (STAC) specification.
- pgstac-rs - Rust interface for pgstac.
Raster and image processing
- rasters.rs - Raster processing library and tools written in rust.
- geo-rasterize - A pure-rust 2D rasterizer for geospatial applications.
OSM data handling
- osmpbfreader-rs - Read OpenStreetMap PBF files.
- osmpbf - Library for reading the OpenStreetMap PBF file format.
- osm_boundaries_utils_rs - Read OpenStretMap relations with type=boundary as valid MultiPolygon.
- osm-transit-extractor - Extract OSM public transport data and write to CSV files.
- Pbfextractor - Create graph files out of OSM and SRTM data
- osmflat - OpenStreetMap flatdata format and compiler.
More crates based on osmpbfreader-rs
3D
- density mesh - Image density/height map to mesh generator.
- startin - A Delaunay triangulator for processing TINs.
Geocoding
- GeoHash - Compute geohash of locations.
- Geocoding - Enrich addresses, cities, countries with geographic coordinates through third-party geocoding web services.
- Mimirsbrunn - Geocoding and reverse-geocoding (with OSM data).
Routing
- Fast Paths - Fast shortest path calculations for Rust.
- osm_ch - OSM-Contraction-Hierarchies.
Web Services
- t-rex - Vector tile server specialized on publishing MVT tiles from your own data.
- Martin - Blazing fast and lightweight PostGIS vector tiles server.
- Hecate - Fast Geospatial Feature Storage API.
Map rendering
- osm-renderer - OpenStreetMap raster tile renderer.
Applications
- A/B Street - A traffic simulation game exploring how small changes to roads affect cyclists, transit users, pedestrians, and drivers.
- Geo Engine - Cloud-ready geospatial data processing platform with workflows, raster and vector support and OGC-compliant interfaces.
- rgis - Performant, cross-platform (web, desktop) GIS app written in Rust
- sst - streaming startin.
- WhiteboxTools - Geospatial data analysis platform with more than 465 tools for processing various types of geospatial data.
Watchlist
- Rust Geodesy - A platform for experiments with geodetic software, transformations, and standards.
- Miniproj - Geographic transformations between different coordinate systems defined by the European Petroleum Survey Group.
- coord_transforms - Rust crate for performing coordinate transforms.
- maplibre-rs - Native Maps for Web, Mobile and Desktop.
- RGeometry - Computational Geometry library written in Rust.
- offset-polygon - A Rust crate for offsetting (shrinking/expanding) polygons.
- map-engine - A rust library to work with tiled geospatial (raster) data.
- rust_road_router - Rust routing framework and toolkit.
- Sailor - A sailing navigation application.
- OGC API - OGC API building blocks.
- copc-rs - COPC reader.
- Zarr - Rust implementation of the Zarr N-dimensional array format.
- pasture - A Rust library for working with point cloud data.
- h3o - Rust implementation of the H3 geospatial indexing system.
- bevy-potree
- cogbuilder
- vrt-file
- PlanetVectorTile - A map engine enabling you to have the entire map of the OSM planet on your own computer.
- GeoPolars - Geospatial extensions for Polars.
- country-geocoder - Reverse geocode WGS84 coordinates to an ISO country-code.
- Skeleton Tracing - A new algorithm for retrieving topological skeleton as a set of polylines from binary images.
- poly2tri-rs - Calculate CDT (Constrained Delaunay Triangulation) on a polygon.
- PMTiles (for Rust) - Rust implementation of PMTiles
- PMTiles (for Rust) - Low level implementation of the PMTiles format
Resources
crates.io
- Category Science::Geospatial
Community
- Discord - GeoRust Discord channel