stac-server

Crates.iostac-server
lib.rsstac-server
version0.3.2
sourcesrc
created_at2024-04-29 20:43:02.826771
updated_at2024-11-12 18:44:11.255512
descriptionSpatioTemporal Asset Catalog (STAC) API server
homepagehttps://stac-utils.github.io/stac-rs
repositoryhttps://github.com/stac-utils/stac-rs
max_upload_size
id1224485
size447,239
Pete Gadomski (gadomski)

documentation

README

stac-server

GitHub Workflow Status docs.rs Crates.io Crates.io Contributor Covenant

A STAC API server with multiple backends.

Usage

To run a server from the command-line, use stac-cli. Any arguments will be interpreted as hrefs to STAC collections, items, and item collections, and will be loaded into the server on startup.

stac serve collection.json items.json

To use the pgstac backend:

stac serve --pgstac postgresql://username:password@localhost:5432/postgis

If you'd like to serve your own pgstac backend with some sample items:

docker compose up -d pgstac
scripts/load-pgstac-fixtures  # This might take a while, e.g. 30 seconds or so

Library

To use this library in another application:

[dependencies]
stac-server = "0.3"

Deploying

There is currently no infrastructure-as-code for deploying stac-server. We hope to provide this support in the future.

Features

stac-server has two optional features.

axum

The axum feature enables routing and serving using axum.

pgstac

In order to use the pgstac, you need to enable the pgstac feature.

Backends

This table lists the provided backends and their supported conformance classes and extensions:

Capability Memory backend Pgstac backend
STAC API - Core
STAC API - Features
STAC API - Item Search
Aggregation extension ✖️ ✖️
Browseable extension ✖️ ✖️
Children extension ✖️ ✖️
Collection search extension ✖️ ✖️
Collection transaction extension ✖️ ✖️
Fields extension ✖️ ✖️
Filter extension ✖️ ✅️
Free-text search extension ✖️ ✖️
Language (I18N) extension ✖️ ✖️
Query extension ✖️ ✖️
Sort extension ✖️ ✖️
Transaction extension ✖️ ✖️

Other info

This crate is part of the stac-rs monorepo, see its README for contributing and license information.

Commit count: 793

cargo fmt