2026-09-24 16:23:31 +02:00
2023-01-25 20:37:28 +01:00
2025-02-13 12:18:05 +01:00
2022-06-18 22:47:10 +02:00
2023-09-06 21:58:56 +02:00
2026-09-24 21:49:20 +02:00

sat-rs book Crates.io docs.rs matrix chat

sat-rs

This is the repository of the sat-rs library. Its primary goal is to provide re-usable components to write on-board software for remote systems like rovers or satellites. It is specifically written for the special requirements for these systems. You can find an overview of the project and the link to the more high-level sat-rs book at the IRS software projects website.

This is early-stage software. Important features are missing. New releases with breaking changes are released regularly, with all changes documented inside respective changelog files. You should only use this library if your are willing to work in this environment.

A lot of the architecture and general design considerations are based on the FSFW C++ framework which has flight heritage through the 2 missions FLP and EIVE.

Overview

This project currently contains the following crates:

  • satrs-book: Primary information resource in addition to the API documentation, hosted here. It can be useful to read this first before delving into the example application and the API documentation.
  • satrs: Primary crate.
  • satrs-mib: Components to build a mission information base from the on-board software directly.

Examples

All examples and their helper crates are located inside the examples folder:

  • satrs-example: Example on-board software using various sat-rs components which can be run on a host computer or on any system with a standard runtime like a Raspberry Pi.
  • satrs-minisim: Mini-Simulator based on nexosim which simulates some physical devices for the satrs-example application device handlers.
  • client: Ground client to command the satrs-example application.
  • types: Telecommand and telemetry definitions shared by the satrs-example application and the client.
  • satrs-stm32f3-disco-rtic: Simple example using low-level sat-rs components on a bare-metal system with constrained resources. This example uses the RTIC framework on the STM32F3-Discovery device.
  • satrs-stm32h7-nucleo-rtic: Simple example using sat-rs components on a bare-metal system with constrained resources. This example uses the RTIC framework on the NUCLEO-H753ZI board.
  • embedded-client and embedded-types: Client and shared telecommand and telemetry definitions for the embedded examples.

The library crates and the satrs-example application have their own CHANGELOG.md.

Related projects

In addition to the crates in this repository, the sat-rs project also maintains other libraries.

  • spacepackets: Basic ECSS and CCSDS packet protocol implementations. This repository is re-exported in the satrs crate.
  • cfdp: CCSDS File Delivery Protocol (CFDP) high-level library components.

Flight Heritage

There is an active and continuous effort to get early flight heritage for the sat-rs library. Currently this library has the following flight heritage:

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 satrs crate with coverage. You can optionally supply the --open flag to open the coverage report in your webbrowser.

S
Description
sat-rs: A library to build on-board software for remote systems
Readme
20 MiB
2025-11-06 14:51:52 +01:00
Languages
Rust 99.6%
Python 0.1%
Dockerfile 0.1%