Acknowledgements¶
RustGIS stands on the work of many projects and their authors. Thank you to all of them. If your work is missing here, please open an issue.
Disclaimer
RustGIS is primarily built with Claude Opus 5.5, an AI model by Anthropic, working under human direction and review. Its results are tested, but check them for your own use, and please report anything that looks wrong.
The GIS that came before¶
QGIS and ArcGIS Pro set the expectations of a desktop GIS that RustGIS is measured against, and GDAL those of reading geospatial formats. MapLibre defines the style specification RustGIS draws vector tiles with, and PROJ the coordinate operations it follows.
Geoprocessing¶
The optional GeoLibre tool suite (geolibre-rust, built on whitebox-wasm) brings more than 1,000 raster, vector, LiDAR and hydrology tools, after John Lindsay's WhiteboxTools.
Data¶
- Natural Earth (public domain) for the sample data.
- The EPSG Geodetic Parameter Dataset of IOGP, PROJ's database and Esri's projection-engine-db-doc for coordinate systems.
- OpenFreeMap, whose free vector tiles and styles (such as Liberty) draw RustGIS's vector basemaps.
- OpenStreetMap and its contributors, Overture Maps and Protomaps for basemaps and open map data.
- The scientific colour ramps of matplotlib (Viridis and family, Cividis), Google (Turbo), Fabio Crameri's Scientific colour maps and cmocean.
ATTRIBUTION.md lists every asset with its source and licence.
Rust crates¶
RustGIS is pure Rust, built on these crates, among others:
| Crate | For |
|---|---|
| egui and eframe, wgpu | The interface, natively and in the browser, and the GPU map |
| tiny-skia, lyon, ab_glyph, image | Drawing, tessellation, text and images |
| geo, geozero, shapefile, a5 | Geometry, formats and the A5 grid |
| proj4rs, crs-definitions | Coordinate systems |
| tiff, laz | GeoTIFF and LAZ |
| Apache Arrow and Parquet, flatgeobuf, rusqlite (SQLite), calamine, csv, roxmltree | GeoParquet, FlatGeobuf, GeoPackage, spreadsheets, CSV and XML |
| postgres, mysql, tiberius, rustls | Databases |
| miniz_oxide, brotli, ruzstd, lz4_flex, zip | Compression |
| wasmi | Sandboxed WebAssembly plugins |
| ureq, serde | HTTP and JSON |
| PyO3, wasm-bindgen, rfd | The Python package, the web app and file dialogs |
The full list of dependencies is in Cargo.toml and Cargo.lock.