Command Line Interface (CLI) and Rust libraries for the SpatioTemporal Asset Catalog (STAC) specification.
stac-rs "speaks" three forms of STAC:
- JSON: STAC is derived from GeoJSON
- Newline-delimited JSON (ndjson): One JSON item per line, often used for bulk item loading and storage
- stac-geoparquet: A newer specification for storing STAC items, and optionally collections
We also have interfaces to other storage backends, e.g. Postgres via pgstac.
Our command line interface (CLI) can query STAC APIs, validate STAC, and more. Install:
pip install stacrs-cli
# or
cargo install stac-cli
Then:
# Search
$ stacrs 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
$ stacrs translate items.parquet items.ndjson
$ stacrs translate items.ndjson items.json
# Migrate STAC versions
$ stacrs translate item-v1.0.json item-v1.1.json --migrate
# Search stac-geoparquet (no API server required)
$ stacrs search items.parquet
# Server
$ stacrs serve items.parquet # Opens a STAC API server on http://localhost:7822
We have Python packages based on stac-rs that live in their own repositories:
- stacrs provides a Python API to stac-rs, including
- Reading and writing stac-geoparquet
- Migrating to STAC v1.1
- More...
- pgstacrs is a Python library for working with pgstac
This monorepo contains several crates:
Crate | Description | Badges |
---|---|---|
stac | Core data structures and I/O | |
stac-api | Data structures for the STAC API specification | |
stac-extensions | Basic support for STAC extensions | |
stac-cli | Command line interface | |
stac-server | STAC API server with multiple backends | |
pgstac | Bindings for pgstac | |
stac-duckdb | Experimental client for duckdb | |
See CONTRIBUTING.md for information about contributing to this project. See RELEASING.md for a checklist to use when releasing a new version.
stac-rs is dual-licensed under both the MIT license and the Apache license (Version 2.0). See LICENSE-APACHE and LICENSE-MIT for details.