Skip to content

rustac

Ferris holding STAC

Welcome to the home of STAC and Rust. We're happy you're here.

What is rustac?

rustac is a Github repository that holds the code for several Rust crates that can be used to create, search for, and otherwise work with STAC.

Note

Until 2025-04-17, this repository was named stac-rs. See this RFC for context on the name change.

What is rustac-py?

rustac-py is a Python package that provides a simple API for interacting with STAC. rustac-py uses the Rust code in rustac under the hood.

import rustac

items = rustac.search("s3://bucket/items.parquet", ...)

Check out the rustac-py docs for more.

Why are rustac and rustac-py in two separate repos?

Couple of reasons:

  1. rustac is intended to be useful on its own. It's not just the engine for some Python bindings.
  2. Care-and-feeding for Python wheels built from Rust is a bit finicky. By moving rustac-py to its own repo, we're able to separate the concerns of keeping a good, clean Rust core, and building Python wheels. Not everyone agrees with this strategy, but here we are.

Rust documentation on docs.rs

  • stac: The core Rust crate
  • stac-api: Data structures for a STAC API, and a client for searching one
  • stac-server: A STAC API server with multiple backends
  • pgstac: Rust bindings for pgstac