RustGIS README

The project's README from github.com/opengeos/RustGIS. As one markdown file: README.md.

RustGIS logo: a rust-coloured cog framing a segmented globe with an orbit

RustGIS

A fast, free and open-source GIS in pure Rust for mapping, analyzing and sharing geospatial data.
Native on Windows, macOS and Linux, and in your web browser. Your data stays on your machine unless you send it to an AI model you choose, and every action is a command you can script.

Written in Rust License: Apache-2.0 16 languages Plugins PyPI Open in Colab

Launch the RustGIS web app Download the desktop app Read the documentation

RustGIS with the Home tab of the ribbon open. The Layers pane lists Cities, Rivers, Lakes and Countries with their legends; the map shows the world in the Equal Earth projection, countries shaded by population, sized city dots and country labels.

Why RustGIS

A tour

The Style tab with the Symbology pane showing graduated colours and colour schemes; the larger African countries are selected in cyan on the map and highlighted in the attribute table below

Symbology and tables. Selecting a layer opens its contextual tabs: symbology, effects, labeling and data. Selection is synced between the map and the attribute table.

The AI Assistant pane: asked for the five most populous African countries, it read the Countries table, selected them and zoomed to them

AI Assistant. Ask about your data or tell the map what to do. The assistant runs RustGIS commands for you, and each change can be undone.

The Analyze tab with a gallery of geoprocessing tools and the Tools pane showing Buffer; dissolved 300 km buffers around African cities

Analysis. A tool gallery, the Tools pane and a run history, guided workflows, ModelBuilder, and 1,000+ GeoLibre and Whitebox tools.

A shaded-relief elevation model of the Sierra Nevada with the Style tab open

Rasters. GeoTIFF and COG of any pixel type, reprojected on the fly, with stretch, RGB, classified and shaded-relief symbology.

The World Atlas drawn on a 3D globe with the View tab open

Globe and projections. A 3D globe, Equal Earth, Robinson, polar and regional presets, or any EPSG code.

An OpenFreeMap vector style over Paris, with the Basemap gallery listing the built-in basemaps and the web tile layer

Web basemaps. XYZ, TMS and WMS tiles, Mapbox Vector Tiles and MapLibre styles, on the flat map and the globe.

A landscape A4 page layout with a map frame, title, legend, north arrow and scale bar, and the Publish tab open

Layouts. Map frames, legends, scale bars, grids, map series and PDF export, plus reports and presentations.

The Plugin Manager browsing the plugin registry, listing Basemaps, Hello RustGIS, Map Explorer and Vector Toolkit with their permissions

Plugins. Browse and install sandboxed plugins from plugins.rustgis.app, each showing the permissions it asks for.

RustGIS in dark mode with the View tab open over a map of Europe on the Midnight basemap

Dark mode and the View tab: effects, scene settings, panes and linked views.

The Project backstage with cards to start a blank map, the World Atlas sample, or open a project

Projects. Start blank, from the World Atlas sample, or open a .rgis project.

Every screenshot is RustGIS itself, rendered offscreen by cargo run -p rustgis-ui-egui --example ui_shot.

Features

