rustac

Crates.iorustac
lib.rsrustac
version0.2.5
created_at2025-07-11 21:27:52.238807+00
updated_at2026-01-21 16:59:09.978743+00
descriptionCommand line interface for rustac
homepagehttps://stac-utils.github.io/rustac
repositoryhttps://github.com/stac-utils/rustac
max_upload_size
id1748462
size246,670
Pete Gadomski (gadomski)

documentation

README

rustac

GitHub Workflow Status docs.rs Crates.io Crates.io Contributor Covenant

Command Line Interface (CLI) for STAC, named rustac.

Installation

If you have DuckDB on your system:

cargo install rustac

[!TIP] Set DUCKDB_LIB_DIR to the directory containing your libduckdb. If you're on macos and using Homebrew, this might be export DUCKDB_LIB_DIR=/opt/homebrew/lib

Otherwise:

cargo install rustac -F duckdb-bundled  # (slow)

Then:

# Search
$ rustac search https://landsatlook.usgs.gov/stac-server \
    --collections landsat-c2l2-sr \
    --intersects '{"type": "Point", "coordinates": [-105.119, 40.173]}' \
    --sortby='-properties.datetime' \
    --max-items 1000 \
    items.parquet

# Translate formats
$ rustac translate items.parquet items.ndjson
$ rustac translate items.ndjson items.json

# Migrate STAC versions
$ rustac translate item-v1.0.json item-v1.1.json --migrate

# Search stac-geoparquet (no API server required)
$ stac search items.parquet

# Server
$ rustac serve items.parquet  # Opens a STAC API server on http://localhost:7822

# Validate
$ rustac validate item.json

Usage

rustac provides the following subcommands:

  • rustac search: searches STAC APIs and, if the duckdb feature is enabled, geoparquet files
  • rustac serve: serves a STAC API
  • rustac translate: converts STAC from one format to another
  • rustac validate: validates a STAC value

Use the --help flag to see all available options for the CLI and the subcommands:

Other info

This crate is part of the rustac monorepo, see its README for contributing and license information.

Commit count: 1080

cargo fmt