MQTT v5.0 and v3.1.1 protocol implementation - packets, encoding, and validation.
```rust
use mqtt5_protocol::packet::*;
use mqtt5_protocol::types::*;
let connect = ConnectPacket::new("client-id");
let bytes = connect.encode()?;
let packet = Packet::decode(&bytes)?;
```
This crate is used by `mqtt5` and `mqtt5-wasm` for their client and broker implementations.
Licensed under either of Apache License, Version 2.0 or MIT license at your option.