670321efd12931a9fbdaf8868d0ba381d64223ee
Eight parallel jobs on push/PR: - test × 3 (default / no-default / all-features) via nextest + doc - clippy × 3 feature permutations, -D warnings - fmt - doc (all-features, -D warnings on rustdoc) - deny (cargo-deny action) - miri (nightly, lib + vectors under default + no-default) - fuzz (nightly, 60 s smoke on every target) - mutants × 2 feature configs (same equivalence exclusions as local) Swatinem/rust-cache on every cargo job; taiki-e/install-action for nextest / cargo-fuzz / cargo-mutants. Uploads mutants.out on failure. Drops test-fuzz-long from the justfile — 60 s per target in CI every push plus the local proptest 1M-case suite already covers this.
donglora-protocol
Wire protocol types and COBS framing for DongLoRa, shared between firmware
and host crates (client-rs, mux-rs, bridge).
no_std by default. defmt::Format derives are opt-in via the default
defmt feature. Host consumers disable default features:
donglora-protocol = { version = "0.1", default-features = false }
Status
Pre-1.0. Currently consumed by path dep; will publish to crates.io once the surface area settles.
Layout
src/lib.rs—Command,Response,RadioConfig,ErrorCode, etc.src/framing.rs—CobsDecoder+cobs_encode_responsefor USB/UART transports.tests/— proptest suite (roundtrips, bounded-capacity invariants, regional-regs, duty-cycle math).fuzz/— cargo-fuzz targets on the parser and framer.
Languages
Rust
98.6%
Just
1.4%