https://github.com/us-irs/spacepackets-py
Various CCSDS and ECSS packet implementations in Python
https://github.com/us-irs/spacepackets-py
ccsds-standards ecss packets python space
Last synced: about 2 months ago
JSON representation
Various CCSDS and ECSS packet implementations in Python
- Host: GitHub
- URL: https://github.com/us-irs/spacepackets-py
- Owner: us-irs
- License: apache-2.0
- Created: 2021-09-30T22:32:34.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2026-03-13T16:24:42.000Z (3 months ago)
- Last Synced: 2026-03-14T04:44:49.320Z (3 months ago)
- Topics: ccsds-standards, ecss, packets, python, space
- Language: Python
- Homepage:
- Size: 1.44 MB
- Stars: 59
- Watchers: 1
- Forks: 16
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: FUNDING.yml
- License: LICENSE
- Notice: NOTICE
Awesome Lists containing this project
README
[](https://github.com/us-irs/py-spacepackets/actions/workflows/ci.yml)
[](https://spacepackets.readthedocs.io/en/latest/?badge=latest)
[](https://codecov.io/gh/us-irs/spacepackets-py)
[](https://badge.fury.io/py/spacepackets)
ECSS and CCSDS Spacepackets
======
This package contains generic implementations for various CCSDS
(Consultative Committee for Space Data Systems) and ECSS
(European Cooperation for Space Standardization) packet standards.
Currently, this includes the following components:
- Space Packet implementation according to
[CCSDS Blue Book 133.0-B-2](https://public.ccsds.org/Pubs/133x0b2e1.pdf)
- CCSDS CDS short timestamp implementation according to
[CCSDS 301.0-B-4 3.3](https://public.ccsds.org/Pubs/301x0b4e1.pdf).
- PUS Telecommand and PUS Telemetry implementation according to the
[ECSS-E-ST-70-41C standard](https://ecss.nl/standard/ecss-e-st-70-41c-space-engineering-telemetry-and-telecommand-packet-utilization-15-april-2016/).
PUS A (legacy) is supported as well.
- CCSDS File Delivery Protcol (CFDP) packet implementations according to
[CCSDS Blue Book 727.0-B-5](https://public.ccsds.org/Pubs/727x0b5.pdf).
- Unified Space Data Link Protocol (USLP) frame implementations according to
[CCSDS Blue Book 732.1-B-2](https://public.ccsds.org/Pubs/732x1b2.pdf).
It also contains various helper modules which are commonly used when working with these standards:
- `PusVerificator` module to track the verification of sent telecommands.
- [PTC and PFC definitions](https://spacepackets.readthedocs.io/en/latest/api/ecss.html#module-spacepackets.ecss.fields) for ECSS packets.
- `Countdown` utility class.
- Sequence counter utility classes.
# Install
You can install this package from PyPI:
```sh
pip install spacepackets
```
For example, using [`uv`](https://docs.astral.sh/uv/):
```sh
uv pip install spacepackets
```
# Examples
You can find all examples [inside the documentation](https://spacepackets.readthedocs.io/en/latest/examples.html).
# Contributing
For local development from a checkout, sync the project environment and development tools:
```sh
uv sync --group dev
```
To include test dependencies:
```sh
uv sync --group dev --extra test
```
# Tests
If you want to run the tests, you have to install the package with the optional `test` feature:
```sh
uv sync --group dev --extra test
```
Running tests regularly:
```sh
uv run pytest
```
Running tests with coverage:
```sh
uv run coverage run -m pytest
uv run coverage report
```
# Documentation
The documentation is built with Sphinx and new documentation should be written using the
[NumPy format](https://www.sphinx-doc.org/en/master/usage/extensions/example_numpy.html#example-numpy).
Install the required dependencies first:
```sh
uv pip install -r docs/requirements.txt
```
Then the documentation can be built with
```sh
cd docs
make html
```
You can run the doctests with
```sh
make doctest
```
# Formatting and Linting
Linting:
```sh
uv run ruff check
```
Formatting:
```sh
uv run ruff format
```