Skip to main content

Overview

YedMQ is a distributed MQTT broker written in Rust for modern IoT and device messaging systems. The current implementation focuses on MQTT v3.1.1, multi-tenant isolation, Raft-backed clustering, and a process-based plugin runtime.

Project status

YedMQ is under active development. The GitHub repository is still private, and the project is not yet recommended for production use.

What YedMQ provides today

  • MQTT v3.1.1 broker capabilities including QoS 0, 1, and 2, retained messages, last will, and persistent sessions
  • TCP, TLS, WebSocket, and WSS listeners
  • Tenant-aware routing, session handling, and REST operations
  • Raft-managed cluster state for topics, session actor map, and session state
  • Process-based plugins for authentication, authorization, message publish handling, and event-style integrations
  • REST management API for plugins, clients, topics, retained messages, system information, and cluster operations

Architecture at a glance

YedMQ is split into a few clear runtime components:

  • broker: listeners, router, sessions, REST API, and cluster coordination
  • mqtt: MQTT protocol implementation
  • plugin_host: plugin discovery, lifecycle management, IPC, and hook dispatch
  • plugin_protocol: Protobuf definitions shared by the broker and plugins

Current boundaries

  • The current protocol target is MQTT v3.1.1. MQTT v5.0 remains on the roadmap.
  • The plugin runtime is process-based. Dynamic library loading is not part of the current implementation.
  • The generated OpenAPI pages are the canonical API reference for request and response details.

Continue with