rmqtt-codec
MQTT protocol codec — v3.1.1 / v5.0 encoding and decoding with handshake-based version negotiation.
Public types
MqttCodec (enum)
Implements tokio_util::codec::Encoder<MqttPacket> (error: EncodeError) and tokio_util::codec::Decoder (yields (MqttPacket, u32) — packet + consumed bytes; error: DecodeError).
MqttPacket (enum)
Public modules
| Module | Contents |
|---|---|
v3 |
Codec, Packet (Connect, ConnAck, Publish, PubAck, PubRec, PubRel, PubComp, Subscribe, SubAck, Unsubscribe, UnsubAck, PingRequest, PingResponse, Disconnect), ConnAckReason |
v5 |
Codec, Packet (same + Auth), PublishProperties, Auth, DisconnectReasonCode, SubscribeAckReason, UserProperties, ToReasonCode trait |
version |
VersionCodec, ProtocolVersion (MQTT3, MQTT5) — handshake detection |
error |
HandshakeError, ProtocolError, DecodeError, EncodeError, SendPacketError |
types |
QoS (AtMostOnce=0, AtLeastOnce=1, ExactlyOnce=2), Protocol (wrapper around u8), SubscribeReason, PacketId, Publish |
cert |
Certificate-related helpers |
Error types
Usage
use BytesMut;
use ;
use ;
let mut codec = V3; // max_packet_size
let mut buf = new;
codec.encode.unwrap;
Cargo.toml
[]
= "0.2"
Dependencies
tokio-util (codec), bytes, bytestring, serde, thiserror, bitflags, chrono, nonzero_ext, rmqtt-utils.
No features.
License
MIT OR Apache-2.0