RelayQ

Pure Rust MQTT 3.1.1 broker — zero dependencies, Sparkplug B native, formally verified.

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

FeatureRelayQMosquittoNanoMQEMQX
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 size2.3MB (scratch, no OS)~10MB~10MB~200MB
Binary size (embedded)826KB~500KB~200KBN/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

MethodScopeResult
Mathematical proofProtocol state machines6 properties verified
Concurrency analysisShared state5 models, 0 races
Fuzz testingPacket codec6M inputs, 0 panics
Protocol testsFull MQTT 3.1.11,100+ tests

Supported Platforms

PlatformArchitectureBinary
Linux (server)x86_64, aarch64, armv7Full
Docker (scratch)x86_64, aarch642.3MB image
Embedded LinuxAny (Yocto/Buildroot)826KB (no TLS)
systemd serviceAny Linuxsd_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.

See the full roadmap →

Ready to evaluate RelayQ?

Full-featured pilot. No credit card. Direct support.

Start Free 90-Day Pilot