4 releases

Uses new Rust 2024

new 0.2.0 Dec 1, 2025
0.1.2 Nov 14, 2025
0.1.1 Oct 22, 2025
0.1.0 Jul 11, 2025

#187 in Geospatial

Download history 1/week @ 2025-08-20 71/week @ 2025-09-10 14/week @ 2025-09-17 19/week @ 2025-09-24 74/week @ 2025-10-08 2/week @ 2025-10-15 333/week @ 2025-10-22 81/week @ 2025-11-12 8/week @ 2025-11-19

95 downloads per month

MIT/Apache

2MB
10K SLoC

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.

Dependencies

~109MB
~1.5M SLoC