- Cargo.toml: add documentation and readme fields; expand the exclude list so deny.toml, justfile, mise.toml, .github, .jj, fuzz, and any cargo-mutants output never ship in the published tarball. - README: badges, install snippet for both feature shapes, testing matrix. - CHANGELOG.md: keep-a-changelog skeleton with a 0.1.0 entry. - Revert framing.rs let-chain back to nested if-let so the published MSRV holds at the edition-2024 floor (1.85). Behaviour unchanged. cargo publish --dry-run packages cleanly.
1.4 KiB
1.4 KiB
Changelog
All notable changes to this crate are documented here. The format follows Keep a Changelog and this project adheres to Semantic Versioning.
0.1.0 — 2026-04-13
Initial release. The DongLoRa wire-protocol types and COBS framing,
extracted from the firmware so the firmware, client-rs, mux-rs,
and bridge can share one definition.
Added
- Wire types:
Command,Response,RadioConfig,Bandwidth,ErrorCode, plus theMAX_PAYLOAD,RADIO_CONFIG_SIZE,TX_POWER_MAX, andPREAMBLE_DEFAULTconstants. Fixed-width little-endian on the wire — see the firmware repo'sPROTOCOL.md. framingmodule: streamingCobsDecoderpluscobs_encode_response, with aMAX_FRAMEconstant sized to fit any validResponseafter COBS overhead.- Cargo features:
defmt(default, derivesdefmt::Formaton public enums) andstd(off, opt-in for host-sideDebugniceties). - Test surface: 23 proptest properties (~1.13M cases per run), 4 cargo-fuzz targets, 16 canonical wire-byte vectors anchored to the spec, 6 mutation-killers. Mutation testing reaches 89/89 viable mutants under both feature configurations (3 provably-equivalent mutants documented and excluded). Miri runs clean on the library and the canonical-vector tests.
forbid(unsafe_code)at the crate root.- GitHub Actions CI (test/clippy/fmt/doc/deny/miri/fuzz/mutants).