spacepackets/README.md

46 lines
2.1 KiB
Markdown
Raw Normal View History

2022-08-16 11:03:51 +02:00
[![Crates.io](https://img.shields.io/crates/v/spacepackets)](https://crates.io/crates/spacepackets)
[![docs.rs](https://img.shields.io/docsrs/spacepackets)](https://docs.rs/spacepackets)
[![ci](https://github.com/us-irs/spacepackets-rs/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/us-irs/spacepackets-rs/actions/workflows/ci.yml)
2022-06-18 22:50:08 +02:00
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)
- 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/).
2022-08-16 10:43:32 +02:00
- CDS Short Time Code implementation according to
[CCSDS 301.0-B-4 3.3](https://public.ccsds.org/Pubs/301x0b4e1.pdf)
- Some helper types to support ASCII timecodes ad specified in
[CCSDS 301.0-B-4 3.5](https://public.ccsds.org/Pubs/301x0b4e1.pdf)
2022-08-16 10:11:49 +02:00
# Features
2022-09-13 10:21:52 +02:00
`spacepackets` supports various runtime environments and is also suitable for `no_std` environments.
2022-12-05 00:17:37 +01:00
It also offers optional support for [`serde`](https://serde.rs/). This allows serializing and
2022-08-05 01:01:08 +02:00
deserializing them with an appropriate `serde` provider like
[`postcard`](https://github.com/jamesmunns/postcard).
2022-08-16 10:11:49 +02:00
2022-12-19 11:02:36 +01:00
## Default features
2022-08-16 10:11:49 +02:00
2022-08-16 10:51:40 +02:00
- [`std`](https://doc.rust-lang.org/std/): Enables functionality relying on the standard library.
- [`alloc`](https://doc.rust-lang.org/alloc/): Enables features which operate on containers
2022-08-16 10:11:49 +02:00
like [`alloc::vec::Vec`](https://doc.rust-lang.org/beta/alloc/vec/struct.Vec.html).
2022-08-16 11:03:51 +02:00
Enabled by the `std` feature.
2022-12-19 11:02:36 +01:00
## Optional Features
2022-12-04 17:18:10 +01:00
- [`serde`](https://serde.rs/): Adds `serde` support for most types by adding `Serialize` and `Deserialize` `derive`s
2022-09-13 10:31:47 +02:00
# Examples
You can check the [documentation](https://docs.rs/spacepackets) of individual modules for various
usage examples.