Skip to content
Roger Light edited this page Apr 27, 2023 · 63 revisions

This page attempts to document the features that various MQTT servers (brokers) support. This is specific to their MQTT support. Many of these servers have much wider capabilities beyond just MQTT.

Capabilities

Server QoS 0 QoS 1 QoS 2 auth Bridge $SYS SSL Dynamic topics cluster websockets plugin system Mqtt 5 support Active development
Aedes Username/Password rm
AWS IoT Services Client certificates ? §
Apache ActiveMQ Artemis JAAS
BevywiseIoTPlatform Key based rm
ClearBlade OAuth based User/Pass & Per-channel authorization ? ?
ejabberd
emitter Per-channel authorization
EMQ X Username/Password, JWT, LDAP, ClientID, ...
flespi
GnatMQ / M2MQTT Username/Password
HBMQTT Username/Password, Client certificates
HiveMQ Username/Password
IBM IoT MessageSight Username/Password
IBM Watson IoT Platform
IBM WebSphere MQ Middleware Username/Password, client certificate
Jmqtt Username/Password, Client certificates
JoramMQ
Mongoose
moquette ? rm
mosca
mosquitto §
MQTT.js §
MQTTnet § § § § § § rm
MqttWk ?
RabbitMQ SASL
Software AG Universal Messaging § § rm
Solace Basic, client certificate, Kerberos §
SwiftMQ
TraferoTstack
VerneMQ Username/Password
Waterstream Username/Password, SSL client certificates rm
mmqtt §

Keys

  • ✔ means: Supported
  • ✘ means: Not supported
  • ? means: Unknown
  • § means: See limitations
  • rm means: Roadmap (planned)

Deprecated or discontinued software / services

Limitations

  • AWS IoT Services reserves some topics starting with $.
  • ClearBlade reserves some topics starting with $.
  • mosquitto clustering is achieved on backend level (redis, amqp, etc).
  • MQTT.js will accept connections with username and password supplied, but does not actually authenticate the connection.
  • Software AG Universal Messaging provides Active/Active clustering (over a proprietary protocol) and bridging (over a proprietary protocol).
  • Solace does provide a proprietary bridge solution between brokers.
  • MQTTnet provides a client and server implementation. All features can be extended as desired (or left away). This targets mainly .Net developers to build their custom server and client implementations. However, the standard has already a lot of functionality available.

Potential columns to add

  • Last will support
  • Additional protocols support (WMQ, AMQP, MQTTs, etc)

This is in need of expanding. Please add known information about known brokers to this table and include any known limitations, too.

For a broker comparison (Although its outdated for sure now), see also https://github.com/mqtt/mqtt.github.io/issues/37 and the attached PDF file.

Clone this wiki locally