Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
67 changes: 42 additions & 25 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,48 @@
Monorepo for Python Satellite Tasking API (STAPI) Specification packages.
For more, see our [docs](https://stapi-spec.github.io/pystapi/).

> [!WARNING]
> The STAPI spec, and these packages, are in their early stages of development.
> There may be large shifts in the spec or these packages' APIs as we work towards a v1.0 release of the spec.

## Packages

There are several related packages in this monorepo:

```mermaid
graph
stapi-pydantic --> pystapi-client --> pystapi-validator
stapi-pydantic --> stapi-fastapi
```

### [stapi-pydantic](./stapi-pydantic/)

[Pydantic](https://docs.pydantic.dev) models for STAPI.
These models are used to generate the STAPI OpenAPI specification, and so can be considered the source-of-truth for STAPI data structures.

### [stapi-fastapi](./stapi-fastapi/)

A backend-agnostic [FastAPI](https://fastapi.tiangolo.com/) application for serving STAPI endpoints.
A minimal test implementation is provided in [stapi-fastapi/tests/application.py](stapi-fastapi/tests/application.py).
Run it like so:

```commandline
uv run fastapi dev stapi-fastapi/tests/application.py
```

The app should be accessible at `http://localhost:8000`.

For implementations of **stapi-fastapi** with vendor-specific backends, see repos in the [stapi-fastapi Github organization](https://github.com/stapi-spec?q=stapi-fastapi-&type=all&language=&sort=).

### [pystapi-client](./pystapi-client/)

A Python API and command-line interface (CLI) for working with STAPI servers.

### [pystapi-validator](./pystapi-validator/)

A work-in-progress validator for STAPI APIs.
Currently not very useful.

## Development

Get [uv](https://docs.astral.sh/uv/), then:
Expand Down Expand Up @@ -34,28 +76,3 @@ source .venv/bin/activate
```

See our [contribution guidelines](./CONTRIBUTING.md) for information on contributing any changes, fixes, or features.

## Packages

```mermaid
graph
stapi-pydantic --> pystapi-client --> pystapi-validator
stapi-pydantic --> stapi-fastapi
```

### stapi-fastapi

A minimal test implementation is provided in [stapi-fastapi/tests/application.py](stapi-fastapi/tests/application.py).
Run it like so:

```commandline
uv run fastapi dev stapi-fastapi/tests/application.py
```

The app should be accessible at `http://localhost:8000`.

### pystapi-client

The `pystapi-client` package is a Python client (CLI tool) focused on interfacing with the STAPI specification, specifically with a STAPI server. This is a work in progress.

For more information, see the [README](pystapi-client/README.md).