rmqtt 0.15.0-beta1

MQTT Server for v3.1, v3.1.1 and v5.0 protocols
Documentation
rmqtt-0.15.0-beta1 has been yanked.

RMQTT Broker Core Implementation (v2025.04)

Implements high-performance MQTT broker architecture with full protocol compliance (v3.1.1 & v5.0),
designed for mission-critical IoT systems and large-scale distributed deployments. Key features:

  1. Protocol Engine

    • Dual-stack MQTT v3/v5 support via v3/v5 modules
    • Zero-copy codec implementation from rmqtt_codec
    • QoS 0/1/2 message handling with inflight tracking
  2. Enterprise Features

    • Distributed session management via shared module
    • Cluster node coordination in node module
    • TLS/SSL support with certificate validation
    • Retained message store (retain feature)
  3. Extensibility

    • Plugin system architecture (plugin module)
    • Custom authentication hooks (acl module)
    • Metrics collection pipeline (metrics feature)

MQTT Spec Compliance

Overall Example


use rmqtt::context::ServerContext;
use rmqtt::net::{Builder, Result};
use rmqtt::server::MqttServer;

#[tokio::main]
async fn main() -> Result<()> {
   
   let scx = ServerContext::new().build().await;

   MqttServer::new(scx)
      .listener(Builder::new().name("external/tcp").laddr(([0, 0, 0, 0], 1883).into()).bind()?.tcp()?)
      .listener(Builder::new().name("internal/tcp").laddr(([0, 0, 0, 0], 11883).into()).bind()?.tcp()?)
      .listener(Builder::new().name("external/ws").laddr(([0, 0, 0, 0], 8080).into()).bind()?.ws()?)
      .build()
      .run()
      .await?;
      Ok(())
}