The LiquidCAN Protocol is the CAN communication protocol for Liquid Projects at the TU Wien Space Team.
Please read the LiquidCAN.pdf file for a detailed description of the protocol.
Cpp-Implementation/- Reference implementation in CppRust-Implementation/- Reference implementation in Rust
This repository serves as the central location for all versioning updates for the protocol. Every update must be accompanied by:
- A commit on main
- A new version number
- An updated PDF file with the new version number
- Updates to the corresponding Rust and Cpp implementations
- A git tag for releases
When creating issues or pull requests with protocol changes, generate a PDF diff to visualize the changes:
latexdiff-vc --git --flatten --pdf -r <old-commit> LiquidCAN.tex The repository includes a CI script (ci-rust.sh) that runs all quality checks on the Rust implementation. This script is used both locally and in GitHub Actions
Run all checks:
./ci-rust.sh
# or explicitly
./ci-rust.sh allRun individual checks:
./ci-rust.sh build # Build the project
./ci-rust.sh test # Run tests
./ci-rust.sh test-macros # Run macro tests
./ci-rust.sh fmt # Check code formatting
./ci-rust.sh clippy # Run clippy linter
./ci-rust.sh clippy-macros # Run clippy on macrosYou can fix formatting or linter issues by adding the -fix suffix to the command. e.g: ./ci-rust.sh clippy-fix