Crate rmqtt_codec

Source
Expand description

MQTT protocol codec implementation with multi-version support and version negotiation

§Core Features:

  • Dual Protocol Support: Full implementation of MQTT v3.1, v3.1.1 and v5.0 specifications
  • Automatic Version Detection: Handshake-based protocol negotiation during connection establishment
  • Zero-Copy Encoding: Efficient binary processing using bytes::BytesMut for network operations
  • Tokio Integration: Seamless compatibility with Tokio runtime via tokio_util::codec
  • Memory Safety: Strict enforcement of message size limits (1MB default) with configurable constraints

§Architecture Components:

  • MqttCodec: Main dispatcher handling version-specific encoding/decoding logic
  • MqttPacket: Unified representation of all protocol versions’ packet types
  • version::ProtocolVersion: Detection mechanism for protocol handshake
  • Error handling with dedicated EncodeError/DecodeError types

Modules§

error
Error types for encoding/decoding operations
types
Shared types and constants for MQTT protocol
v3
MQTT v3.1.1 protocol implementation MQTT v3.1.1 Protocol codec
v5
MQTT v5.0 protocol implementation MQTT v5 Protocol codec
version
Protocol version detection and negotiation

Enums§

MqttCodec
Main MQTT protocol codec implementation
MqttPacket
Decoded MQTT protocol packets