Skip to content

stac-rs

Ferris holding STAC

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

What is stac-rs?

stac-rs 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.

What is stacrs?

stacrs (notice the lack of a hyphen) is a Python package that provides a simple API for interacting with STAC. stacrs uses the Rust code in stac-rs under the hood.

import stacrs

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

Check out the stacrs docs for more.

Why are the names so confusing?

Because @gadomski, who built and maintains these tools, is really bad at naming stuff.

Why are stac-rs and stacrs in two separate repos?

Couple of reasons:

  1. stac-rs 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 stacrs 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