The cfdp-py library offers some high-level CCSDS File Delivery Protocol (CFDP) components to
perform file transfers according to the CCSDS Blue Book 727.0-B-5.
The underlying base packet library used to generate the packets to be sent is the
spacepackets library.
This library supports the following features:
- Unacknowledged (class 1) file transfers for both the sending and destination side
- Acknowledged (class 2) file transfers for both the sending and destination side
The following features have not been implemented yet. PRs or notifications for demand are welcome!
- Suspending transfers
- Inactivity handling
- Start and end of transmission and reception opportunity handling
- Keep Alive and Prompt PDU handling
You can install this package from PyPI
For example, using uv
Setting up virtual environment:
uv venvRegular install:
uv pip install -e .Interactive install with testing support:
uv pip install -e ".[test]"You can find all examples inside the documentation
and the examples directory of this repository.
If you want to run the tests, it is recommended to install pytest and coverage (optional)
first. You also have to install the package with the optional test feature:
uv pip install -e ".[test]"Running tests regularly:
pytestRunning tests with coverage:
coverage run -m pytestThe documentation is built with Sphinx
Install the required dependencies first:
pip install -r docs/requirements.txtThen the documentation can be built with
cd docs
make htmlYou can run the doctests with
make doctestLinting:
ruff checkFormatting:
ruff format