cfdp-rs - High level Rust crate for CFDP components
The cfdp-rs Rust crate 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.
Features
cfdp-rs currently supports following features:
- Unacknowledged (class 1) file transfers for both source and destination side.
The following features have not been implemented yet. PRs or notifications for demand are welcome!
- Acknowledged (class 2) file transfers for both source and destination side.
- Suspending transfers
- Inactivity handling
- Start and end of transmission and reception opportunity handling
- Keep Alive and Prompt PDU handling
Rust features
cfdp-rs supports various runtime environments and is also suitable for no_std environments.
It is recommended to activate the alloc feature at the very least to allow using the primary
components provided by this crate. These components will only allocate memory at initialization
time and thus are still viable for systems where run-time allocation is prohibited.
Default features
std: Enables functionality relying on the standard library.alloc: Enables features which require allocation support. Enabled by thestdfeature.
Optional Features
serde: Addsserdesupport for most types by addingSerializeandDeserializederivesdefmt: Add support for thedefmtby adding thedefmt::Formatderive on many types.
Examples
You can check the documentation of individual modules for various usage examples.
Coverage
Coverage was generated using grcov. If you have not done so
already, install the llvm-tools-preview:
rustup component add llvm-tools-preview
cargo install grcov --locked
After that, you can simply run coverage.py to test the project with coverage. You can optionally
supply the --open flag to open the coverage report in your webbrowser.