Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 28 additions & 17 deletions GEOLIBRE_PARITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,12 @@ section; RustGIS [ROADMAP.md](ROADMAP.md), [docs/](docs/) and the command regist
(`crates/engine/src/cmd`). Some items may be out of scope for a pure-Rust GIS (noted inline);
strike those through with a reason rather than leaving them open.

This list is a reference, not a plan: not every GeoLibre feature suits RustGIS. Some are left
to GeoLibre by decision ([#951](https://github.com/opengeos/RustGIS/discussions/951)): mobile
apps and field work, real-time collaboration and sharing, and AI segmentation are struck through

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wording doesn't match the list. The note says each item is "struck through below", but the Spatial SQL workspace item (around line 66) is only annotated, not struck. "Marked below" covers both cases.

Suggested change
apps and field work, real-time collaboration and sharing, and AI segmentation are struck through
marked below with its reason: mobile apps and field work, real-time collaboration and

Confidence: high.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was already fixed in f4261fc, which this review predates: the note now names the struck items separately from the Spatial SQL note.

below with their reasons, and the Spatial SQL item notes that an SQL engine in the browser is
GeoLibre's too.

## Data formats & sources
_GeoLibre: docs/data-formats.md, docs/features.md › Adding data, SQL and databases_

Expand Down Expand Up @@ -59,7 +65,8 @@ _GeoLibre: docs/data-formats.md, docs/features.md › Adding data, SQL and datab
Iceberg. Partial: PostGIS ([#125](https://github.com/opengeos/RustGIS/issues/125)), MySQL, MariaDB and SQL Server tables read live on the desktop.
Missing: write-back (_Roadmap: data at the source_) and Iceberg.
- [x] **Spatial SQL workspace** ([#131](https://github.com/opengeos/RustGIS/issues/131)): an SQL pane over DuckDB Spatial on the desktop. The web app
has no in-browser engine yet (_Exploratory_).
has no in-browser engine: SQL in the browser is left to GeoLibre, which runs DuckDB, PGlite and
Sedona there.
- [ ] **Private S3 buckets**: partial. `s3://` addresses, SigV4-signed connections, saved
connections without their secrets and an S3 browser, desktop and web ([#150](https://github.com/opengeos/RustGIS/issues/150)). Missing: SSO, IAM
roles and secrets kept in the keychain (_Roadmap: solid ground_).
Expand Down Expand Up @@ -172,8 +179,9 @@ model-builder.md, segmentation.md, obia.md_
Partial: Suitability Modeler (_Roadmap: analysis_ for hot spots).
- [ ] **H3 and DGGS grids**: H3, A5, DGGRID, DGGAL. Partial: A5 grids (_Roadmap: any time_ for
H3).
- [ ] **AI segmentation and detection**: SAM/SamGeo, ONNX/YOLO detection, OBIA with eCognition
import. Partial: pixel classification (_Exploratory_).
- [ ] ~~AI segmentation and detection~~ (SAM/SamGeo, ONNX/YOLO detection, OBIA with eCognition

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit (confidence: high). Two style points. The file's existing convention for struck items is ~~Name~~: reason (see the "Multiple rendering engines" item), but this item and the new ones use ~~Name~~ (details): reason instead. Also, ([#951](https://github.com/opengeos/RustGIS/discussions/951)) is repeated about a dozen times in this file. Linking it once in the note at the top would keep the items short.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done for the link: #951 is now linked once, in the note at the top, and no longer repeated in each item (796cd71). I've kept the (details) in the struck items. They record what each GeoLibre feature covers, which is useful in a reference list, and the existing out-of-scope items carry their reasons in the same place.

import): left to GeoLibre, which has SAM and ONNX models built in and an OBIA workbench with
eCognition import. RustGIS has pixel classification.
- [ ] **Visual Model Builder canvas**: a node graph with validation and export to code. Partial:
ModelBuilder with a node canvas and models from history.
- [ ] **Re-run or copy history as code; batch runs over a folder**. Partial: history copied as
Expand Down Expand Up @@ -202,18 +210,19 @@ _GeoLibre: docs/features.md › Map tools, printing, and media; docs/user-guide/
_GeoLibre: docs/collaboration.md, docs/server-api.md, docs/user-guide/embedding.md, projects.md,
storymaps.md_

- [ ] **Real-time multi-user collaboration**: live sessions, permissions, roster, chat. Missing
(_Exploratory_).
- [ ] **Review comments**: anchored, threaded, resolvable. Missing (_Exploratory_).
- [ ] **Share links, project gallery, accounts**: roles, expiry, passwords, a server API. Missing;
Share As writes static files (_Exploratory_).
- [ ] ~~Real-time multi-user collaboration~~ (live sessions, permissions, roster, chat):
left to GeoLibre, the shared, web-first app.
- [ ] ~~Review comments~~ (anchored, threaded, resolvable): left to GeoLibre, the shared,
web-first app.
- [ ] ~~Share links, project gallery, accounts~~ (roles, expiry, passwords, a server API):
left to GeoLibre, the shared, web-first app. Share As writes static files.
- [ ] **Story maps**: chapters that fly the live map, a presenter view, HTML export. Partial:
Presentations.
- [ ] **Embed API**: a `postMessage` protocol, an npm client, viewer-only and map-only modes, deep
links. Partial: the web app embeddable with `?embed`, exchanging the project through
`postMessage` (`apps/rustgis-web/src/embed.rs`); no npm client.
- [ ] **Import QGIS (`.qgs/.qgz`) and ArcGIS Pro (`.aprx/.mapx`) projects**. Missing
(_Exploratory_).
- [ ] **Import QGIS (`.qgs/.qgz`) and ArcGIS Pro (`.aprx/.mapx`) projects**. Partial: supported
QGIS projects open as maps (`project.importQgis`). Missing: ArcGIS Pro (_Exploratory_).
- [ ] **Autosave, project history, crash recovery, snapshot compare**. Partial: undo, per-layer
archive restore, and autosave with crash recovery in the desktop app
([#873](https://github.com/opengeos/RustGIS/issues/873)); the browser has neither yet.
Expand Down Expand Up @@ -247,13 +256,15 @@ docs/agent-skill.md_
_GeoLibre: docs/android.md, ios.md, mac-app-store.md, downloads.md, self-hosting.md,
deployment-capabilities.md, ui-profiles.md_

- [ ] **Android app**. Missing (_Exploratory_).
- [ ] **iOS/iPadOS app**. Missing (_Exploratory_).
- [ ] **Touch and responsive layout**. Missing (_Exploratory_).
- [ ] **Field data collection**: forms, photos, GPS or tap placement. Missing (_Exploratory_,
[#665](https://github.com/opengeos/RustGIS/issues/665)).
- [ ] **GPS**: live position, track logs, digitizing from GPS, NMEA receivers. Missing
(_Exploratory_).
- [ ] ~~Android app~~: left to GeoLibre, which has the mobile apps.
- [ ] ~~iOS/iPadOS app~~: left to GeoLibre, which has the mobile apps.
- [ ] ~~Touch and responsive layout~~: left to GeoLibre, which has the mobile apps. RustGIS's

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Possible overstatement (confidence: low-medium). "RustGIS's layout is for desktop screens" sits uneasily with docs/installation.md (around line 173), which says the web app installs on phones and tablets. Consider "RustGIS's layout is built for desktop screens" or linking the installation note, so the two pages agree.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good point. It now says the layout is built for desktop screens, though the web app installs on phones and tablets. Fixed in 3b25e5d.

layout is built for desktop screens, though the web app installs on phones and tablets.
- [ ] ~~Field data collection~~ (forms, photos, GPS or tap placement): left to GeoLibre, which

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug (tracking): the rewrite drops the [#665] link that the old line had. The PR body says #665 (QFieldCloud) stays open, and with this link gone, neither this file nor ROADMAP.md points to it anymore. Restoring the link keeps the open issue tied to the parity item.

Suggested change
- [ ] ~~Field data collection~~ (forms, photos, GPS or tap placement): left to GeoLibre, which
- [ ] ~~Field data collection~~ (forms, photos, GPS or tap placement, [#665](https://github.com/opengeos/RustGIS/issues/665)): left to GeoLibre, which

Confidence: high.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Restored, with its status so the ownership is clear: the item now says a QFieldCloud connection, requested in #665, is not planned either. That keeps the open issue traceable without the struck line implying RustGIS will build it. Fixed in c10b2b4.

has the mobile apps. A QFieldCloud connection, requested in
[#665](https://github.com/opengeos/RustGIS/issues/665), is not on the roadmap either.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reads as a decision on an open request (confidence: medium). #665 stays open, per the PR description, and maintainers have not replied to it. "is not on the roadmap either" in a reference file reads as closing the request. Suggest wording that states the current position and leaves #665 open for a maintainer's reply.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Not on the roadmap" is the current position: in #951, giswqs agreed to drop mobile and field work, including QFieldCloud, from the roadmap. The line doesn't close #665, which stays open for whatever its thread decides.

- [ ] ~~GPS~~ (live position, track logs, digitizing from GPS, NMEA receivers): left to
GeoLibre, which covers field work on phones.
- [ ] **PWA and offline basemap tile pre-caching**. Partial: the web app is installable with
offline start; offline data areas with sync. Tile pre-caching unverified.
- [ ] **Docker self-hosting image with runtime config**. Partial: the static web build (_Roadmap:
Expand Down
15 changes: 8 additions & 7 deletions ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,11 @@ _Last reviewed: 2026-10-24 (v0.4.0). Reviewed weekly; if this date is old, trust
over this page._

This page says where RustGIS is heading and where help is most useful. Details live in the linked
issues; feature-by-feature comparison with GeoLibre is tracked in
[GEOLIBRE_PARITY.md](GEOLIBRE_PARITY.md).
issues. RustGIS and GeoLibre complement each other
([#951](https://github.com/opengeos/RustGIS/discussions/951)): GeoLibre is web and mobile first,
RustGIS desktop first and built for automation and AI agents.
[GEOLIBRE_PARITY.md](GEOLIBRE_PARITY.md) compares the two feature by feature as a reference, not a
plan: not every GeoLibre feature suits RustGIS.

## Goals
- **What exists works.** A feature that crashes, misreads data or is undocumented costs more
Expand Down Expand Up @@ -96,6 +99,9 @@ And alongside it:
### Data at the source
- Write edits back to GeoPackage and PostGIS (edits stay in the project today). _Coordinate
first._
- Open GeoLibre `.geolibre` projects as maps, the way supported QGIS projects open

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Quality (confidence: medium). The sibling bullets in this section that touch the data model or project format carry _Coordinate first._ (CONTRIBUTING.md › Pick freely or coordinate first lists project-format changes). This bullet has no marker, so a contributor cannot tell whether it is open to pick up. Suggest marking it _Coordinate first._ unless the maintainers have already agreed the approach in #962.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Leaving this unmarked. _Coordinate first_ flags work that needs a maintainer's agreement before code. This one already has it: giswqs asked for it in #951, and the design is in #962, which I've claimed. It adds a command but changes no existing command, no .rgis field and no dependency.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Quality (confidence: low-medium). The neighbouring Data at the source items carry _(open)_ or _Coordinate first_ markers, and CONTRIBUTING's "Pick freely or coordinate first" rule depends on them. This new item has neither, so a contributor can't tell whether they may open a pull request directly. Suggest adding _Coordinate first._ after the item, or _(open)_ if the maintainer agrees it is self-contained.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same point as the earlier thread on this line: it has the maintainer's agreement (#951) and its design and owner in #962, so neither marker fits. _(open)_ would invite a second implementation, and _Coordinate first_ asks for agreement that's already given.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Coordinate-first tag (confidence: medium). This new item adds a reader for another project's project format. CONTRIBUTING.md says a change that adds a dependency or changes the data model needs a proposal first, and the other bullets in this section carry _Coordinate first_ where that applies. Consider tagging it the same way, or say why it does not need it.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Answered in the earlier threads on this line: the maintainer already agreed to it in #951, and the design and its owner are in #962. It adds a command but changes no data model, no .rgis field and no dependency, so CONTRIBUTING's coordinate-first cases don't apply.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Roadmap convention (confidence: medium). This new bullet has no _(open)_ or _Coordinate first_ marker, but the Pick-freely rules in CONTRIBUTING.md depend on those markers. A contributor cannot tell whether they may open a PR for it directly. It also states a sequence (GeoLibre opens .rgis later) that concerns another project. Consider adding _Coordinate first._ and trimming the second sentence to what RustGIS controls.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same marker point as the earlier threads on this line. The GeoLibre sequence is the GeoLibre maintainer's own plan from #951, so it stays. No change.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Low confidence, question for the maintainer. This new item adds an import path for a foreign project format, and it has no (open) or _Coordinate first._ marker. CONTRIBUTING.md says items marked (open) are self-contained, and that a change which adds a dependency or a crate, or otherwise changes the data model or command surface, needs a proposal first. If #962 is the agreed proposal, consider saying so here, for example with _Coordinate first._, so contributors know whether to pick it up freely.

([#962](https://github.com/opengeos/RustGIS/issues/962)). GeoLibre opening
`.rgis` projects comes later, once RustGIS's project format and supported data types settle.
- A date and date-time field type, read and written as dates (they are text today)
([#853](https://github.com/opengeos/RustGIS/issues/853)). _Coordinate first_ (it changes
`FieldType`).
Expand Down Expand Up @@ -159,16 +165,11 @@ Open questions rather than plans; discuss before building.
and point cloud I/O library: which of its drivers, coordinate transformations and GDAL-style
operations could back or replace RustGIS's own readers, or stand in for the GDAL program, and
which of them build for the web app.
- Collaboration: shared projects, review comments, accounts and a server.
- Mobile and field work: touch layout, GPS, data collection, QFieldCloud
([#665](https://github.com/opengeos/RustGIS/issues/665)).
- Native NetCDF-4/HDF5 without GDAL ([#396](https://github.com/opengeos/RustGIS/issues/396)),

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Quality (tracking): the "Mobile and field work … QFieldCloud ([#665])" bullet was removed from this list. The PR body says #665 stays open and may need a comment or a close. As written, the open issue no longer appears on the roadmap at all. Either keep a pointer to #665 somewhere in the roadmap, or close or comment on the issue in the same change so the two stay consistent. Confidence: medium.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The roadmap lists what is planned, so I've kept #665 out of it. The parity file now links it as not planned (c10b2b4). Closing or commenting on #665 is for its own thread rather than this docs PR.

kerchunk and Icechunk.
- An SQL engine in the web app.
- 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
- Projects that survive a move: local data paths relative to the project and undoable Repair
Expand Down
76 changes: 49 additions & 27 deletions docs/comparison/geolibre.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,26 +15,38 @@ For RustGIS beside QGIS, ArcGIS Pro and ArcGIS Online as well, see the

## The short answer

**GeoLibre is the broader, web-first GIS.** It is built with web technology (Tauri, React,
GeoLibre and RustGIS serve similar purposes, but take different approaches and suit different
workflows. Neither is meant to replace the other
([discussion #951](https://github.com/opengeos/RustGIS/discussions/951)).

**GeoLibre is web and mobile first.** It is built with web technology (Tauri, React,
MapLibre GL JS, DuckDB-WASM, deck.gl) and runs in a browser tab with nothing installed, as a
desktop app, and as native Android and iOS apps. It reaches further into data (databases,
cloud catalogs, dozens of open-data portals), 3D (Cesium, 3D Tiles, I3S, Gaussian splats), AI
(SAM segmentation, ONNX object detection), sharing (share links, review comments, real-time
collaboration) and the Python and R ecosystems (a Jupyter widget and an R package).
desktop app, and as native Android and iOS apps. Its strengths are access from anywhere,
cloud-native data, interactive visualization and sharing. GeoLibre is mature, with a broad

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Quality (unsourced claim): "its development now centres on stability, performance and usability" describes GeoLibre's current direction, and nothing in the repo or the PR links a source for it. This is a comparison page about another project, so either cite where that comes from (for example the GeoLibre roadmap or release notes) or soften it to something verifiable. Confidence: medium.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The source is giswqs's answer in #951, the discussion this PR follows. It's now cited inline in c10b2b4.

set of features; as its maintainer put it in

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unverified attribution (confidence: medium). "as its maintainer put it in discussion #951, its development now centres on stability, performance and usability" attributes a position to a named person in a public doc. I could not check the discussion from here. Confirm the paraphrase against #951 before merging, or drop the attribution and state it without one.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Checked against #951: giswqs wrote that he expects GeoLibre's development "to focus more on stability, performance, usability, and incremental improvements rather than major architectural changes". The sentence is a fair paraphrase, and he is the reviewer here.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Accuracy (confidence: medium). "as its maintainer put it in discussion #951, its development now centres on stability, performance and usability" attributes a paraphrase to a named source, and the PR body credits #951 to giswqs's direction. Please check the discussion: if giswqs is not GeoLibre's maintainer, or the wording is a paraphrase rather than a statement, reword it (for example, "GeoLibre's recent focus is stability, performance and usability, per discussion #951") so the attribution is exact.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same finding as the earlier thread, which quotes the source. No change; the maintainer quoted is reviewing this PR and can adjust the wording.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verify before merge (confidence: medium). This sentence attributes a statement about GeoLibre's development direction ("centres on stability, performance and usability") to its maintainer, citing discussion #951. I could not open that discussion from the checkout, so I can't confirm the wording or the claim that GeoLibre "is mature" matches it. Since this is public comparison copy about a sibling project, please check the paraphrase against the discussion, and consider quoting it directly or linking the specific comment.

[discussion #951](https://github.com/opengeos/RustGIS/discussions/951), its development now
centres on stability, performance and usability.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Quality (confidence: medium). This attributes a statement about GeoLibre's direction to its maintainer, via discussion #951. I could not check #951 from the repository, so the claim is unverified. Public comparison pages should link the exact source, or paraphrase it with a note that it comes from the discussion. Please confirm the wording with the maintainer.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The sentence links the exact source: discussion #951, where giswqs, who maintains GeoLibre, wrote that he expects its development to focus on "stability, performance, usability, and incremental improvements". He's also the reviewer here, so he can correct the wording if it's off.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unverified attribution (confidence: medium). This sentence puts words in the maintainer's mouth ("its development now centres on stability, performance and usability") and links them to discussion #951. I could not check that discussion from the repository, so the paraphrase may not match. Please confirm it against #951, or quote the source directly. If it can't be checked, drop the attribution and state the position as RustGIS's own view.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Already checked in the earlier thread on this sentence, which quotes #951: giswqs expects GeoLibre's development "to focus more on stability, performance, usability, and incremental improvements". No change.


**RustGIS is desktop first, built for automation and AI agents.** It is a single program written
entirely in Rust that draws its own interface on the GPU, with no browser engine or JavaScript
runtime inside; the same program, compiled to WebAssembly, also runs in the browser. Its
interface is a ribbon laid out in the order of the work, and almost everything in it is a
command that scripts, the command line, Python and AI agents can run. It goes deeper in the
classic desktop GIS jobs of data design, reports and print layouts. RustGIS is young and
changing quickly: expect frequent releases, new capabilities and some significant changes.

**RustGIS is the narrower, native one.** It is a single program written entirely in Rust that
draws its own interface on the GPU, with no browser engine or JavaScript runtime inside, and the
same program compiled to WebAssembly for the browser. Its interface is a ribbon laid out in the
order of the work, its engine commands run from the command line, Python or an AI
agent, and its WebAssembly plugins run sandboxed. It also supports native process plugins
and goes further in the classic desktop GIS jobs of data design, reports and print layouts.
The two complement each other. Both can run the 1,000+ GeoLibre/Whitebox geoprocessing suite,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit (confidence: high): the complement framing is now stated in four places (here, index.md, ROADMAP.md intro, and the "Why are there two?" FAQ), and the "Neither is meant to replace the other" sentence in the short answer repeats it. One clear statement in the short answer, with the rest pointing to it, would read better.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Keeping this as is, as in the earlier repetition thread. Each place is a separate entry point (the comparison index, the roadmap, this page's summary and FAQ), so each states the relationship in a sentence.

both read and write common open formats, and the plan is for RustGIS to open `.geolibre`

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Plan stated on GeoLibre's behalf (confidence: medium). "GeoLibre to open .rgis projects later" commits another project's roadmap, and it is repeated here, in the FAQ and in ROADMAP. Confirm with the GeoLibre maintainers that they agreed to it before merging.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That order is GeoLibre's maintainer's own: in #951 giswqs, who maintains both projects, wrote: "I suggest working on RustGIS opening .geolibre projects first. Once RustGIS becomes relatively mature and supported data types are comprehensive, we then work on GeoLibre opening .rgis project."

projects first and for GeoLibre to open `.rgis` projects later (see
[Using them together](#using-them-together)). Choose GeoLibre for web-first work, phones and
notebooks, choose RustGIS for a scriptable desktop GIS, or use both.

They are complementary rather than competing. Both can run the 1,000+ GeoLibre/Whitebox
geoprocessing suite; RustGIS loads it through an optional desktop runner or WebAssembly.
Both read and write common open formats. Choose GeoLibre for reach, choose RustGIS for a
compact, scriptable desktop GIS, or use both.
## Where each is stronger today

## Where GeoLibre is stronger
These lists compare features as of **October 2026**, and RustGIS's features change quickly. The
differences in the short answer, in platform, technology and focus, are the ones that last.

### Where GeoLibre is stronger

- **More platforms.** GeoLibre runs as a web app, an installable PWA, a desktop app on Windows,
macOS and Linux, native [Android and iOS apps](https://geolibre.app), a Docker image, a Chrome
Expand All @@ -49,7 +61,7 @@ compact, scriptable desktop GIS, or use both.
SQL Server/Azure SQL connections. Other formats and File Geodatabase tables the native
reader cannot read need GDAL (see [Data formats](../user-guide/data-formats.md)).
- **SQL in the browser.** GeoLibre runs DuckDB Spatial, PGlite/PostGIS and Apache Sedona inside
the browser. RustGIS's SQL pane uses DuckDB on the desktop; its web app has no SQL engine yet.
the browser. RustGIS's SQL pane uses DuckDB on the desktop; its web app has no SQL engine.
- **Cartography depth.** GeoLibre has rule-based and expression renderers, heat maps,
clustering, diagrams, blend modes, layer groups, a data-defined label engine, and style
interchange with SLD, QGIS QML and Mapbox GL JSON. RustGIS covers the common renderers and
Expand All @@ -71,22 +83,23 @@ compact, scriptable desktop GIS, or use both.
that runs commands headlessly and built-in notebooks of command cells, but no Python console
in the app and no R package.
- **Opening other projects.** GeoLibre imports QGIS (`.qgs`/`.qgz`) and ArcGIS Pro
(`.aprx`/`.mapx`) projects. RustGIS opens neither.
(`.aprx`/`.mapx`) projects. RustGIS opens supported QGIS projects as maps (see
[QGIS projects](../user-guide/workspace.md#qgis-projects-and-styles)) but not ArcGIS Pro ones.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This new claim (RustGIS opens supported QGIS projects as maps) is correct and matches docs/user-guide/workspace.md › "QGIS projects and styles" and the PR's ROADMAP.md. But GEOLIBRE_PARITY.md line 224 in this same PR still says the QGIS import is "Missing (Exploratory)". That entry needs the same update, because it now contradicts this page. It is outside the diff hunks, so it can't be anchored inline. Suggested replacement for that entry:

- [ ] **Import QGIS (`.qgs/.qgz`) and ArcGIS Pro (`.aprx/.mapx`) projects**. Partial: QGIS
  projects open as maps. Missing: ArcGIS Pro (_Exploratory_).

Confidence: high (about 0.9).

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Right, that entry contradicted this page. It's now Partial: supported QGIS projects open as maps, and only ArcGIS Pro is missing. Fixed in a3b5534.

- **Editing.** GeoLibre edits vertices and writes edits back to their sources (GeoPackage,
PostGIS, ArcGIS feature services). RustGIS moves, inserts and deletes vertices, but
edits stay in the project until exported rather than being written back to those sources.
- **Languages.** GeoLibre's interface comes in 21 languages, including right-to-left Arabic,
Hebrew and Persian. RustGIS has [17](../i18n.md), including Persian text support;
its widget layout is not right-to-left.

## Where RustGIS is stronger
### Where RustGIS is stronger

- **A native program, not a web view.** RustGIS is memory-safe Rust compiled to one native
program with no browser engine, JavaScript or Python inside the core app. Large
GeoPackage, GeoParquet, FlatGeobuf and Shapefile files are read a view at a time rather
than loaded whole; the cloud-native readers also work in the browser.
- **A shared command engine.** Ribbon actions dispatch commands with ids and JSON parameters.
Engine commands run from [`rustgis-cli`](../cli.md), the
- **Commands for scripts and AI agents.** Ribbon actions dispatch commands with ids and JSON
parameters. Engine commands run from [`rustgis-cli`](../cli.md), the
[`rustgis` Python package](../python.md), notebooks, models, the Script pane, the
[MCP server](../mcp.md) and the AI Assistant. UI-only pane/dialog commands stay in the app.
A batch of maps can be rendered in CI with one
Expand Down Expand Up @@ -146,8 +159,13 @@ compact, scriptable desktop GIS, or use both.

The two read and write the same open formats, so data moves between them without conversion:
GeoPackage, GeoParquet, FlatGeobuf, Shapefile, GeoJSON, KML/KMZ, GPX, CSV and cloud-optimised
GeoTIFF (GeoPackage export is desktop only in RustGIS). Neither opens the other's project
file yet; move the data across and restyle it.
GeoTIFF (GeoPackage export is desktop only in RustGIS).

Neither opens the other's project file yet; for now, move the data across and restyle it. The

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit (confidence: high). This section repeats the short answer ("both read and write common open formats", the .geolibre/.rgis plan) and the FAQ "Can I open a GeoLibre project in RustGIS?" repeats the #962 link. Keep one statement of the plan and link to it from the others.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Keeping these on purpose. Readers land on this page at different sections (the short answer, "Using them together", the FAQ), so each one answers its own question in a line and links #962. No change.

plan is for RustGIS to open `.geolibre` projects first
([#962](https://github.com/opengeos/RustGIS/issues/962)). GeoLibre opening `.rgis` projects
comes later, once RustGIS's project format and the data types it supports settle: RustGIS is
still changing quickly, and GeoLibre would otherwise be reading a moving target.

They also share their geoprocessing. RustGIS's **Analyze › Tools** offers the GeoLibre and
Whitebox suite through the optional `geolibre` program on desktop and an on-demand WebAssembly
Expand All @@ -162,9 +180,11 @@ or reports and map series printed to PDF.
## Common questions

**Why are there two?**
They are built on different foundations for different jobs. GeoLibre uses the web platform to
reach as many places and data sources as possible. RustGIS explores what a desktop GIS looks like
as one native Rust program with a shared command engine. Each project borrows ideas from the other.
To explore different ways of making geospatial tools accessible and powerful. GeoLibre uses the
web platform to reach as many places and data sources as possible. RustGIS explores what a
desktop GIS looks like as one native Rust program that scripts and AI agents can drive. Each
project borrows ideas from the other, and they are meant to be used together, not chosen
between.

**Which one should I start with?**
If you want to open a dataset in a browser tab or on a phone right now, or work in Jupyter or R,
Expand All @@ -182,7 +202,9 @@ No. GeoLibre plugins are TypeScript modules for its web interface. RustGIS has i
WebAssembly and native process-plugin interfaces, including Python process plugins.

**Can I open a GeoLibre project in RustGIS?**
Not yet. Export the layers (GeoPackage or GeoParquet keep the most) and add them to RustGIS.
Not yet; it is planned
([#962](https://github.com/opengeos/RustGIS/issues/962)). Until then, export
the layers (GeoPackage or GeoParquet keep the most) and add them to RustGIS.

## See also

Expand Down
13 changes: 7 additions & 6 deletions docs/comparison/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ platforms people most often ask about: **QGIS**, **ArcGIS Pro** and **ArcGIS Onl

RustGIS is not trying to replace any of these. It fills a narrower spot: a **free and
open-source desktop GIS compiled to a single native program**, with a ribbon interface familiar
from desktop GIS, every action available as a scriptable command, and the same app running in a
browser tab through WebAssembly.
from desktop GIS, almost every action available as a scriptable command, and the same app running
in a browser tab through WebAssembly.

!!! note "How to read this"
Comparisons like this age quickly and are written by an interested party. The RustGIS
Expand Down Expand Up @@ -38,10 +38,11 @@ They differ in how they are built and who they suit:
out in the order of the work, and an engine whose commands run the
same way from the ribbon, `rustgis-cli`, Python, notebooks, models and the AI Assistant.

If you want the widest data access and the most platforms, choose GeoLibre. If you want a
compact native desktop GIS with a classic ribbon workflow and a scriptable command
engine, choose RustGIS. Both work on local files on your machine; remote features, such as web
data and AI providers, send requests over the network. See
They complement each other rather than compete: GeoLibre is web and mobile first, RustGIS

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit (high confidence): this line is about 200 characters, while the surrounding paragraph and the rest of the docs wrap near 100. Rewrapping keeps the diff readable. Replacement for the new text (the next line, "compact native desktop GIS…", continues the sentence unchanged):

Suggested change
They complement each other rather than compete: GeoLibre is web and mobile first, RustGIS
They complement each other rather than compete: GeoLibre is web and mobile first, RustGIS
desktop first and built for automation and AI agents. If you want the widest data access and the
most platforms, choose GeoLibre. If you want a

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rewrapped to about 100 characters in 3bd858d.

desktop first and built for automation and AI agents. If you want the widest data access and the
most platforms, choose GeoLibre. If you want a compact native desktop GIS with a classic ribbon
workflow and a scriptable command engine, choose RustGIS. Both work on local files on your
machine; remote features, such as web data and AI providers, send requests over the network. See
[RustGIS and GeoLibre](geolibre.md) for a closer look.

## At a glance
Expand Down
Loading