1#![cfg_attr(not(feature = "std"), no_std)]
2#![warn(clippy::pedantic)]
3
4#[cfg(not(feature = "std"))]
5extern crate alloc;
6
7mod prelude;
8
9pub mod bridge;
10pub mod connection;
11pub mod constants;
12pub mod encoding;
13pub mod error;
14pub mod error_classification;
15pub mod flags;
16pub mod keepalive;
17pub mod packet;
18pub mod packet_id;
19pub mod protocol;
20pub mod qos2;
21pub mod session;
22pub mod time;
23pub mod topic_matching;
24pub mod transport;
25pub mod types;
26pub mod validation;
27
28pub use error::{MqttError, Result};
29pub use flags::{ConnAckFlags, ConnectFlags, PublishFlags};
30pub use packet::{FixedHeader, Packet, PacketType};
31pub use protocol::v5::properties::{Properties, PropertyId, PropertyValue, PropertyValueType};
32pub use protocol::v5::reason_codes::ReasonCode;
33pub use transport::Transport;
34pub use types::{
35 ConnectOptions, ConnectProperties, ConnectResult, Message, MessageProperties, ProtocolVersion,
36 PublishOptions, PublishProperties, PublishResult, QoS, RetainHandling, SubscribeOptions,
37 WillMessage, WillProperties,
38};
39pub use validation::{
40 is_valid_client_id, is_valid_topic_filter, is_valid_topic_name, parse_shared_subscription,
41 strip_shared_subscription_prefix, topic_matches_filter, validate_client_id,
42 validate_topic_filter, validate_topic_name, RestrictiveValidator, StandardValidator,
43 TopicValidator,
44};
45
46pub use session::{
47 ExpiringMessage, FlowControlConfig, FlowControlStats, LimitsConfig, LimitsManager,
48 MessageQueue, QueueResult, QueueStats, QueuedMessage, Subscription, SubscriptionManager,
49 TopicAliasManager,
50};
51
52pub use connection::{
53 ConnectionEvent, ConnectionInfo, ConnectionState, ConnectionStateMachine, DisconnectReason,
54 ReconnectConfig,
55};
56
57pub use keepalive::{calculate_ping_interval, is_keepalive_timeout, KeepaliveConfig};
58
59pub use error_classification::RecoverableError;
60
61pub use bridge::{
62 evaluate_forwarding, BridgeDirection, BridgeStats, ForwardingDecision, TopicMappingCore,
63};