From 77df1ad1b3e30d2f3a9140f496df268a1b304e04 Mon Sep 17 00:00:00 2001 From: giswqs Date: Sat, 24 Oct 2026 16:43:15 -0400 Subject: [PATCH 1/3] Release v0.4.0: version, roadmap and highlights --- Cargo.lock | 32 +++++++------- Cargo.toml | 2 +- README.md | 19 +++++---- ROADMAP.md | 114 +++++++++++++++++++++++++++----------------------- docs/index.md | 24 ++++++----- 5 files changed, 103 insertions(+), 88 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1a4d73d1b..36362188c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4635,7 +4635,7 @@ dependencies = [ [[package]] name = "rustgis" -version = "0.3.0" +version = "0.4.0" dependencies = [ "apple-native-keyring-store", "eframe", @@ -4657,7 +4657,7 @@ dependencies = [ [[package]] name = "rustgis-analysis" -version = "0.3.0" +version = "0.4.0" dependencies = [ "a5", "geo", @@ -4670,7 +4670,7 @@ dependencies = [ [[package]] name = "rustgis-assistant" -version = "0.3.0" +version = "0.4.0" dependencies = [ "base64 0.23.1", "getrandom 0.4.3", @@ -4688,7 +4688,7 @@ dependencies = [ [[package]] name = "rustgis-cli" -version = "0.3.0" +version = "0.4.0" dependencies = [ "rustgis-assistant", "rustgis-engine", @@ -4697,7 +4697,7 @@ dependencies = [ [[package]] name = "rustgis-data" -version = "0.3.0" +version = "0.4.0" dependencies = [ "arrow-array", "arrow-schema", @@ -4742,7 +4742,7 @@ dependencies = [ [[package]] name = "rustgis-engine" -version = "0.3.0" +version = "0.4.0" dependencies = [ "base64 0.23.1", "iana-time-zone", @@ -4765,7 +4765,7 @@ dependencies = [ [[package]] name = "rustgis-geolibre" -version = "0.3.0" +version = "0.4.0" dependencies = [ "flate2", "log", @@ -4781,14 +4781,14 @@ dependencies = [ [[package]] name = "rustgis-geom" -version = "0.3.0" +version = "0.4.0" dependencies = [ "serde", ] [[package]] name = "rustgis-map" -version = "0.3.0" +version = "0.4.0" dependencies = [ "base64 0.23.1", "proj4rs", @@ -4802,7 +4802,7 @@ dependencies = [ [[package]] name = "rustgis-plugins" -version = "0.3.0" +version = "0.4.0" dependencies = [ "base64 0.23.1", "log", @@ -4820,7 +4820,7 @@ dependencies = [ [[package]] name = "rustgis-python" -version = "0.3.0" +version = "0.4.0" dependencies = [ "pyo3", "pyo3-build-config 0.30.1", @@ -4830,7 +4830,7 @@ dependencies = [ [[package]] name = "rustgis-render" -version = "0.3.0" +version = "0.4.0" dependencies = [ "ab_glyph", "base64 0.23.1", @@ -4853,7 +4853,7 @@ dependencies = [ [[package]] name = "rustgis-tiles" -version = "0.3.0" +version = "0.4.0" dependencies = [ "brotli", "brotli-decompressor", @@ -4873,7 +4873,7 @@ dependencies = [ [[package]] name = "rustgis-ui-egui" -version = "0.3.0" +version = "0.4.0" dependencies = [ "base64 0.23.1", "bytemuck", @@ -4898,7 +4898,7 @@ dependencies = [ [[package]] name = "rustgis-web" -version = "0.3.0" +version = "0.4.0" dependencies = [ "eframe", "egui", @@ -7331,7 +7331,7 @@ checksum = "e450f9b2ed1dff33c94c12589a87338689467b9c4f5d8a5710bd09a847d2c8a7" [[package]] name = "xtask" -version = "0.3.0" +version = "0.4.0" dependencies = [ "serde_json", ] diff --git a/Cargo.toml b/Cargo.toml index 403d8a60a..0097c4f9b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,7 +4,7 @@ members = ["crates/*", "apps/*", "xtask"] default-members = ["crates/*", "apps/rustgis", "apps/rustgis-cli", "xtask"] [workspace.package] -version = "0.3.0" +version = "0.4.0" edition = "2024" license = "Apache-2.0" rust-version = "1.90" diff --git a/README.md b/README.md index 885086980..d0ffb9211 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@

Written in Rust License: Apache-2.0 - 17 languages + 18 languages Plugins PyPI Open in Colab @@ -41,7 +41,8 @@ tools and the AI model you pick, which receives your questions and the data it reads to answer them. - **Everything is a command.** Every button in the ribbon is a command with an id. Script it from - `rustgis-cli`, chain it in notebooks and models, or ask the AI Assistant to run it for you. + `rustgis-cli`, chain it in notebooks and models, use completion in the Script pane, or ask the + AI Assistant to run it for you. - **Familiar.** A ribbon laid out in the order of the work (Home, Data, Style, Edit, Analyze, View, Publish), Layers and Browser panes, an attribute table, and undo for every change. - **Extensible.** Over 1,000 GeoLibre and Whitebox tools for terrain, hydrology, LiDAR and remote sensing, and @@ -90,20 +91,20 @@ Every screenshot is RustGIS itself, rendered offscreen by `cargo run -p rustgis- | 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, PostGIS, MySQL and MariaDB tables read live (desktop), 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), and JPEG 2000, NetCDF, HDF, ERDAS Imagine and the other rasters GDAL reads when it is installed (desktop); 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 and layouts per project, renamed and duplicated from the Browser pane; 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, with borders in two worldviews | +| **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, Esri File Geodatabases without GDAL (desktop), PostGIS, MySQL, MariaDB and SQL Server tables read live (desktop), 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; reusable connections; supported QGIS projects and layer styles; 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), and JPEG 2000, NetCDF, HDF, ERDAS Imagine and the other rasters GDAL reads when it is installed (desktop); 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; cloud-optimised GeoTIFF export; data cubes, point time-series charts, temporal summaries and trends | +| **Maps** | Multiple maps and layouts per project, renamed and duplicated from the Browser pane; tilt, rotation, terrain and a 3D globe; maps of the Moon, Mars and other celestial bodies; 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, with borders in two worldviews | | **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 | +| **Cartography** | Single symbol, unique values, graduated colours, proportional symbols; label classes with SQL queries, straight and curved line placement, installed font families, scale ranges and annotation; stacked and dashed line strokes, symbol levels, reference scales and polygons without fill; 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](https://github.com/opengeos/geolibre-rust) and Whitebox raster, vector, LiDAR, hydrology and terrain tools | +| **Analysis** | Selection by attributes (SQL) and location; Buffer, Clip, Erase, Dissolve, Summarize Within, Summary Statistics, Spatial Join, Zonal Statistics, A5 grids and a geometry calculator; viewshed, line of sight, IDW, ordinary kriging, shortest path, suitability modelling; ModelBuilder on a node canvas and scripts with command, parameter and value completion; 1,000+ [GeoLibre](https://github.com/opengeos/geolibre-rust) 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) | +| **Layouts and reports** | Page layouts with map frames, legends, scale bars, grids and map series; publication sheets and figures in one command, format panes, guides, snapping and element locks; 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 (a key, or your ChatGPT plan by signing in), Gemini, OpenRouter, Ollama or any OpenAI-compatible model; also `rustgis-cli ask`, and an [MCP server](docs/mcp.md) (`rustgis-cli mcp`) for Claude Code, Cursor, VS Code and other agents | | **Plugins** | Sandboxed WebAssembly [plugins](docs/plugins.md) add commands, tools and ribbon tabs; install them from [plugins.rustgis.app](https://plugins.rustgis.app) on the desktop, command line and web | -| **Interface** | Layers, Browser and Data Sources panes as tabs, command search (Ctrl+K), keyboard shortcuts, dark mode, a customizable ribbon and Quick Access Toolbar, linked side-by-side maps, 17 languages | +| **Interface** | Layers, Browser and Data Sources panes as tabs, command search (Ctrl+K), keyboard shortcuts, dark mode, a customizable ribbon and Quick Access Toolbar, linked side-by-side maps, 18 languages | The [user guide](https://rustgis.app/user-guide/) covers each area in detail, [Comparison](https://rustgis.app/comparison/) sets RustGIS beside GeoLibre, QGIS and ArcGIS, and diff --git a/ROADMAP.md b/ROADMAP.md index a9a18b442..ab116e7f1 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -1,6 +1,6 @@ # Roadmap -_Last reviewed: 2026-10-23 (v0.3.0). Reviewed weekly; if this date is old, trust the linked issues +_Last reviewed: 2026-10-24 (v0.4.0). Reviewed weekly; if this date is old, trust the linked issues over this page._ This page says where RustGIS is heading and where help is most useful. Details live in the linked @@ -38,13 +38,6 @@ comment on its issue or pull request and open a draft pull request early. [#722](https://github.com/opengeos/RustGIS/issues/722)). - Georeferencer: side-by-side window, transform picker, more formats ([#609](https://github.com/opengeos/RustGIS/issues/609)). -- Script pane: completion of values such as layer and field names - ([#662](https://github.com/opengeos/RustGIS/issues/662)). -- Connection manager for databases and web services - ([#699](https://github.com/opengeos/RustGIS/issues/699)). -- Zonal statistics as a built-in tool ([#718](https://github.com/opengeos/RustGIS/pull/718)). -- A "No fill" option for polygons ([#745](https://github.com/opengeos/RustGIS/pull/745), for - [#644](https://github.com/opengeos/RustGIS/issues/644)). ## Next @@ -68,8 +61,8 @@ Correct, robust and recoverable, with the foundations other themes stand on. - Reloading files changed on disk. - Autosave and crash recovery: reopen unsaved work after a crash. - Signed Windows builds (no SmartScreen warning), then in-place updates. -- A secret store in the OS keychain for database, S3 and service connections (they are kept for - the session only today). +- Extend the OS keychain secret store to service connections (database passwords, S3 keys and + AI provider keys can already be remembered). - Overlay tools beside Clip and Erase: intersect, union, identity and near _(open)_. - Vector tools, each writing a new layer: join field (a one-off attribute join), merge (append layers), extract vertices, points along lines, check and fix geometry _(open)_. @@ -92,7 +85,7 @@ And alongside it: - Kernel density (heat map) as a tool and as a renderer; point clustering. - SVG and PNG markers, fill patterns and a symbol library. - A legend and colour bar on the map. -- Style import: QGIS QML and SLD styles applied to layers. +- Extend QGIS QML style import beyond the supported renderers; add SLD styles. - A histogram for raster stretches; raster attribute tables. ### Data at the source @@ -152,61 +145,78 @@ Open questions rather than plans; discuss before building. - Native NetCDF-4/HDF5 without GDAL ([#396](https://github.com/opengeos/RustGIS/issues/396)), kerchunk and Icechunk. - An SQL engine in the web app. -- Planetary coordinate systems ([#223](https://github.com/opengeos/RustGIS/issues/223)). -- Opening QGIS and ArcGIS Pro projects. +- Broader QGIS project compatibility and opening ArcGIS Pro projects (supported QGIS projects + already open as maps). - An in-app Python console; an R package. - AI segmentation and detection (SAM, ONNX models). ## Done - Layered workspace, command registry with undo, project files (`.rgis`), `rustgis-cli`, the web app (WebAssembly, installable with offline start, opened with a project or data by its - web address), 17 interface languages; a ribbon laid out in the order of the work - (Home, Data, Style, Edit, Analyze, View, Publish), start-up preferences, Check for Updates. -- Data: files by their web address; GeoJSON, CSV/TSV (x/y in any EPSG system, or WKT), Excel and OpenDocument spreadsheets, - GeoRSS, LandXML, encoded polylines, Shapefile (zipped too, with the coordinate system in its - `.prj`), GeoPackage, GeoParquet, FlatGeobuf, KML/KMZ (styles included), GPX, GML, MapInfo MIF, OSM PBF, TopoJSON, DXF and LiDAR (LAS/LAZ/COPC) in, all of them - in the web app too (large files read in place, a view at a time); Esri File Geodatabases without GDAL (desktop; 3D multipatches - as footprints with their heights); the vector formats GDAL reads when it is installed, PostGIS, MySQL, MariaDB and SQL Server tables read live (desktop), and SQL queries - and DuckDB databases (DuckDB Spatial) when DuckDB is; GeoJSON, CSV, GeoPackage, GeoParquet, Shapefile, FlatGeobuf, KML/KMZ, GPX and WKT out; + web address), 18 interface languages; a ribbon laid out in the order of the work (Home, Data, + Style, Edit, Analyze, View, Publish), start-up preferences, Check for Updates. +- Data: files by their web address; GeoJSON, CSV/TSV (x/y in any EPSG system, or WKT), Excel + and OpenDocument spreadsheets, GeoRSS, LandXML, encoded polylines, Shapefile (zipped too, + with the coordinate system in its `.prj`), GeoPackage, GeoParquet, FlatGeobuf, KML/KMZ + (styles included), GPX, GML, MapInfo MIF, OSM PBF, TopoJSON, DXF and LiDAR (LAS/LAZ/COPC) in, + all of them in the web app too (large files read in place, a view at a time); Esri File + Geodatabases without GDAL (desktop; 3D multipatches as footprints with their heights); the + vector formats GDAL reads when it is installed, PostGIS, MySQL, MariaDB and SQL Server tables + read live (desktop), and SQL queries and DuckDB databases (DuckDB Spatial) when DuckDB is; + GeoJSON, CSV, GeoPackage, GeoParquet, Shapefile, FlatGeobuf, KML/KMZ, GPX and WKT out; standalone tables; geotagged photos and KML ground overlays; geocoding (Find Place, address - tables); a Data Sources pane (favourites, recent, saved services, a library) and an SQL pane - (DuckDB Spatial); layer, map, style, template, task and package files. -- Open data: STAC search (Planetary Computer assets), NASA Earthdata (desktop), Hugging Face, Overture Maps, Source Cooperative, - OpenStreetMap by area (Overpass), geoBoundaries, CKAN, Socrata and ArcGIS Hub portals, and - S3 buckets with signed connections and a bucket browser. + tables); a Data Sources pane (favourites, recent, saved services, a library, reusable + connections and dataset browsing) and an SQL pane (DuckDB Spatial); layer, map, style, + template, task and package files; supported QGIS `.qgs`/`.qgz` projects opened as maps, with + layer styles. +- Open data: STAC search (Planetary Computer assets), NASA Earthdata (desktop), Hugging Face, + Overture Maps, Source Cooperative, OpenStreetMap by area (Overpass), geoBoundaries, CKAN, + Socrata and ArcGIS Hub portals, and S3 buckets with signed connections and a bucket browser. - Rasters: GeoTIFF/COG (by web address, read in place by range; Zstandard too) and ASCII grids, - Zarr 2 and 3 stores (a variable's step, by folder or web address), and JPEG 2000, NetCDF, HDF, ERDAS Imagine… through GDAL, - EPSG reprojection, stretch/RGB/classified/shaded-relief + Zarr 2 and 3 stores (a variable's step, by folder or web address), and JPEG 2000, NetCDF, + HDF, ERDAS Imagine… through GDAL, EPSG reprojection, stretch/RGB/classified/shaded-relief symbology, raster functions, indices, change detection, classification, georeferencing; - cloud-optimised GeoTIFFs out; data cubes on a time slider, with trends (Sen's slope, Mann–Kendall). + cloud-optimised GeoTIFFs out; data cubes on a time slider, point time-series charts, temporal + and categorical summaries, and trends (Sen's slope, Mann–Kendall), including STAC bands read + in place. - Services: WMS, WMTS, WFS, WCS, OGC API Features and Tiles, and ArcGIS REST, listed from their capabilities; CSW catalogue search. -- Maps: multiple maps, a GPU renderer (beta) with smooth zoom and pan, tilt, rotation and terrain, a 3D globe with the flat - map draped over it, projection presets and EPSG codes (features cut along the edge of world - projections), a search box for layers, places and coordinates, bookmarks, web tile - layers (XYZ/TMS/WMS, Mapbox Vector Tiles, MapLibre styles, PMTiles and MBTiles archives), - a basemap gallery (OpenFreeMap, USGS Imagery), worldviews. -- Cartography: single, unique values, graduated colours (natural breaks, equal interval, quantile, - geometric interval, standard deviation, manual) and proportional symbols; layer groups; - label classes with SQL queries, placement and annotation; custom colour ramps (and QGIS, GDAL - and GMT palette files); masking, display filters, blend modes, aggregation, extrusion; graphics. -- Editing: create, move, rotate, scale, merge, split, explode, vertex editing; snapping, templates, elevation, - topology; domains, subtypes, attribute rules, contingent values, relationships, archiving. -- Analysis: selection by attributes and location; overlay (clip, erase), proximity (buffer) and summary tools, spatial - join, A5 grids, kriging; guided workflows (viewshed, line of sight, IDW, shortest path, - suitability); ModelBuilder and scripts, and history copied as code; the GeoLibre and Whitebox - suite (1,000+ tools) natively and in the browser. -- Layouts (map frames, surrounds, map series, publication sheets and figures in one command, PDF), - reports, presentations and notebooks; the web app embeddable in a page (`?embed`). +- Maps: multiple maps, a GPU renderer (beta) with smooth zoom and pan, tilt, rotation and + terrain, a 3D globe with the flat map draped over it, maps of the Moon, Mars and other + celestial bodies, projection presets and EPSG codes (features cut along the edge of world + projections), a search box for layers, places and coordinates, bookmarks, web tile layers + (XYZ/TMS/WMS, Mapbox Vector Tiles, MapLibre styles, PMTiles and MBTiles archives), a basemap + gallery (OpenFreeMap, USGS Imagery), worldviews. +- Cartography: single, unique values, graduated colours (natural breaks, equal interval, + quantile, geometric interval, standard deviation, manual) and proportional symbols; layer + groups; label classes with SQL queries, straight and curved line placement, installed font + families and annotation; stacked and dashed line strokes, symbol levels, reference scales, + polygon outlines without fill; custom colour ramps (and QGIS, GDAL and GMT palette files); + masking, display filters, blend modes, aggregation, extrusion; graphics. +- Editing: create, move, rotate, scale, merge, split, explode, vertex editing; snapping, + templates, elevation, topology; domains, subtypes, attribute rules, contingent values, + relationships, archiving. +- Analysis: selection by attributes and location; overlay (clip, erase), proximity (buffer) and + summary tools, spatial join, zonal statistics, A5 grids, kriging and Calculate Geometry with + metric or imperial units; guided workflows (viewshed, line of sight, IDW, shortest path, + suitability); ModelBuilder on a node canvas, scripts with command, parameter and value + completion, and history copied as code; the GeoLibre and Whitebox suite (1,000+ tools) + natively and in the browser. +- Layouts (map frames, surrounds, map series, publication sheets and figures in one command, + format panes, guides, snapping, element locking and PDF), reports, presentations and + notebooks; the web app embeddable in a page (`?embed`). - Sharing as open formats (web maps, OGC API Features collections, MapLibre styles, glTF scenes, locators), offline areas with sync, deep learning pixel classification, hosted imagery tiles. -- The AI Assistant (Anthropic, OpenAI, ChatGPT sign-in, Gemini, OpenRouter, Ollama, OpenAI-compatible) in the - app, the web app and `rustgis-cli ask`; an MCP server (`rustgis-cli mcp`) for AI agents such - as Claude Code, Cursor and VS Code, with the documentation built in. -- The AI Assistant's agent skill and loopback relay, which let external AI clients drive the app. -- Sandboxed WebAssembly plugins with a registry at plugins.rustgis.app; process plugins that run - as programs (with Python environments RustGIS makes), in the background with progress and Cancel. +- The AI Assistant (Anthropic, OpenAI, ChatGPT sign-in, Gemini, OpenRouter, Ollama, + OpenAI-compatible) in the app, the web app and `rustgis-cli ask`; an MCP server (`rustgis-cli mcp`) + for AI agents such as Claude Code, Cursor and VS Code, with the documentation built in. +- The AI Assistant's skills, subagents and ACP clients; MCP over HTTP, an audited loopback + relay and a file bridge, which let external AI clients drive the app. Database passwords, S3 + keys and AI provider keys optionally remembered in the desktop OS keychain. +- Sandboxed WebAssembly plugins with a registry at plugins.rustgis.app; process plugins that + run as programs (with Python environments RustGIS makes), in the background with progress and + Cancel. - The `rustgis` Python package on PyPI: the engine in-process, and `rustgis.Map` in Jupyter. - Desktop packages: Windows installers (setup.exe, .msi), a portable zip and a Store MSIX; a signed and notarized macOS DMG; Linux .deb, .rpm, AppImage and tarballs; Homebrew, the AUR, diff --git a/docs/index.md b/docs/index.md index 6591e2b4a..26fa3fe03 100644 --- a/docs/index.md +++ b/docs/index.md @@ -28,22 +28,24 @@ Map operations are commands you can script from the command line, Python or the - **Your data, any source** - GeoJSON, Shapefile, GeoPackage, GeoParquet, GeoTIFF, LiDAR and Zarr; live PostGIS, MySQL, - MariaDB and SQL Server databases on the desktop; public data from STAC catalogs, Overture - Maps and open-data portals. Save and browse reusable data connections. + GeoJSON, Shapefile, GeoPackage, GeoParquet, GeoTIFF, LiDAR, Zarr and desktop File + Geodatabases; live PostGIS, MySQL, MariaDB and SQL Server databases on the desktop; public + data from STAC catalogs, Overture Maps and open-data portals. Save and browse reusable data + connections; open supported QGIS projects. [Data](user-guide/data.md) · [Web Data](user-guide/web-data.md) · [Formats](user-guide/data-formats.md) - **Cartography and 3D** - Graduated colours, collision-aware labels, stacked line symbols, page layouts and map series; - a 3D globe, projection presets and supported EPSG/ESRI systems, terrain and extrusions, - and maps of the Moon, Mars and other worlds. + Graduated colours, curved line labels, stacked line symbols, publication layouts and map + series; a 3D globe, projection presets and supported EPSG/ESRI systems, terrain and + extrusions, and maps of the Moon, Mars and other worlds. [Cartography](user-guide/cartography.md) · [Maps](user-guide/maps.md) · [Layouts](user-guide/layouts.md) - **Analysis** SQL selection, overlay and proximity tools, guided workflows, ModelBuilder, imagery tools, - data-cube time series and trends, and over 1,000 tools through the optional GeoLibre/Whitebox suite. + spatial join, kriging, zonal statistics, data-cube time series and trends, and over 1,000 + tools through the optional GeoLibre/Whitebox suite. [Analysis](user-guide/analysis.md) - **Editing** @@ -55,14 +57,16 @@ Map operations are commands you can script from the command line, Python or the - **AI Assistant** Ask about your data or tell the map what to do. Choose a model provider or sign in with - ChatGPT; approve file, network and plugin operations before they run. Project edits are undoable. + ChatGPT; approve file, network and plugin operations before they run. Project edits are + undoable. [AI Assistant](user-guide/assistant.md) - **Scriptable and extensible** `rustgis-cli` and the `rustgis` Python package run engine commands and render maps; MCP - connects AI agents to headless sessions or the open app. Plugins add tools, commands and - assistant skills, with sandboxed WebAssembly or desktop-only process runtimes. + connects AI agents to headless sessions or the open app. The Script pane completes + commands, parameters, layers and fields. Plugins add tools, commands and assistant skills, + with sandboxed WebAssembly or desktop-only process runtimes. [Command Line](cli.md) · [Python](python.md) · [MCP](mcp.md) · [Plugins](plugins.md) From 50e28f63086e3689da5e7f03a707a9735bedc452 Mon Sep 17 00:00:00 2001 From: giswqs Date: Sat, 24 Oct 2026 16:55:03 -0400 Subject: [PATCH 2/3] Address review feedback - Correct the incomplete README data-import phrase flagged by CodeRabbit. - Replace four stale language counts and add Bengali to the language table to match all 18 registered languages, as noted by Claude. - Wrap the roadmap AI Assistant bullet within the existing line width, as noted by Claude. --- GEOLIBRE_PARITY.md | 2 +- README.md | 2 +- ROADMAP.md | 5 +++-- docs/i18n.md | 4 ++-- docs/sponsor.md | 2 +- docs/user-guide/workspace.md | 2 +- 6 files changed, 9 insertions(+), 8 deletions(-) diff --git a/GEOLIBRE_PARITY.md b/GEOLIBRE_PARITY.md index 838bff6c7..a62238d8b 100644 --- a/GEOLIBRE_PARITY.md +++ b/GEOLIBRE_PARITY.md @@ -278,7 +278,7 @@ _GeoLibre: docs/user-guide/ai-assistant.md, docs/features.md › AI, Python, and _GeoLibre: docs/features.md › Platforms and interface; docs/i18n.md_ - [ ] **More languages and right-to-left layout**: GeoLibre has 20 languages including Arabic, - Persian and Hebrew. Partial: 17 languages; Persian text is drawn right to left, while the panes + Persian and Hebrew. Partial: 18 languages; Persian text is drawn right to left, while the panes keep their left-to-right layout. - [ ] **Translated geoprocessing tool names**. Missing (possibly deliberate). - [ ] **Keyboard-shortcut cheat sheet**. Partial: Command Search; rebindable shortcuts are on the diff --git a/README.md b/README.md index d0ffb9211..6ba6a6742 100644 --- a/README.md +++ b/README.md @@ -91,7 +91,7 @@ Every screenshot is RustGIS itself, rendered offscreen by `cargo run -p rustgis- | 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, Esri File Geodatabases without GDAL (desktop), PostGIS, MySQL, MariaDB and SQL Server tables read live (desktop), 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; reusable connections; supported QGIS projects and layer styles; layer and map files, styles, templates and packages | +| **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 (large files are read in place), files by their web address, every vector format GDAL reads when it is installed, Esri File Geodatabases without GDAL (desktop), PostGIS, MySQL, MariaDB and SQL Server tables read live (desktop), 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; reusable connections; supported QGIS projects and layer styles; 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), and JPEG 2000, NetCDF, HDF, ERDAS Imagine and the other rasters GDAL reads when it is installed (desktop); 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; cloud-optimised GeoTIFF export; data cubes, point time-series charts, temporal summaries and trends | | **Maps** | Multiple maps and layouts per project, renamed and duplicated from the Browser pane; tilt, rotation, terrain and a 3D globe; maps of the Moon, Mars and other celestial bodies; 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, with borders in two worldviews | | **Web services** | WMS, WMTS, WFS, OGC API Features and ArcGIS REST (FeatureServer, MapServer, ImageServer, VectorTileServer) from their capabilities | diff --git a/ROADMAP.md b/ROADMAP.md index ab116e7f1..ce9197d85 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -209,8 +209,9 @@ Open questions rather than plans; discuss before building. scenes, locators), offline areas with sync, deep learning pixel classification, hosted imagery tiles. - The AI Assistant (Anthropic, OpenAI, ChatGPT sign-in, Gemini, OpenRouter, Ollama, - OpenAI-compatible) in the app, the web app and `rustgis-cli ask`; an MCP server (`rustgis-cli mcp`) - for AI agents such as Claude Code, Cursor and VS Code, with the documentation built in. + OpenAI-compatible) in the app, the web app and `rustgis-cli ask`; an MCP server + (`rustgis-cli mcp`) for AI agents such as Claude Code, Cursor and VS Code, with the + documentation built in. - The AI Assistant's skills, subagents and ACP clients; MCP over HTTP, an audited loopback relay and a file bridge, which let external AI clients drive the app. Database passwords, S3 keys and AI provider keys optionally remembered in the desktop OS keychain. diff --git a/docs/i18n.md b/docs/i18n.md index 34a850706..07c9603dc 100644 --- a/docs/i18n.md +++ b/docs/i18n.md @@ -1,6 +1,6 @@ # Languages -RustGIS's interface is available in 17 languages: +RustGIS's interface is available in 18 languages: | Language | Code | | Language | Code | | --- | --- | --- | --- | --- | @@ -12,7 +12,7 @@ RustGIS's interface is available in 17 languages: | Nederlands (Dutch) | `nl` | | 简体中文 (Chinese, Simplified) | `zh` | | Português (Portuguese) | `pt` | | 日本語 (Japanese) | `ja` | | ქართული (Georgian) | `ka` | | 한국어 (Korean) | `ko` | -| فارسی (Persian) | `fa` | | | | +| فارسی (Persian) | `fa` | | বাংলা (Bengali) | `bn` | ## Choosing a language diff --git a/docs/sponsor.md b/docs/sponsor.md index 7504eed83..7f48d3d4e 100644 --- a/docs/sponsor.md +++ b/docs/sponsor.md @@ -54,7 +54,7 @@ Sponsorship is not the only currency, and none of these cost anything: worth a great deal. - **Contribute code or plugins**: see [Contributing](contributing.md) and [Plugins](plugins.md#writing-a-plugin). -- **Translate the interface**: RustGIS ships in 17 languages; see [Languages](i18n.md) to add or +- **Translate the interface**: RustGIS ships in 18 languages; see [Languages](i18n.md) to add or improve one. ## Thank you diff --git a/docs/user-guide/workspace.md b/docs/user-guide/workspace.md index 2815c0d1e..9c29770df 100644 --- a/docs/user-guide/workspace.md +++ b/docs/user-guide/workspace.md @@ -181,7 +181,7 @@ duplication and nudging have their own [layout shortcuts](layouts.md#layouts). - **Plugins**: **Plugins › Plugin Manager** installs, updates and removes [plugins](../plugins.md) from the registry at [plugins.rustgis.app](https://plugins.rustgis.app) or from a file. - **Language**: **Settings › Language** switches the interface among - [17 languages](../i18n.md) and chooses the [worldview](maps.md#worldview) of the built-in + [18 languages](../i18n.md) and chooses the [worldview](maps.md#worldview) of the built-in borders. - **Start-up**: **Settings › Start-up** sets what RustGIS opens with: **Start With** the World Atlas sample or a blank map, or, in the desktop app, **Last Project** (the `.rgis` project last opened From b940bdcbe89b05882b700da532146d77b6a381b1 Mon Sep 17 00:00:00 2001 From: giswqs Date: Sat, 24 Oct 2026 17:38:03 -0400 Subject: [PATCH 3/3] Address CodeRabbit review feedback Complete the README condition for DuckDB Spatial support. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6ba6a6742..8700a220f 100644 --- a/README.md +++ b/README.md @@ -91,7 +91,7 @@ Every screenshot is RustGIS itself, rendered offscreen by `cargo run -p rustgis- | 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 (large files are read in place), files by their web address, every vector format GDAL reads when it is installed, Esri File Geodatabases without GDAL (desktop), PostGIS, MySQL, MariaDB and SQL Server tables read live (desktop), 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; reusable connections; supported QGIS projects and layer styles; layer and map files, styles, templates and packages | +| **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 (large files are read in place), files by their web address, every vector format GDAL reads when it is installed, Esri File Geodatabases without GDAL (desktop), PostGIS, MySQL, MariaDB and SQL Server tables read live (desktop), and SQL queries and DuckDB databases through DuckDB Spatial when DuckDB is installed; PMTiles archives (web or file) and MBTiles files; GeoJSON, CSV, GeoPackage, GeoParquet, Shapefile, FlatGeobuf, KML/KMZ, GPX and WKT out; standalone tables; reusable connections; supported QGIS projects and layer styles; 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), and JPEG 2000, NetCDF, HDF, ERDAS Imagine and the other rasters GDAL reads when it is installed (desktop); 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; cloud-optimised GeoTIFF export; data cubes, point time-series charts, temporal summaries and trends | | **Maps** | Multiple maps and layouts per project, renamed and duplicated from the Browser pane; tilt, rotation, terrain and a 3D globe; maps of the Moon, Mars and other celestial bodies; 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, with borders in two worldviews | | **Web services** | WMS, WMTS, WFS, OGC API Features and ArcGIS REST (FeatureServer, MapServer, ImageServer, VectorTileServer) from their capabilities |