Rust spatial processing CLI crate setup (tools/rustgis) #32

Closed
opened 2026-10-14 22:28:33 +00:00 by yuris · 1 comment
Owner

What to build

Initialize a standalone, high-performance Rust geospatial processing crate in tools/rustgis to handle geometry validation, coordinate reprojection, and multi-format spatial pipelines. Integrate hermetically with flake.nix and provide subcommands for cleaning, tiling, and COG generation.

Technical specifications

  1. Target files:
    • tools/rustgis/Cargo.toml: Manifest declaring dependencies (geo = "0.29", geos = "9.0", flatgeobuf = "4.4", gdal = "0.17", clap = { version = "4.5", features = ["derive"] }, serde = { version = "1.0", features = ["derive"] }, serde_json = "1.0").
    • tools/rustgis/src/main.rs: CLI dispatcher with commands: clean, tile, cog, ingest-telemetry.
    • flake.nix: Ensure pkgs.rustc, pkgs.cargo, pkgs.gdal, and pkgs.geos are exposed in dev shell.
  2. CLI interface:
    • rustgis clean --input <file> --output <file> [--simplify <float>]
    • rustgis cog --input <dem.tif> --output <cog.tif>
    • rustgis ingest-telemetry --output-dir <path>

Acceptance criteria

  • cargo build --release succeeds in nix dev shell without external library link errors.
  • cargo test passes basic geometry parsing and CLI argument verification.
  • --help flags display clear operational instructions for each subcommand.

Authoritative Specifications & Reference Documentation

### What to build Initialize a standalone, high-performance Rust geospatial processing crate in `tools/rustgis` to handle geometry validation, coordinate reprojection, and multi-format spatial pipelines. Integrate hermetically with `flake.nix` and provide subcommands for cleaning, tiling, and COG generation. ### Technical specifications 1. **Target files**: - `tools/rustgis/Cargo.toml`: Manifest declaring dependencies (`geo = "0.29"`, `geos = "9.0"`, `flatgeobuf = "4.4"`, `gdal = "0.17"`, `clap = { version = "4.5", features = ["derive"] }`, `serde = { version = "1.0", features = ["derive"] }`, `serde_json = "1.0"`). - `tools/rustgis/src/main.rs`: CLI dispatcher with commands: `clean`, `tile`, `cog`, `ingest-telemetry`. - `flake.nix`: Ensure `pkgs.rustc`, `pkgs.cargo`, `pkgs.gdal`, and `pkgs.geos` are exposed in dev shell. 2. **CLI interface**: - `rustgis clean --input <file> --output <file> [--simplify <float>]` - `rustgis cog --input <dem.tif> --output <cog.tif>` - `rustgis ingest-telemetry --output-dir <path>` ### Acceptance criteria - [ ] `cargo build --release` succeeds in nix dev shell without external library link errors. - [ ] `cargo test` passes basic geometry parsing and CLI argument verification. - [ ] `--help` flags display clear operational instructions for each subcommand. --- ### Authoritative Specifications & Reference Documentation - **Titik Gambut Architecture & Subsystem Contract**: [`docs/ARCHITECTURE.md`](https://git.nokopia.com/yuris/titik-gambut-next/src/branch/main/docs/ARCHITECTURE.md) - **Upstream RustGIS Engine & CLI**: [opengeos/RustGIS Repository](https://github.com/opengeos/RustGIS) — fast pure-Rust GIS with `rustgis-cli`, GeoLibre integration, and native FlatGeobuf/PMTiles/COG pipelines. - **RustGIS Documentation**: [rustgis.app](https://rustgis.app) - **Protomaps PMTiles Specification**: [protomaps/PMTiles GitHub](https://github.com/protomaps/PMTiles) — cloud-optimized single-file vector/raster tile format using HTTP 206 byte-range requests. - **Protomaps Basemaps Style & Docs**: [protomaps.com/docs](https://docs.protomaps.com/basemaps/)
yuris changed title from Issue 19: [Backend] Rust spatial processing CLI crate setup (tools/rustgis) to [Backend] Rust spatial processing CLI crate setup (tools/rustgis) 2026-10-14 22:31:30 +00:00
yuris changed title from [Backend] Rust spatial processing CLI crate setup (tools/rustgis) to Rust spatial processing CLI crate setup (tools/rustgis) 2026-10-14 22:38:35 +00:00
Author
Owner

Closing as obsolete. Bespoke in-house tools/rustgis was deleted in commit d76edaf (PR #90) in favor of standard Tippecanoe and Python tooling to avoid redundant crate maintenance.

Closing as obsolete. Bespoke in-house `tools/rustgis` was deleted in commit `d76edaf` (PR #90) in favor of standard Tippecanoe and Python tooling to avoid redundant crate maintenance.
yuris closed this issue 2026-10-15 05:59:08 +00:00
Sign in to join this conversation.
No labels
backend
frontend
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
yuris/titik-gambut-next#32
No description provided.