#mqtt #codec #v5 #fork #tokio-codec #function #default

mqtt-v5-fork

Rust types, encode/decode functions, and a tokio codec for MQTT V5. Fork for MCloudTT

1 unstable release

0.2.0 Mar 13, 2023

#10 in #tokio-codec

MIT license

160KB
4K SLoC

mqtt-v5

Rust types, encode/decode functions, and a tokio codec for MQTT V5.

Dependencies

  • cargo
  • rustc

Feature Flags

codec: Export an MqttCodec type under mqtt_v5_fork::codec::MqttCodec. Enabled by default.

Build

$ cargo build --release

Testing

$ cargo test

Code Format

The formatting options currently use nightly-only options.

$ cargo +nightly fmt

Code Linting

$ cargo clippy

Code Fuzzing

Fuzzing requires a nightly toolchain. Fuzzing for this project is currently confirmed to work with:

rustc 1.42.0-nightly (6d3f4e0aa 2020-01-25)

Running

Run this from the root project, not inside the mqtt-v5 directory.

cargo install cargo-fuzz
cargo +nightly fuzz run decoder_fuzzer_v311
cargo +nightly fuzz run decoder_fuzzer_v500
cargo +nightly fuzz run topic_filter_fuzzer
cargo +nightly fuzz run topic_fuzzer

Dependencies

~1.2–2.7MB
~56K SLoC