Area Highlights
Data GeoJSON, CSV/TSV with x/y columns in any coordinate system or WKT geometry, Excel and OpenDocument spreadsheets, GeoRSS, LandXML, encoded polylines, Shapefile (zipped too, in the browser as well), GeoPackage, GeoParquet, FlatGeobuf, KML/KMZ (with styles), GPX, GML, MapInfo MIF/MID, OpenStreetMap PBF, TopoJSON, AutoCAD DXF, LiDAR point clouds (LAS, LAZ, COPC) and geotagged photos in (large files read in place), files by their web address, every vector format GDAL reads when it is installed, and SQL queries and DuckDB databases through DuckDB Spatial when DuckDB is; PMTiles archives (web or file) and MBTiles files; GeoJSON, CSV, GeoPackage, GeoParquet, Shapefile, FlatGeobuf, KML/KMZ, GPX and WKT out; standalone tables; layer and map files, styles, templates and packages
Rasters GeoTIFF and cloud-optimised GeoTIFF (any pixel type, tiled or striped, compressed), ASCII grids, Zarr 2 and 3 stores (a variable at a time step, by folder or web address); reprojection from any EPSG code; Stretch, RGB, Classify, Unique Values, Colormap and Shaded Relief; DRA, band combinations, brightness/contrast/gamma; raster functions, indices, change detection, classification, georeferencing
Maps Multiple maps per project; a 3D globe; Web Mercator or any projection (Equal Earth, Robinson, Winkel Tripel, polar and regional presets, or an EPSG code); bookmarks, extent history, Go To XY; five offline basemaps
Web services WMS, WMTS, WFS, OGC API Features and ArcGIS REST (FeatureServer, MapServer, ImageServer, VectorTileServer) from their capabilities
Web tiles XYZ/TMS/WMS raster tiles, Mapbox Vector Tiles and MapLibre styles (sprites, patterns, expressions), cached and fetched in the background
Cartography Single symbol, unique values, graduated colours, proportional symbols; collision-free labels with placement, scale ranges and annotation; masking, display filters, aggregation bins, 2.5D extrusion; graphics and dynamic text
Editing Create, move, rotate, scale, merge, split and explode features; snapping, templates, elevation, traverse, topology rules; domains, subtypes, attribute rules, relationships, archiving; undo for everything
Analysis Selection by attributes (SQL) and location; Buffer, Clip, Erase, Dissolve, Summarize Within, Summary Statistics and more; viewshed, line of sight, IDW, shortest path, suitability modelling; ModelBuilder and scripts; 1,000+ GeoLibre and Whitebox raster, vector, LiDAR, hydrology and terrain tools
Imagery Ortho and reality mapping, pixel classification (k-means, minimum distance, a trainable neural network), mensuration, hosted imagery tiles
Layouts and reports Page layouts with map frames, legends, scale bars, grids and map series; reports with groups, statistics, charts and subreports; presentations (HTML slideshow, PDF); notebooks (Jupyter in and out)
Sharing PNG export at any DPI; PDF; web map pages, OGC API Features collections, MapLibre styles, glTF scenes, locators; project, map and mobile map packages; offline areas with sync
AI Assistant Ask about your data or tell the map what to do in plain language, with Anthropic, OpenAI, Gemini, OpenRouter, Ollama or any OpenAI-compatible model; also rustgis-cli ask, and an MCP server (rustgis-cli mcp) for Claude Code, Cursor, VS Code and other agents
Plugins Sandboxed WebAssembly plugins add commands, tools and ribbon tabs; install them from plugins.rustgis.app on the desktop, command line and web
Interface Command search (Ctrl+K), keyboard shortcuts, dark mode, a customizable ribbon and Quick Access Toolbar, linked side-by-side maps, 16 languages

The user guide covers each area in detail, Comparison sets RustGIS beside GeoLibre, QGIS and ArcGIS, and ROADMAP.md lists what's next.

Get RustGIS

Quick start

cargo run --release -p rustgis                       # the desktop app with the World Atlas sample
cargo run --release -p rustgis -- data.geojson       # open data (or a .rgis project)

Command line: every ribbon action is a command with an id.

rustgis-cli commands                                 # all command ids and parameters
rustgis-cli render countries.geojson map.png --basemap ocean
rustgis-cli run --sample \
  --cmd 'gp.run={"tool":"countPoints","params":{"polygons":"Countries","points":"Cities"}}' \
  --cmd 'layer.symbology={"layer":"Countries_Summarize","type":"graduated","field":"point_count"}' \
  --cmd 'share.exportMap={"path":"out.png","dpi":192}' --save atlas.rgis
rustgis-cli ask --sample "Which 5 countries have the largest GDP?"
claude mcp add rustgis -- rustgis-cli mcp --sample   # RustGIS as an MCP server for AI agents

See Command Line for more.

Python: the same engine and commands in-process (pip install rustgis), and the app itself in a Jupyter notebook.

import rustgis
s = rustgis.Session(sample=True)
s.run("gp.run", tool="buffer", params={"input": "Cities", "distance": 100})
s.to_png("map.png")
gdf = s.layer("Cities_Buffer").to_geopandas()

See Python and the getting-started notebook (open in Colab).

Architecture

Layered crates, each depending only on the ones below it:

