{"id":13735235,"url":"https://github.com/stac-utils/stac-rs","last_synced_at":"2025-04-12T06:07:37.075Z","repository":{"id":37472340,"uuid":"352722524","full_name":"stac-utils/stac-rs","owner":"stac-utils","description":"Tools and libraries for the SpatioTemporal Asset Catalog (STAC) specification, written in Rust","archived":false,"fork":false,"pushed_at":"2025-04-10T13:20:38.000Z","size":6109,"stargazers_count":93,"open_issues_count":26,"forks_count":14,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-12T06:07:22.754Z","etag":null,"topics":["command-line","earth-observation","geospatial","metadata","python","raster","rust","server","stac"],"latest_commit_sha":null,"homepage":"https://stac-utils.github.io/stac-rs/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stac-utils.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE-APACHE","code_of_conduct":"CODE_OF_CONDUCT","threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-03-29T17:08:13.000Z","updated_at":"2025-04-10T13:20:42.000Z","dependencies_parsed_at":"2023-12-18T13:48:59.355Z","dependency_job_id":"466f1457-fa4b-4bbf-b364-c37ab5891314","html_url":"https://github.com/stac-utils/stac-rs","commit_stats":{"total_commits":461,"total_committers":3,"mean_commits":"153.66666666666666","dds":"0.017353579175705014","last_synced_commit":"2ea9d74029d1e6efbce902eeeea867840f9f0d4e"},"previous_names":["stac-utils/stac-rs","gadomski/stac-rs"],"tags_count":115,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stac-utils%2Fstac-rs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stac-utils%2Fstac-rs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stac-utils%2Fstac-rs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stac-utils%2Fstac-rs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stac-utils","download_url":"https://codeload.github.com/stac-utils/stac-rs/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248525144,"owners_count":21118618,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["command-line","earth-observation","geospatial","metadata","python","raster","rust","server","stac"],"created_at":"2024-08-03T03:01:04.567Z","updated_at":"2025-04-12T06:07:37.040Z","avatar_url":"https://github.com/stac-utils.png","language":"Rust","funding_links":[],"categories":["`Python` processing of optical imagery (non deep learning)"],"sub_categories":["Cloud Native Geospatial"],"readme":"# stac-rs\n\n[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/stac-utils/stac-rs/ci.yml?branch=main\u0026style=for-the-badge)](https://github.com/stac-utils/stac-rs/actions/workflows/ci.yml)\n![Crates.io](https://img.shields.io/crates/l/stac?style=for-the-badge)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg?style=for-the-badge)](./CODE_OF_CONDUCT)\n\n![Ferris the crab holding the STAC logo](./img/ferris-holding-stac-small.png)\n\nCommand Line Interface (CLI) and Rust libraries for the [SpatioTemporal Asset Catalog (STAC)](https://stacspec.org/) specification.\nWe have a Python package based on **stac-rs** that lives in its own repository, [stacrs](https://github.com/gadomski/stacrs).\nFor more on the difference between **stac-rs** and **stacrs**, see [our docs](https://stac-utils.github.io/stac-rs/).\n\n## Formats\n\n**stac-rs** \"speaks\" three forms of STAC:\n\n- **JSON**: STAC is derived from [GeoJSON](https://geojson.org/)\n- **Newline-delimited JSON (ndjson)**: One JSON [item](https://github.com/radiantearth/stac-spec/blob/master/item-spec/item-spec.md) per line, often used for bulk item loading and storage\n- **stac-geoparquet**: A newer [specification](https://github.com/stac-utils/stac-geoparquet) for storing STAC items, and optionally collections\n\nWe also have interfaces to other storage backends, e.g. Postgres via [pgstac](https://github.com/stac-utils/pgstac).\n\n## Command line interface\n\nOur command line interface (CLI) can query STAC APIs, validate STAC, and more.\nInstall:\n\n```shell\npython -m pip install stacrs\n# or\ncargo install stac-cli\n```\n\nThen:\n\n```shell\n# Search\n$ stacrs search https://landsatlook.usgs.gov/stac-server \\\n    --collections landsat-c2l2-sr \\\n    --intersects '{\"type\": \"Point\", \"coordinates\": [-105.119, 40.173]}' \\\n    --sortby='-properties.datetime' \\\n    --max-items 1000 \\\n    items.parquet\n\n# Translate formats\n$ stacrs translate items.parquet items.ndjson\n$ stacrs translate items.ndjson items.json\n\n# Migrate STAC versions\n$ stacrs translate item-v1.0.json item-v1.1.json --migrate\n\n# Search stac-geoparquet (no API server required)\n$ stacrs search items.parquet\n\n# Server\n$ stacrs serve items.parquet  # Opens a STAC API server on http://localhost:7822\n\n# Validate\n$ stacrs validate item.json\n```\n\n## Crates\n\nThis monorepo contains several crates:\n\n| Crate                                            | Description                                                                                     | Badges                                                                                                                                                                                                                                                                  |\n| ------------------------------------------------ | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| [stac](./crates/core/README.md)                  | Core data structures and I/O                                                                    | [![docs.rs](https://img.shields.io/docsrs/stac?style=flat-square)](https://docs.rs/stac/latest/stac/) \u003cbr\u003e [![Crates.io](https://img.shields.io/crates/v/stac?style=flat-square)](https://crates.io/crates/stac)                                                        |\n| [stac-api](./crates/api/README.md)               | Data structures for the [STAC API](https://github.com/radiantearth/stac-api-spec) specification | [![docs.rs](https://img.shields.io/docsrs/stac-api?style=flat-square)](https://docs.rs/stac-api/latest/stac_api/) \u003cbr\u003e [![Crates.io](https://img.shields.io/crates/v/stac-api?style=flat-square)](https://crates.io/crates/stac-api)                                    |\n| [stac-extensions](./crates/extensions/README.md) | Basic support for [STAC extensions](https://stac-extensions.github.io/)                         | [![docs.rs](https://img.shields.io/docsrs/stac-extensions?style=flat-square)](https://docs.rs/stac-extensions/latest/stac_extensions/) \u003cbr\u003e [![Crates.io](https://img.shields.io/crates/v/stac-extensions?style=flat-square)](https://crates.io/crates/stac-extensions) |\n| [stac-cli](./crates/cli/README.md)               | Command line interface                                                                          | [![docs.rs](https://img.shields.io/docsrs/stac-cli?style=flat-square)](https://docs.rs/stac-cli/latest/stac_cli/) \u003cbr\u003e [![Crates.io](https://img.shields.io/crates/v/stac-cli?style=flat-square)](https://crates.io/crates/stac-cli)                                    |\n| [stac-server](./crates/server/README.md)         | STAC API server with multiple backends                                                          | [![docs.rs](https://img.shields.io/docsrs/stac-server?style=flat-square)](https://docs.rs/stac-server/latest/stac_server/) \u003cbr\u003e [![Crates.io](https://img.shields.io/crates/v/stac-server?style=flat-square)](https://crates.io/crates/stac-server)                     |\n| [pgstac](./crates/pgstac/README.md)              | Bindings for [pgstac](https://github.com/stac-utils/pgstac)                                     | [![docs.rs](https://img.shields.io/docsrs/pgstac?style=flat-square)](https://docs.rs/pgstac/latest/pgstac/) \u003cbr\u003e [![Crates.io](https://img.shields.io/crates/v/pgstac?style=flat-square)](https://crates.io/crates/pgstac)                                              |\n| [stac-duckdb](./crates/duckdb/README.md)         | Experimental client for [duckdb](https://duckdb.org/)                                           | [![docs.rs](https://img.shields.io/docsrs/stac-duckdb?style=flat-square)](https://docs.rs/stac-duckdb/latest/stac_duckdb/) \u003cbr\u003e [![Crates.io](https://img.shields.io/crates/v/stac-duckdb?style=flat-square)](https://crates.io/crates/stac-duckdb)                     |\n\n### Dependency relationships\n\n```mermaid\ngraph TD\n    stac --\u003e stac-api\n    stac --\u003e stac-extensions\n    stac --\u003e stac-cli\n    stac --\u003e pgstac\n    stac --\u003e stac-duckdb\n    stac --\u003e stac-server\n    stac-api --\u003e pgstac\n    stac-api --\u003e stac-duckdb\n    stac-api --\u003e stac-server\n    stac-api --\u003e stac-cli\n    pgstac --\u003e stac-server\n    stac-duckdb --\u003e stac-server\n    stac-server --\u003e stac-cli\n```\n\n\u003e [!NOTE]\n\u003e There's one additional crate in [crates](./crates/), [stac-derive](./crates/derive/).\n\u003e This is not published and is for internal use only.\n\n## Development\n\nSee [CONTRIBUTING.md](./CONTRIBUTING.md) for information about contributing to this project.\nSee [RELEASING.md](./RELEASING.md) for a checklist to use when releasing a new version.\n\n## License\n\n**stac-rs** is dual-licensed under both the MIT license and the Apache license (Version 2.0).\nSee [LICENSE-APACHE](./LICENSE-APACHE) and [LICENSE-MIT](./LICENSE-MIT) for details.\n\n\u003c!-- markdownlint-disable-file MD033 --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstac-utils%2Fstac-rs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstac-utils%2Fstac-rs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstac-utils%2Fstac-rs/lists"}