diff --git a/README.md b/README.md index 19d5031b..668ffc9b 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@
-
+
FastAPI implemention of the STAC API spec.
@@ -21,25 +21,35 @@ --- -Python library for building a STAC compliant FastAPI application. The project is split up into several namespace -packages: +Python library for building a STAC-compliant FastAPI application. -| Package | Description | Version -| ------- |------------- | ------- -[**stac_fastapi.api**](https://github.com/stac-utils/stac-fastapi/tree/main/stac_fastapi/api) | An API layer which enforces the [stac-api-spec](https://github.com/radiantearth/stac-api-spec). | [](https://pypi.org/project/stac-fastapi.api) -[**stac_fastapi.extensions**](https://github.com/stac-utils/stac-fastapi/tree/main/stac_fastapi/extensions) | Abstract base classes for [STAC API extensions](https://github.com/radiantearth/stac-api-spec/blob/master/extensions.md) and third-party extensions. | [](https://pypi.org/project/stac-fastapi.extensions) -[**stac_fastapi.types**](https://github.com/stac-utils/stac-fastapi/tree/main/stac_fastapi/types) | Shared types and abstract base classes used by the library. | [](https://pypi.org/project/stac-fastapi.types) +`stac-fastapi` was initially developed by [arturo-ai](https://github.com/arturo-ai). + +The project contains several namespace packages: + +| Package | Description | Version | +| ------- |------------- | ------- | +| [**stac_fastapi.api**](https://github.com/stac-utils/stac-fastapi/tree/main/stac_fastapi/api) | An API layer which enforces the [stac-api-spec](https://github.com/radiantearth/stac-api-spec). | [](https://pypi.org/project/stac-fastapi.api) | +| [**stac_fastapi.extensions**](https://github.com/stac-utils/stac-fastapi/tree/main/stac_fastapi/extensions) | Abstract base classes for [STAC API extensions](https://github.com/radiantearth/stac-api-spec/blob/master/extensions.md) and third-party extensions. | [](https://pypi.org/project/stac-fastapi.extensions) | +| [**stac_fastapi.types**](https://github.com/stac-utils/stac-fastapi/tree/main/stac_fastapi/types) | Shared types and abstract base classes used by the library. | [](https://pypi.org/project/stac-fastapi.types) | #### Backends -Backends are hosted in their own repositories: +In addition to the packages in this repository, a server implemention will also require the selection of a backend to +connect with a database for STAC metadata storage. There are several different backend options, and each has their own +repository. -- [stac-fastapi-pgstac](https://github.com/stac-utils/stac-fastapi-pgstac): Postgres backend implementation with [PgSTAC](https://github.com/stac-utils/pgstac). -- [stac-fastapi-elasticsearch](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch): Backend implementation with [Elasticsearch](https://github.com/elastic/elasticsearch). -- [stac-fastapi-sqlalchemy](https://github.com/stac-utils/stac-fastapi-sqlalchemy): Postgres backend implementation with [sqlalchemy](https://www.sqlalchemy.org/). +The two most widely-used and supported backends are: -`stac-fastapi` was initially developed by [arturo-ai](https://github.com/arturo-ai). +- [stac-fastapi-pgstac](https://github.com/stac-utils/stac-fastapi-pgstac): [PostgreSQL](https://github.com/postgres/postgres) + [PostGIS](https://github.com/postgis/postgis) via [PgSTAC](https://github.com/stac-utils/pgstac). +- [stac-fastapi-elasticsearch-opensearch](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch): [Elasticsearch](https://github.com/elastic/elasticsearch) or [OpenSearch](https://github.com/opensearch-project/OpenSearch) +Other implementations include: + +- [stac-fastapi-mongo](https://github.com/Healy-Hyperspatial/stac-fastapi-mongo): [MongoDB](https://github.com/mongodb/mongo) +- [stac-fastapi-geoparquet)](https://github.com/stac-utils/stac-fastapi-geoparquet): [GeoParquet](https://geoparquet.org) via [stacrs](https://github.com/stac-utils/stacrs) (experimental) +- [stac-fastapi-duckdb](https://github.com/Healy-Hyperspatial/stac-fastapi-duckdb): [DuckDB](https://github.com/duckdb/duckdb) (experimental) +- [stac-fastapi-sqlalchemy](https://github.com/stac-utils/stac-fastapi-sqlalchemy): [PostgreSQL](https://github.com/postgres/postgres) + [PostGIS](https://github.com/postgis/postgis) via [SQLAlchemy](https://www.sqlalchemy.org/) (abandoned in favor of stac-fastapi-pgstac) ## Response Model Validation @@ -58,8 +68,6 @@ With the introduction of Pydantic 2, the extra [time it takes to validate models python -m pip install stac-fastapi.types stac-fastapi.api stac-fastapi.extensions # Install a backend of your choice -python -m pip install stac-fastapi.sqlalchemy -# or python -m pip install stac-fastapi.pgstac ``` @@ -81,3 +89,7 @@ To run the tests: ```shell python -m pytest ``` + +## Releasing + +See [RELEASING.md](./RELEASING.md).