stac-utils / stac4s   0.9.0

Apache License 2.0 GitHub

a scala library with primitives to build applications using the SpatioTemporal Asset Catalogs specification

Scala versions: 2.13 2.12
Scala.js versions: 1.x


CI Maven Central Snapshots

Join the chat at Scala Steward badge License

A scala project that provides types and basic functionality for working with SpatioTemporal Asset Catalogs. This library is the basis for projects like Franklin and others.


The following STAC types are covered by this library:

  • 2d- and 3d- Bounding Boxes
  • Collection
  • Asset
  • Catalog
  • Temporal and Spatial Extents
  • Item
  • License
  • Link & Link Types
  • Relations
  • Providers & Roles
  • Media Types

On its own this library does not provide much functionality; however, it can form a strong foundation for building catalogs and applications, especially when paired with libraries like GeoTrellis Server and GeoTrellis.


Contributions can be made via pull requests. You will need to fork the repository to your personal account, create a branch, update your fork, then make a pull request. Additionally, if you find a bug or have an idea for a feature/extension we would appreciate it if you opened an issue so we can work on a fix.

Deployments, Releases, and Maintenance

master signals the current unreleased, actively developed codebase. Each release will have an associated git tag is handled automatically via a CI job once a tag is pushed. Releases are handled automatically in CI. To produce a release:

  • make sure master is up-to-date: git checkout master && git pull origin master
  • rotate changelog entries into a section for the version you're releasing using chan release X.Y.Z
  • commit your changelog rotation: git commit -am "Release X.Y.Z"
  • make and push an annotated tag for your release and push master:
$ git tag -s -a vX.Y.Z -m "Release version <version>"
$ git push origin --tags
$ git push origin master

After you've pushed the tag, create a GitHub release using chan gh-release X.Y.Z.

Active development and backports for a particular minor version of stac4s will be tracked and maintained on a branch for that series (e.g. series/0.1.x, series/0.2.x, etc). Pull requests to backport a fix, feature, or other change should be made to that series' respective branch.

Care will be taken to try and maintain backwards binary compatibility for all minor and bugfix releases.