Layer Crate Job
L0 rustgis-geom coordinates, extents, Web Mercator, geodesic distance/area, scale
L1 rustgis-data features and typed attributes; GeoJSON, CSV, Shapefile; GeoPackage, GeoParquet and FlatGeobuf providers; SQL where clauses; rasters and their coordinate systems
L2 rustgis-map, rustgis-analysis layers, symbology, labeling, camera, basemaps; geoprocessing (on geo)
L2 rustgis-tiles web map tiles: XYZ/TMS/WMS, Mapbox Vector Tiles, MapLibre styles, the tile cache
L3 rustgis-render tiny-skia renderer, label placement, PNG export, fonts
L3 rustgis-plugins sandboxed WebAssembly plugins and the plugin registry
L3 rustgis-geolibre the GeoLibre tool suite as geoprocessing tools
L4 rustgis-engine session, undo, command registry, sample project
L5 rustgis-assistant the AI Assistant: a chat agent that acts through commands
L6 rustgis-ui-egui the ribbon front end (swappable)
apps rustgis, rustgis-cli, rustgis-web desktop, command line, browser (WebAssembly)

cargo xtask ci runs formatting, clippy, the tests and the layering check. Contributor and agent notes: AGENTS.md.

Sponsor

RustGIS is free and open source, and stays that way. If it is useful to you or your team, sponsorship is the most direct way to keep development, hosting and cross-platform distribution going.

See the Become a Sponsor page for what sponsorship supports and for other, free ways to help.

License and credits

Licensed under the Apache License 2.0. Sample data from Natural Earth (public domain).

RustGIS (opengeos/RustGIS)

Searching Database…

1.3K ·GitHub
Что это такое?RustGIS — это бесплатное GIS-приложение с открытым исходным кодом, полностью написанное на Rust: оно создаёт карты, анализирует и публикует геопространственные данные.
Это одна программа или набор библиотек?Это одна нативная настольная программа с отрисовкой на GPU (не требует никаких сред выполнения или сервера), собранная из многоуровневых Rust-крейтов. Она также распространяется в виде CLI-утилиты и WebAssembly-сборки, которая работает прямо в браузере.
Как запустить RustGIS?Откройте web.rustgis.app — браузерная версия не требует установки; скачайте настольные сборки с downloads.rustgis.app или со страницы GitHub releases; установите через winget/brew/yay/dnf copr; либо соберите из исходников командой 'cargo run --release -p rustgis' (нужен Rust 1.90+).
Нужен ли API-ключ для AI Assistant?Только если вам нужен AI Assistant. Он умеет работать с Anthropic, OpenAI, Gemini, OpenRouter, любым OpenAI-совместимым эндпоинтом или локальной моделью через Ollama — то есть вы используете свой ключ или запускаете всё офлайн через Ollama. Остальной части приложения ничего дополнительного не нужно.
Поддерживает ли он все GIS-форматы файлов сразу?Большинство векторных и растровых форматов читаются нативно, но чтобы открывать все векторные форматы, которые поддерживает GDAL, или выполнять SQL-запросы к базам DuckDB, GDAL или DuckDB нужно установить отдельно на свой компьютер.
На каких платформах он работает?RustGIS нативно работает на Windows, macOS и Linux, а тот же движок скомпилирован в WebAssembly и доступен прямо в браузере по адресу web.rustgis.app.
Что за инструменты GeoLibre и Whitebox?Это два встроенных набора инструментов, которые дают RustGIS более 1 000 инструментов геообработки для анализа рельефа, гидрологии, данных LiDAR и дистанционного зондирования.
Можно управлять RustGIS скриптом, а не нажимать кнопки?Да. Каждое действие на ленте — это команда с идентификатором: её можно запустить из rustgis-cli, объединять в цепочки в ноутбуках или ModelBuilder, либо поручить выполнить AI Assistant.
Можно работать с RustGIS из Python?Да. После 'pip install rustgis' тот же движок и те же команды доступны прямо внутри процесса Python, а само приложение может работать внутри Jupyter-ноутбука.
Чем RustGIS отличается от QGIS или ArcGIS?В документе Comparison из README RustGIS ставится в один ряд с GeoLibre, QGIS и ArcGIS: цель — не уступать им по возможностям анализа и картографии, оставаясь при этом одним нативным исполняемым файлом без сред выполнения и серверов.
Creator
opengeos
Size
3.3 MB
Stars
1.3K
Age
7d
Commits · 90 Days