Skip to main content

Crate zerodds_mqtt_bridge

Crate zerodds_mqtt_bridge 

Source
Expand description

Crate zerodds-mqtt-bridge. Safety classification: STANDARD.

MQTT v5.0 (OASIS Standard 07 March 2019) Wire-Codec + Broker + DDS-Bridge — pure-Rust no_std + alloc, forbid(unsafe_code). Implementiert die volle MQTT-5.0-Spec inkl. aller Control-Packet- Bodies (CONNECT / CONNACK / PUBLISH / PUBACK / PUBREC / PUBREL / PUBCOMP / SUBSCRIBE / SUBACK / UNSUBSCRIBE / UNSUBACK / PINGREQ / PINGRESP / DISCONNECT / AUTH), aller Properties (§2.2.2), Keep-Alive-Tracker (§3.1.2.10), Topic-Filter-Matching mit Wildcards (§4.7), In-Memory-Broker mit Session-State + Retained- Messages + Will-Messages, und einen MQTT↔DDS-Topic-Bridge.

Spec: OASIS MQTT 5.0 §1 (Introduction), §1.5 (Data Types), §2 (MQTT Control Packet Format), §3 (MQTT Control Packets), §4 (Operational Behavior).

§Schichten-Position

Layer 5 — Bridges. Substrat fuer DDS↔MQTT-Endpoint-Mapping (IoT-Broker-Integration, Cloud-MQTT-Endpoints).

§Public API (Stand 1.0.0-rc.1)

§Beispiel

use zerodds_mqtt_bridge::{encode_vbi, decode_vbi};

let buf = encode_vbi(268_435_455).expect("encode max VBI");
let (v, consumed) = decode_vbi(&buf).expect("decode");
assert_eq!(v, 268_435_455);
assert_eq!(consumed, 4);

Re-exports§

pub use codec::CodecError;
pub use codec::decode_publish;
pub use codec::encode_publish;
pub use control_packets::AckBody;
pub use control_packets::AuthBody;
pub use control_packets::ConnackBody;
pub use control_packets::ConnectBody;
pub use control_packets::DisconnectBody;
pub use control_packets::PropertyDataType;
pub use control_packets::SubackBody;
pub use control_packets::SubscribeBody;
pub use control_packets::Subscription;
pub use control_packets::UnsubackBody;
pub use control_packets::UnsubscribeBody;
pub use control_packets::decode_ack_body;
pub use control_packets::decode_auth_body;
pub use control_packets::decode_connack_body;
pub use control_packets::decode_connect_body;
pub use control_packets::decode_disconnect_body;
pub use control_packets::decode_suback_body;
pub use control_packets::decode_subscribe_body;
pub use control_packets::decode_unsuback_body;
pub use control_packets::decode_unsubscribe_body;
pub use control_packets::encode_ack_body;
pub use control_packets::encode_auth_body;
pub use control_packets::encode_connack_body;
pub use control_packets::encode_connect_body;
pub use control_packets::encode_disconnect_body;
pub use control_packets::encode_suback_body;
pub use control_packets::encode_subscribe_body;
pub use control_packets::encode_unsuback_body;
pub use control_packets::encode_unsubscribe_body;
pub use control_packets::property_data_type;
pub use data_types::decode_binary_data;
pub use data_types::decode_two_byte_int;
pub use data_types::decode_utf8_string;
pub use data_types::encode_binary_data;
pub use data_types::encode_two_byte_int;
pub use data_types::encode_utf8_string;
pub use packet::ControlPacketType;
pub use packet::FixedHeader;
pub use properties::Property;
pub use properties::PropertyId;
pub use properties::PropertyValueKind;
pub use vbi::decode_vbi;
pub use vbi::encode_vbi;
pub use vbi::vbi_size;
pub use broker::Broker;
pub use broker::DeliveryEnvelope;
pub use broker::QoS;
pub use broker::RetainedMessage;
pub use broker::Session;
pub use broker::Subscription as BrokerSubscription;
pub use broker::Will;
pub use dds_bridge::BridgeStats;
pub use dds_bridge::DdsDurability;
pub use dds_bridge::DdsReliability;
pub use dds_bridge::MqttDdsBridge;
pub use dds_bridge::TopicMapper;
pub use dds_bridge::dds_qos_to_mqtt;
pub use dds_bridge::forward_user_properties;
pub use dds_bridge::mqtt_qos_to_dds;
pub use keep_alive::KeepAliveTracker;
pub use reason_codes::ReasonCode;
pub use topic_filter::TopicFilterError;
pub use topic_filter::matches as topic_matches;
pub use topic_filter::validate_filter;
pub use topic_filter::validate_topic_name;

Modules§

broker
MQTT-5.0 Broker-Logic — Spec §3 + §4.
codec
MQTT v5.0 PUBLISH-Packet Codec — Spec §3.3.
control_packets
MQTT v5.0 Control Packet Body Codecs — Spec §3.1-§3.15.
daemon
zerodds-mqtt-bridged Daemon-Implementation.
data_types
MQTT v5.0 Data Types — §1.5.
dds_bridge
MQTT↔DDS-Topic-Bridge.
keep_alive
MQTT v5.0 Keep-Alive-Tracker — Spec §3.1.2.10.
packet
MQTT Control Packet Types + Fixed Header — Spec §2.1.
properties
MQTT v5.0 Properties — Spec §2.2.2.
reason_codes
MQTT 5.0 Reason Codes — Spec §2.4.
topic_filter
MQTT Topic Filter Matching — Spec §4.7.
vbi
Variable Byte Integer — MQTT v5.0 §1.5.5.