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 logicMqttPacket
: Unified representation of all protocol versions’ packet typesversion::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§
- Mqtt
Codec - Main MQTT protocol codec implementation
- Mqtt
Packet - Decoded MQTT protocol packets