rustac
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 for creating, searching, and otherwise working with STAC.
Tip
We pronounce rustac "ruh-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.
Check out the rustac-py docs for more.
Why are rustac and rustac-py in two separate repos?
Couple of reasons:
- rustac is intended to be useful on its own. It's not just the engine for some Python bindings.
- 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
- stac-duckdb: A client and methods for querying stac-geoparquet via DuckDB
Acknowledgements
We'd like to thank @jkeifer, @parksjr, and @Xenocide122 (all from @Element84) for creating the rustac logo from an AI-generated image from this prompt:
There is a library for working with STAC metadata that is written in rust called rustac: https://github.com/stac-utils/rustac. That name sounds like the word "rustic", and is meant to envoke (sic) an image of "a cabin and a glass of neat whisky".