To know about 15 open-source (Public free) brokers of MQTT let’s first understand what MQTT is? MQTT ( Message Queuing Telemetry Transport ) is a machine-to-machine protocol designed to facilitate lightweight publish/subscribe message transportation. Its created by Dr Andy Stanford-Clark of IBM and Arlen Nipper of Arcom in 1999. It was available under a royalty-free license as protocol version 3.1 since 2010.
In other words, MQTT is a publish/subscribe protocol that allows edge-of-network devices to publish to a broker. Clients connect to this broker, which then mediates communication between the two devices. In short, Each device can subscribe, or register, to particular topics. When another client publishes a message on a subscribed topic, the broker forwards the message to any client that has subscribed.
What is an MQTT broker?
- An MQTT broker is a server that receives all messages from the clients and then routes the messages to the appropriate destination clients.
- An MQTT client is any device (from a microcontroller up to a full-fledged server) that runs an MQTT library and connects to an MQTT broker over a network.
Open-source brokers of MQTT
1) Mosquitto
- Certainly, Written in C programming language.
- Supports MQTT protocol version 3.1 and 3.1.1.
- Available for Windows, FreeBSD, Mac OS, and also GNU/Linux distributions.
- Also provides simple command-line MQTT clients called mosquitto_pub and mosquitto_sub.
2) Mosquitto pulse
- Created by Roger Light in 2010
- The development has been sponsored by Cedalo AG since 2018
- Available at GitHub under a dual license ( Eclipse Public License 1.0 and the Eclipse Distribution License 1.0)
3) Mosca
- It’s one of the Free and open-source brokers of MQTT certainly, written in JavaScript
- Can be used standalone or embedded in another Node.js application
- Supports MQTT protocol version 3.1 and 3.1.1
- Also Supports web sockets
- Available for all platforms on which you can run Node.js: MS Windows, Mac OS, and also GNU/Linux distributions
4) Mosca pulse
- Available at GitHub under MIT license
- Started by Matteo Collina in 2013
- Current stable version 2.8.3 from 12 July 2018
5) EMQ (emqttd)
- It’s one of the Free and open-source brokers of MQTT written in Erlang/OTP
- Supports MQTT protocol version 3.1, 3.1.1 and 5.0
- Also Supports web sockets, MQTT-SN, CoAP, STOMP, and SockJS
- Available for Windows, FreeBSD, Mac OS, and also GNU/Linux distributions
6) EMQ (emqttd) Pulse
- Available at GitHub under Apache License 2.0
- Started by Feng Lee in 2012
- Current stable version 2.3.11 from 27 July 2018
- EMQ Enterprise also provides commercial support and services for the open-source EMQ project
7) VerneMQ
- Free and open-source MQTT broker written in Erlang/OTP
- Supports MQTT protocol version 3.1, 3.1.1 and 5.0
- Also Supports web sockets
- Available for GNU/Linux distributions and Mac OS
- Not working on Windows due to the LevelDB code
- Link
8) VerneMQ Pulse
- Available at GitHub under Apache License 2.0
- Started in 2016
- Current stable version 1.5.0 from 21 August 2018
- Octavo Labs AG (successor of Erlio GmbH) provides commercial support and services
9) Apache ActiveMQ
- Free and open-source message broker certainly, written in JAVA
- Supports a large number of transport protocols: MQTT, OpenWire, STOMP, AMQP & others
- It Supports MQTT protocol version 3.1
- Also Supports web sockets
- Available for GNU/Linux distributions, UNIX compatible systems, and also Windows
10) Apache ActiveMQ Pulse
- A project of the Apache Software Foundation
- Available under Apache License 2.0
- Started in 2004 by LogicBlaze, donated to the Apache Software Foundation in 2007
- Current stable version 5.15.6 from 10 September 2018
11) RabbitMQ
- Free and open-source message broker written in Erlang
- Supports a large number of transport protocols: MQTT, STOMP, AMQP, HTTP
- It also Supports MQTT protocol version 3.1 via a plugin
- Also Supports WebSockets
- Available for GNU/Linux distributions, BSD & UNIX compatible systems, Mac OS, and also MS-Windows
12) RabbitMQ Pulse
- Available at GitHub under Mozilla Public License 1.1
- Started as a joint venture between LShift and CohesiveFT in 2007, acquired SpringSource, a division of VMware in 2010, part of Pivotal Software since 2013
- Current stable version 3.7.8 from 21 September 2018
13) HiveMQ
- MQTT broker implement in the Java programming language
- Supports MQTT protocol version 3.1 and 3.1.1
- Supports web sockets
- Lead developer Dominik Obermaier
- Open-source plugins available at GitHub under Apache-2.0
14) MQTTnet
- MQTTnet is a high-performance .NET library for MQTT based communication.
- Available in GitHub under MIT
- Certainly, written in C#
15) Wave
- Available in GitHub under GNU Affero General Public License v3.0
- Certainly, written in Erlang
- The latest release from June 2016