Skip to content

About

A curated list of awesome geospatial software, libraries, tools and resources, written in Rust

Resources

Contributing

Stars

416 stars

Watchers

18 watching

Forks

Latest commit

 

History

109 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

Awesome Geo Rust awesome

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.
  • Rust Geodesy - A geodesy library written in Rust.
  • 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.
  • cheap-ruler-rs - Collection of very fast approximations to common geodesic measurements.
  • flat-projection - Fast geodesic distance approximations via flat surface projection.
  • sguaba - Types for points and vectors in coordinate spaces and transformations based on rigid body transforms.
  • geocentric-rs - Conversion between geodetic (geographic) and geocentric (cartesian) coordinates.

Spatial index / Partioning

  • rstar - R*-tree library for the rust ecosystem.
  • kdtree - K-dimensional tree in Rust for fast geospatial indexing and nearest neighbors lookup
  • sif-rtree and sif-kdtree - R and K-D trees which can be memory-mapped directly from disk.
  • geo-index - Fast, immutable, ABI-stable spatial indexes.
  • kdbush - A Rust port of kdbush, a fast static spatial index for 2D points.
  • static-bushes - Port of the Flatbush and KDBush JS libraries to Rust.
  • spade - Delaunay Triangulations for the Rust ecosystem.
  • delaunator-rs - A very fast static 2D Delaunay triangulation library for Rust. 3 Delatin - Simple and fast TIN generation library,
  • earcutr - Port of MapBox's earcut triangulation code to Rust language.
  • earcut-rs - Port of the Earcut polygon triangulation library with performance in mind.
  • iTriangle - A fast, stable, and robust 2d triangulation library.
  • boostvoronoi - Segmented Voronoi for Rust.
  • geo-quadkey-rs - Rust library for encoding and decoding geographical coordinates to and from QuadKeys.
  • h3o - Rust implementation of the H3 geospatial indexing system.
  • Quadbin - Hierarchical geospatial index tiling, similar to Quadkey.
  • A5 - Rust library for the A5 geospatial indexing system, a new alternative to S2 and H3 using irregular, equilateral pentagons.

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.
  • RINEX - RINEX analysis & and processing.
  • shapefile-rs - Rust library to read & write shapefiles.
  • TileJSON - Work with TileJSON files.
  • Transit - Work with GTFS files.
  • transit_model - Manage, convert and enrich transit data.
  • FastGtfs - GTFS parsing, navigation, time table creation, and real-time network simulation.
  • gtfs-structures - Read GTFS files into structs, with smart references.
  • 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.
  • cql2-rs - Library for parsing the OGC CQL2 filter language.

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.
  • osmx - Rust port of OSMExpress, a fast database file format for OpenStreetMap.
  • osm-lump-ways - Group OSM ways based on topology & shared tags
  • osm-pbf-parquet - Transcode OSM PBF file to parquet files.
  • cosmo - Filter & transform OSM PBF data to geoparquet or geojson.

More crates based on osmpbfreader-rs

3D

  • density mesh - Image density/height map to mesh generator.
  • startin - A Delaunay triangulator for processing TINs.
  • geom3d - Data structures and algorithms for 3D geometric modeling.

Geocoding

  • GeoHash - Compute geohash of locations.
  • Geocoding - Enrich addresses, cities, countries with geographic coordinates through third-party geocoding web services.
  • Airmail - Lightweight geocoder in pure Rust.
  • country-boundaries - A fast offline reverse geocoder: Find the area in which a geo position is located.

Routing

  • Fast Paths - Fast shortest path calculations for Rust.
  • osm_ch - OSM-Contraction-Hierarchies.
  • routrs - Geograph-based shortest distance calculation for Rust.
  • rustworkx - A high-performance, general-purpose graph library for Python, written in Rust.
  • RouteE Compass - An energy-aware vehicle routing engine.
  • Routers - Set of routing tools designed for system-agnostic maps.

