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 coordinationmqtt: MQTT protocol implementationplugin_host: plugin discovery, lifecycle management, IPC, and hook dispatchplugin_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.