Files
ccsds_spp/README.md
Myrddin Dundragon 5b7df6d300 Swapped LICENSE file.
This is now using the apache 2 license. I also added the CCSDS Space
Packet Protocol document for easier referencing.
2025-11-14 20:01:51 -05:00

68 lines
1.8 KiB
Markdown

# ccsds_spp
A `no_std`, heapless Rust implementation of the
[CCSDS Space Packet Protocol][SPP], suitable for embedded and real-time
systems.
This library is intended for use in satellite software, space simulation,
and telemetry/telecommand tooling. It is designed to be robust, portable,
and usable in constrained environments. No allocator required.
---
## Features
* `no_std` compatible
* Heapless: works in memory-constrained environments
* Bit-accurate parsing and encoding
* `FromBits` / `IntoBits` traits for masked operations
* CCSDS-compliant `Version`, `PacketType`, `APID` support
* Designed for integration into embedded systems or FFI-safe libraries
---
## Example
```rust
use ccsds_space_packet::{PacketHeader, PacketType, Version, ApId};
let mut header = PacketHeader { data: [0u8; 6] };
header.set_version(Version::One);
header.set_packet_type(PacketType::Telemetry);
header.set_ap_id(ApId::from(42));
assert_eq!(header.get_version(), Version::One);
assert_eq!(header.get_packet_type(), PacketType::Telemetry);
assert_eq!(u16::from(header.get_ap_id()), 42);
```
## Design Notes
This is a work in progress.
Focus is on correctness and portability over performance for now.
Library avoids panics where possible and returns Result<T, &str> for error handling.
## References
[SPP]: https://ccsds.org/wp-content/uploads/gravity_forms/5-448e85c647331d9cbaf66c096458bdd5/2025/01//133x0b2e2.pdf "CCSDS Space Packet Protocol PDF"
---
## Copyright & License
Copyright 2025 CyberMages LLC
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this library except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS