RelayQ is a production-grade MQTT 3.1.1 broker built in pure Rust with zero runtime dependencies. It is the only MQTT broker with 100% Sparkplug B Aware conformance and independent formal verification.
Who is it for?
- Industrial IoT teams deploying Sparkplug B
- Organizations subject to IEC 62443 or supply-chain security requirements
- Edge computing deployments where every dependency is a liability
- Embedded gateway OEMs needing a small, auditable broker
Feature Matrix
| Feature | RelayQ | Mosquitto | NanoMQ | EMQX |
|---|---|---|---|---|
| MQTT 3.1.1 full conformance | ✅ | ✅ | ✅ | ✅ |
| Zero runtime dependencies | ✅ | ❌ (15+) | ❌ (10+) | ❌ (200+) |
| Sparkplug B Aware mode | ✅ | ❌ | ❌ | ❌ |
| Formal verification | ✅ | ❌ | ❌ | ❌ |
| TLS 1.3 + mTLS | ✅ | ✅ | ✅ | ✅ |
| Certificate revocation (CRL) | ✅ | ✅ | ❌ | ✅ |
| Certificate pinning | ✅ | ❌ | ❌ | ❌ |
| Built-in Prometheus metrics | ✅ | ❌ (plugin) | ❌ | ✅ |
| Admin API | ✅ | ❌ | ❌ | ✅ |
| OOM protection | ✅ | ❌ | ❌ | ❌ |
| Rate limiting (built-in) | ✅ | ❌ (plugin) | ❌ | ✅ |
| Dead letter queue | ✅ | ❌ | ❌ | ✅ |
| Container image size | 2.3MB (scratch, no OS) | ~10MB | ~10MB | ~200MB |
| Binary size (embedded) | 826KB | ~500KB | ~200KB | N/A |
| Memory safety | ✅ (Rust) | ❌ (C) | ❌ (C) | ✅ (Erlang) |
| Clustering | ❌ | ❌ | ❌ | ✅ |
| MQTT 5.0 | ❌ | ✅ | ✅ | ✅ |
Design Decisions
Why std-only (zero dependencies)? Every dependency is an attack surface you can’t fully audit, a supply-chain risk you can’t fully control, and a compliance burden you must continuously monitor. For a component in the critical path of your OT network, that’s unacceptable.
Why thread-per-client? Predictable latency over maximum throughput. No async runtime means no hidden task scheduling, no executor bugs, no coloured function problems. Each client gets a dedicated OS thread with deterministic behaviour.
Why no MQTT 5.0? Our target market runs MQTT 3.1.1 with Sparkplug B. The Sparkplug specification is built on 3.1.1. Adding 5.0 would increase binary size and attack surface without serving our core customers.
Security
- Zero runtime dependencies (non-TLS build) — trivial SBOM
- SHA-256 credential hashing (FIPS 180-4)
- TLS 1.3 via rustls (optional, feature-gated)
- mTLS with client certificate verification
- Topic-level ACL with default-deny
- Brute-force protection (per-IP failure tracking)
- IP allowlist/blocklist (exact + CIDR)
- Rate limiting (per-client + global)
- OOM guard with automatic graceful shutdown
- Audit logging (append-only)
Sparkplug B Conformance
RelayQ is the only MQTT broker with built-in Sparkplug B validation:
- 100% Sparkplug B Aware conformance
- Topic shape validation and rejection in Aware mode
- Metric name and datatype stability checking
- bdSeq stale-session detection
- Birth/death sequencing enforcement
- Violation counters and $SYS mirroring
- Sparkplug-aware ACL templates
Formal Verification
| Method | Scope | Result |
|---|---|---|
| Mathematical proof | Protocol state machines | 6 properties verified |
| Concurrency analysis | Shared state | 5 models, 0 races |
| Fuzz testing | Packet codec | 6M inputs, 0 panics |
| Protocol tests | Full MQTT 3.1.1 | 1,100+ tests |
Supported Platforms
| Platform | Architecture | Binary |
|---|---|---|
| Linux (server) | x86_64, aarch64, armv7 | Full |
| Docker (scratch) | x86_64, aarch64 | 2.3MB image |
| Embedded Linux | Any (Yocto/Buildroot) | 826KB (no TLS) |
| systemd service | Any Linux | sd_notify + watchdog |
License
Elastic License 2.0 (ELv2) — free to use and deploy. You may not provide the software as a hosted or managed service to third parties.
Source code available to licensed customers under separate agreement.
Roadmap
RelayQ is evolving into a full Edge IoT Platform — local rules engine, hardware-bound licensing, device shadow, historian, OTA, and protocol translation (Modbus/TCP, CAN bus). Same zero-dependency core, same security posture.
Ready to evaluate RelayQ?
Full-featured pilot. No credit card. Direct support.
Start Free 90-Day Pilot