|
5 | 5 | Monorepo for Python Satellite Tasking API (STAPI) Specification packages. |
6 | 6 | For more, see our [docs](https://stapi-spec.github.io/pystapi/). |
7 | 7 |
|
| 8 | +> [!WARNING] |
| 9 | +> The STAPI spec, and these packages, are in their early stages of development. |
| 10 | +> There may be large shifts in the spec or these packages' APIs as we work towards a v1.0 release of the spec. |
| 11 | +
|
| 12 | +## Packages |
| 13 | + |
| 14 | +There are several related packages in this monorepo: |
| 15 | + |
| 16 | +```mermaid |
| 17 | +graph |
| 18 | + stapi-pydantic --> pystapi-client --> pystapi-validator |
| 19 | + stapi-pydantic --> stapi-fastapi |
| 20 | +``` |
| 21 | + |
| 22 | +### [stapi-pydantic](./stapi-pydantic/) |
| 23 | + |
| 24 | +[Pydantic](https://docs.pydantic.dev) models for STAPI. |
| 25 | +These models are used to generate the STAPI OpenAPI specification, and so can be considered the source-of-truth for STAPI data structures. |
| 26 | + |
| 27 | +### [stapi-fastapi](./stapi-fastapi/) |
| 28 | + |
| 29 | +A backend-agnostic [FastAPI](https://fastapi.tiangolo.com/) application for serving STAPI endpoints. |
| 30 | +A minimal test implementation is provided in [stapi-fastapi/tests/application.py](stapi-fastapi/tests/application.py). |
| 31 | +Run it like so: |
| 32 | + |
| 33 | +```commandline |
| 34 | +uv run fastapi dev stapi-fastapi/tests/application.py |
| 35 | +``` |
| 36 | + |
| 37 | +The app should be accessible at `http://localhost:8000`. |
| 38 | + |
| 39 | +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=). |
| 40 | + |
| 41 | +### [pystapi-client](./pystapi-client/) |
| 42 | + |
| 43 | +A Python API and command-line interface (CLI) for working with STAPI servers. |
| 44 | + |
| 45 | +### [pystapi-validator](./pystapi-validator/) |
| 46 | + |
| 47 | +A work-in-progress validator for STAPI APIs. |
| 48 | +Currently not very useful. |
| 49 | + |
8 | 50 | ## Development |
9 | 51 |
|
10 | 52 | Get [uv](https://docs.astral.sh/uv/), then: |
@@ -34,28 +76,3 @@ source .venv/bin/activate |
34 | 76 | ``` |
35 | 77 |
|
36 | 78 | See our [contribution guidelines](./CONTRIBUTING.md) for information on contributing any changes, fixes, or features. |
37 | | - |
38 | | -## Packages |
39 | | - |
40 | | -```mermaid |
41 | | -graph |
42 | | - stapi-pydantic --> pystapi-client --> pystapi-validator |
43 | | - stapi-pydantic --> stapi-fastapi |
44 | | -``` |
45 | | - |
46 | | -### stapi-fastapi |
47 | | - |
48 | | -A minimal test implementation is provided in [stapi-fastapi/tests/application.py](stapi-fastapi/tests/application.py). |
49 | | -Run it like so: |
50 | | - |
51 | | -```commandline |
52 | | -uv run fastapi dev stapi-fastapi/tests/application.py |
53 | | -``` |
54 | | - |
55 | | -The app should be accessible at `http://localhost:8000`. |
56 | | - |
57 | | -### pystapi-client |
58 | | - |
59 | | -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. |
60 | | - |
61 | | -For more information, see the [README](pystapi-client/README.md). |
|
0 commit comments