Crate stac_api

source ·
Expand description

Rust implementation of the STAC API specification.

This crate is:

  • Data structures

This crate is not:

  • A server implementation

For a STAC API server written in Rust based on this crate, see our stac-server.

§Data structures

Each API endpoint has its own data structure. In some cases, these are light wrappers around stac data structures. In other cases, they can be different – e.g. the /search endpoint may not return Items if the fields extension is used, so the return type is a crate-specific Item struct.

For example, here’s the root structure (a.k.a the landing page):

use stac::Catalog;
use stac_api::{Root, Conformance, CORE_URI};
let root = Root {
    catalog: Catalog::new("an-id", "a description"),
    conformance: Conformance {
        conforms_to: vec![CORE_URI.to_string()]
    },
};

Structs§

  • Object containing an array of collections and an array of links.
  • To support “generic” clients that want to access multiple OGC API Features implementations - and not “just” a specific API / server, the server has to declare the conformance classes it implements and conforms to.
  • The search-related metadata for the ItemCollection.
  • Include/exclude fields from item collections.
  • GET parameters for the items endpoint from STAC API - Features.
  • GET parameters for the item search endpoint.
  • The return value of the /items and /search endpoints.
  • Parameters for the items endpoint from STAC API - Features.
  • The root landing page of a STAC API.
  • The core parameters for STAC search are defined by OAFeat, and STAC adds a few parameters for convenience.
  • Fields by which to sort results.
  • Builds urls on a root url.

Enums§

  • The direction of sorting.
  • Crate-specific error enum.
  • The language of the filter expression.

Constants§

Type Aliases§

  • A STAC API Item type definition.
  • Crate-specific result type.