swaits da9249446c ci: pin fuzz jobs to x86_64-unknown-linux-gnu
cargo-fuzz defaults to x86_64-unknown-linux-musl on Linux so ASAN can
statically link, but dtolnay/rust-toolchain@nightly doesn't ship a
musl std and GH runners don't have it preinstalled — build failed with
'can't find crate for core' on byteorder. Pinning both fuzz build and
fuzz run to the gnu target uses the std that comes with the toolchain
and works out of the box.
2026-04-13 14:07:24 -06:00

donglora-protocol

CI Crates.io Docs.rs

Wire protocol types and COBS framing for DongLoRa, shared between the firmware and host crates (client-rs, mux-rs, bridge). no_std, zero-alloc, fixed-width little-endian — see the firmware repo's PROTOCOL.md for the full spec.

Install

# Embedded / firmware (defmt::Format derives on by default):
donglora-protocol = "0.1"

# Host (no defmt):
donglora-protocol = { version = "0.1", default-features = false }

Layout

  • src/lib.rs — Command, Response, RadioConfig, Bandwidth, ErrorCode plus constants and validation/resolve helpers.
  • src/framing.rs — CobsDecoder (streaming) and cobs_encode_response.

Features

Feature Default What it does
defmt yes Derive defmt::Format on public enums.
std no Enable Debug-based niceties for host-side fuzz / proptest.

Testing

The crate ships its own quality gate via just test:

Gate What runs
test-unit nextest across all feature permutations + doc tests
test-clippy -D warnings across all feature permutations
test-fmt cargo fmt -- --check
test-doc cargo doc --no-deps --all-features
test-deny cargo deny check
test-fuzz 60 s on each of 7 cargo-fuzz targets (nightly)
test-miri miri on lib + vector tests, both feature shapes (nightly)
test-mutants cargo-mutants under both feature configurations

The proptest suite alone exercises ~1.13M test cases per run.

License

MIT — see LICENSE.

S
Description
No description provided
Readme MIT
176 KiB
0 Stars 1 Watchers 0 Forks
Languages
Rust 98.6%
Just 1.4%