server support - mqtt/mqtt.org GitHub Wiki
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
- 2lemetry was secretly bought by Amazon AWS, see the techcrunch article.
- Apache ActiveMQ Apollo is discontinued, see this link.
- JoramMQ seems to be discontinued.
- IBM IoT Message gateway is now IBM Watson IoT Platform.
- mosca is discontinued.
- RSMB is now Software AG Universal Messaging. However, the documentation is very bad.
- TraferoTstack is not updated since 2017, so not really maintained.
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.