overture-stac generates, validates, and reconciles the STAC catalog for public Overture Maps releases. It ships as a Rust CLI.
docs/architecture.md— how the production catalog gets built and published.
cargo build --releaseFour subcommands (overture-stac --help for full listings):
build— walk the data bucket and write a full STAC catalog to disk. Defaults to all current releases.list-releases— print release IDs the data bucket currently exposes, newest first.reconcile— compare the live catalog against the data bucket and report drift.--applywrites the fix.validate— run JSON-schema + link-integrity + Overture-specific checks against a built catalog (local dir, remote URL, or object-store URI).
Typical single-release build:
cargo run --release -- build \
--release-version 2026-07-22.0 \
--schema-version 1.18.0 \
--output ./public_releases \
--concurrency 6Pass --debug for a fast run (a few fragments per type). The build subcommand reads from the Overture public bucket over object_store, which supports s3://, gs://, az://, and http(s):// URIs. The CLI defaults to Overture's S3 location, but the underlying core is cloud-agnostic.
Migrating from 1.4.0
overture-stac 2.x replaced the pure-Python 1.4.0 release with a Rust core plus thin Python bindings; those bindings have since been retired in favor of the Rust CLI/crate only. The 1.4.0 API is not preserved. The old entry points map as follows:
gen-stacis replaced by theoverture-stacCLI, distributed through the Rust crate:cargo install overture-stac.- The
OvertureReleaseclass is replaced by the CLI'sbuild,validate, andlist-releasessubcommands.
A justfile collects the common commands. Install just with brew install just and run just to see recipes. just check runs cargo fmt --check, cargo clippy, and cargo test, the same checks CI would run.