Keep ArcGIS Pro, QGIS, and standards-based workflows working.
Honua serves familiar GeoServices REST and OGC endpoints from modern infrastructure. Keep the clients, maps, and operating habits your teams already know. During a pilot, maps keep using the current endpoint while you test Honua beside it. At cutover, repoint each map or app—or preserve the URL through your gateway when your routing setup allows it. One Honua deployment can serve ArcGIS and OGC clients at the same time, so mixed teams share a backend without replacing every desktop, dashboard, or integration.
Broad compatibility where users already work.
Honua covers the major desktop, web, service, and data workflows needed to move GIS without forcing a client reset. Start with the workflow that matters most and expand from there.
ArcGIS Pro and other Esri clients connect through GeoServices REST. QGIS and standards clients connect through OGC APIs and classic OGC services for maps, features, tiles, and coverages. Know before you test: Esri FeatureServer editing (what ArcGIS Pro edits through) is a Pro entitlement; Community edits via OGC API Features, WFS-T, OData, and gRPC.
Web maps use feature and tile endpoints or the JavaScript compatibility SDK. Business applications use REST, OData, gRPC, or language SDKs. MCP gives tool-using agents a governed GIS surface. Check before you build: package availability differs by language — see SDK availability & compatibility for what is publicly installable today.
Use PostGIS for read/write operations, connect supported relational sources for queries, import common GIS exchange formats, and serve cloud-native rasters, tiles, and catalogs from object storage.
// Documented exceptions are concentrated in long-tail operations and provider-specific behavior. See the exact operation matrix ↗
GeoServices parity, service by service.
The per-service summary of honua-server's operation parity matrix, rendered inline. Statuses come from the matrix's own vocabulary: Complete — every documented operation is supported; Partial — the operations exist, with documented gaps. Operation rosters in the matrix are generated from the server's endpoint registry; the status judgements are human-reviewed and drift-gated in CI.
| Service | Parity | Implemented surface (headline) | Headline gaps |
|---|---|---|---|
| FeatureServer | Partial | Query (7 output formats), edits, attachments, related records, domains, replication with incremental change tracking, contingent values, subtype-derived types/templates, 3D (Z/M) queries, true-curve input densification, estimates, calculate, validateSQL, append, bins, top features, generateRenderer, spatial analytics extensions | Shared-template store and utility-network/asset data models deferred; curves are stored and re-emitted linear; no automated contingent-value import |
| MapServer + WMS/WMTS | Partial | Export, identify, find, legend, query, allowlisted dynamicLayers (workspace layers + join tables), tiles with cloud-storage cache, storage-backed exportTiles (ZIP, TPK, Compact Cache V2 / TPKX), generateKml, WMS 1.3/1.1.1, WMTS 1.0 | Live tile-cache management (seeding, expiry, quota); raw-SQL queryTable dynamicLayers; image/KML-image child resources |
| ImageServer | Partial | Service metadata, exportImage, identify, tiles with cloud cache, catalog resources, find, measure, statistics/histograms, getSamples, project (incl. RPC image-CS warp), exportTiles, computeTiePoints, computeClassStatistics, WMTS 1.0, WCS 2.0.1 incl. registered-Zarr slice reads | Source-native item metadata XML/KML image; shadow/photogrammetric height analytics; tile-cache management; transformed Zarr slice output; raw sensor/orientation mosaic inputs; automatic seamlines |
| Geometry Service | Complete | Root metadata plus all 23 ArcGIS geometry operations | None at operation level; parameter-level caveats only |
| GeocodeServer | Partial | findAddressCandidates, reverseGeocode, suggest, geocodeAddresses, outFields projection, outSR reprojection, magicKey suggest-to-candidate round-trip, category filtering | forStorage / matchOutOfRange deferred (no backing provider models them) |
| GPServer | Partial | PrintingTools; generic adapter with catalog-backed task metadata, async submitJob, synchronous execute for the deterministic single-geometry family, job status/cancel/results over 96 seeded processes | Heavyweight tasks stay async-only; env:* rejected on submitJob (sync execute honors env:outSR) |
| NAServer | Partial | Route, service-area, closest-facility, OD-cost-matrix (cost-only), and location-allocation solves incl. barriers and dataset-backed travel modes; addressable network-dataset registry | OD-matrix geometry output, further location-allocation problem types, and network editing with topology rebuild deferred; built-in topology driving-only unless operators map more cost columns |
| VectorTileServer | Partial | Service metadata with a real LOD table, MVT tiles over the canonical tile pipeline, tilemap availability document, Mapbox GL style composed from the stored layer style | Tiles carry the service's primary tiled publication only; availability is grid arithmetic; no sprite/glyph store; some hardcoded service metadata |
| VersionManagementServer | Partial (experimental, off by default) | Version list/create/alter/delete, reconcile/post with conflict policy and async jobs, inspectConflicts, resolveConflicts | No Esri edit/read session model; parentVersion ignored on create; Postgres-only mutations; every route 404s unless the versioning.branch capability is enabled |
| Catalog / REST Info | Partial | /rest/services graph-backed, RBAC-filtered service directory | /rest/info reports isTokenBasedSecurity: false, omits tokenServicesUrl; no folders; currentVersion deliberately not advertised |
| Portal Sharing | Partial | generateToken, auth discovery, OAuth2 named-user flow (authorization_code + PKCE, rotating refresh tokens), opt-in client_credentials, optional JWT access tokens with introspect/revoke, read/search/community projections | Portal/community/item documents partly hardcoded; small search grammar; group and item-sharing overlay is in-memory, single-node, never read back; item data returns the document, not the payload |
// Rendered from docs/reference/compatibility/geoservices-parity.md ↗ at commit 1585115 (honua-server trunk, 2026-08-09). The full matrix answers per-operation and per-parameter, including a Stub category for spec-shaped routes whose backing model is deferred.
Coordinate systems & projections, as implemented.
What the source actually does with EPSG codes, reprojection, datums, and axis order — the first-five-minutes analyst questions, answered from code rather than a datasheet.
| Protocol | Reprojection parameter | Notes from source |
|---|---|---|
| GeoServices FeatureServer | inSR / outSR | GeoJSON and GeoArrow output are pinned to EPSG:4326; GeoParquet honors outSR for the 157 CRSs in an embedded PROJJSON catalog and errors on others; Web Mercator alias wkids are recovered in output. |
| GeoServices Geometry Service | project operation | One of the 23 implemented geometry operations; Esri-default geotransformations apply. |
| GeoServices GeocodeServer | outSR | Candidate geometry reprojected on output. |
| GeoServices GPServer | env:outSR | Honored on synchronous execute; env:* otherwise rejected on submitJob. |
| WMS 1.3.0 / 1.1.1 | CRS / SRS | CRS:84 and EPSG codes accepted; the request bbox is reprojected to the layer's storage CRS before the feature query. |
| WFS 1.0 / 1.1 / 2.0 | srsName | EPSG code, URN, and URI forms accepted on queries; GML output writes srsName and axis order per protocol version. |
| OGC API Features | crs / bbox-crs | Default CRS84; each collection advertises its storage CRS plus supported CRS list. |
| WCS 2.0.1 | per-coverage CRS | Supported-CRS list resolved per coverage; native-CRS reads including registered Zarr slices. |
// Extracted from public source at commit 1585115 (honua-server trunk, 2026-08-09) — not a versioned release contract. Not verified from source: a fixed count of supported EPSG codes — there is none to state, because serving-path coverage is exactly the spatial_ref_sys catalog of the connected PostGIS database. Primary sources: PostgresCrsRegistry.cs, PostGisCoordinateTransformService.cs, WellKnownCoordinateTransformService.cs, EsriDatumTransformationCatalog.cs, GeoParquetProjJsonCatalog.cs, the WMS/WFS handlers, and GdalVectorReprojectJobExecutor.cs.
952/952 across 11 OGC suites.
The dated test scope, results, and audit trail live with the documentation.
Field and mobile: public source, not a shipping product.
Offline sync and device workflows are not available as a supported product today — some offline-sync server routes are not yet implemented. What is public today is source code you can read and build — not a supported product: honua-collect ↗ (offline-first field data collection, Elastic License 2.0), honua-mobile ↗ (MAUI-first mobile SDK with a GeoPackage offline foundation), and honua-studio ↗ (natural-language map-app builder). Read the code, build it, and file issues — but do not plan a field deployment on it yet.
Keep the client.
Move the service.
Edition boundary to know before a pilot: Esri FeatureServer editing (applyEdits / add / update / delete — the surface ArcGIS Pro edits through) is a Pro entitlement; the free Community edition edits through open protocols instead (OGC API Features, WFS-T, OData, gRPC). Recorded CI interop lanes exercise a desktop QGIS lane against WMS, WMTS, WFS, and OGC API Features and a desktop ArcGIS lane against FeatureServer and MapServer — see the dated lane records on each capability's evidence page.