Web Services

  • t-rex - Vector tile server specialized on publishing MVT tiles from your own data.
  • Martin - Blazing fast and lightweight PostGIS, MBtiles and PMtiles tile server with support for tile generation and mbtiles tooling.
  • Hecate - Fast Geospatial Feature Storage API.
  • BBOX services - Composable spatial services.
  • MVT Server - Simple and high-speed vector tile server with a built-in web-based admin interface.

Map rendering

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.
  • Ferrostar - A FOSS navigation SDK built from the ground up for the future.
  • Arnis - Generate any location from the real world in Minecraft Java Edition with a high level of detail.
  • Karttapullautin - A fast and accurate map generator from classified LiDAR data.
  • SedonaDB - Single-node analytical database engine with geospatial as the first-class citizen.
  • Vector Tile Builder - Web application for generating vector tiles in the browser

Watchlist

  • 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.
  • polygon-offsetting - Offset a polygon (only margin).
  • Cavalier Contours - 2D polyline/shape library for offsetting, combining, etc.
  • 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 - Cloud Optimized Point Cloud (COPC) reader and writer.
  • zarrs - A rust library for the Zarr V3 storage format for multidimensional arrays and metadata.
  • pasture - A Rust library for working with point cloud data.
  • 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.
  • Polars ST - Spatial extension for Polars DataFrames.
  • 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
  • s2-pmtiles - Read/Write PMTiles V3.0 as well as S2PMTiles V1.0
  • Proj4rs - Rust adaptation of Proj4
  • Proj4wkt - Parse WKT to Proj strings
  • Louvre - Computational Geometry Library with Rust
  • gpkg-rs - A Rust crate for reading and writing GeoPackages.
  • georaster - Rust library for accessing geospatial raster images (GeoTIFF).
  • jord - Geographical Position Calculations (spherical + ellipsoidal models and local frames).
  • tzf-rs - Get timezone via longitude&latitude in Rust in a fast way
  • geometry-rs - Partial port of tidwall/geometry (efficient 2D geometry library for Go).
  • pasture - Rust library for point cloud processing.
  • rout3serv - H3-grid based Routing server with GRPC-API and dataframe integration.
  • geoserde - Adapter between geographic feature and GIS files.
  • geojson-vt-rs - Crate for slicing GeoJSON into vector tiles on the fly.
  • The Roaring Landmask - A fast and memory-limited landmask based on GSHHG for determing whether a point on Earth is on land or in the ocean.
  • Galileo - General purpose cross-platform geo-rendering library.
  • Gauzilla - 3D Gaussian Splatting renderer for WebAssembly with lock-free multithreading.
  • utiles - utils & tiles w/ (rs & pyo3).
  • earclip - Triangle mesh designed to be fast, efficient, and sphere capable.
  • iOverlay - Boolean Operations for 2D Polygons: Supports intersection, union, difference, xor, and self-intersections for all polygon varieties.
  • linesweeper - Two-dimensional geometric primitives like boolean operations on sets bounded by Bézier paths.
  • Solari - Multimodal routing in Rust.
  • plateau-gis-converter - A GUI and CLI tool for converting PLATEAU's 3D city models (CityGML) of Japan into various geospatial formats, including 3D Tiles, MVT, and GeoPackage.
  • anime - Approximate Network Matching, Integration, and Enrichment.
  • rusterize - High performance rasterization tool for python built in Rust.
  • maplibre-legend - Maplibre legend generator crate.
  • geocart - A bridge between geographic and cartesian coordinates.
  • Bevy Point Cloud - A Bevy plugin to render point clouds.
  • CGAR - Computational Geometry Algorithms for Rust.
  • etiles - A Rust library for processing 3D Tiles data.
  • rusqlite-gpkg - GeoPackage reader/writer built on top of rusqlite.

Resources

crates.io

Community

  • Discord - GeoRust Discord channel

About

A curated list of awesome geospatial software, libraries, tools and resources, written in Rust

Resources

Contributing

Stars

416 stars

Watchers

18 watching

Forks

Releases

Packages

Contributors