principales-broker-mqtt-open-source-para-proyectos-iot

Main Open Source MQTT Brokers for IoT Projects

  • 3 min

We continue with our series of posts dedicated to MQTT, the popular protocol for IoT, by looking at some of the main available MQTT brokers.

In previous posts, we have seen some of the main communication protocols for IoT, the MQTT protocol, and what topics are and how to organize them correctly in an MQTT project.

As we saw, one of the key elements of MQTT communication is the Broker, which is the program responsible for receiving messages sent by clients and distributing them among themselves in a pub-sub system.

protocolos-iot-pubsub When you see tutorials on the Internet, within the #Maker field, you will usually find references to the well-known Mosquitto, one of the most widely used Open Source brokers in the domestic sector. We will look at it in upcoming posts.

But it’s important to remember that it is not the only MQTT broker, especially in professional environments. On the contrary, and as expected, there is a wide variety of available MQTT brokers, each with its own features, advantages, and disadvantages.

Choosing the most suitable broker for our project determines its proper functioning and success. So, let’s take a quick look at some of the main MQTT brokers available.

  • Mosquitto. As mentioned, it is the most well-known MQTT broker in the domestic/#maker sector. It is an Open Source broker developed by the Eclipse Foundation and distributed under the EPL/EDL license. It is programmed in C and is cross-platform. It is a lightweight broker suitable for use on low-power servers.
  • Mosca. It is an Open Source MQTT broker for Node.js, developed in Javascript by Matteo Collina. It can be used as a standalone application or embedded in any Node.js project.
  • Aedes. By the same author as Mosca, Aedes is an Open Source MQTT broker server for Node.js designed to be a replacement for Mosca.
  • HBMQTT. It is an Open Source MQTT broker written in Python that runs on asyncio, introduced in Python 3.4.
  • EMQTT. Erlang MQTT broker is Open Source, developed in Erlang/OTP, and is designed for applications with high scalability demands.
  • RabbitMQ. It is a popular Open Source AMQP messaging broker, which also allows the use of the MQTT protocol through an Adapter.
  • HiveMQ CE. The Community version of the popular HiveMQ is an Open Source broker based on Java.
  • ActiveMQ. It is an Open Source JMS (Java Message Script) messaging broker developed by Apache, which also supports the MQTT protocol.
  • Moquette. An Open Source MQTT broker written in Java developed by Eclipse, notable for its lightness.
  • MQTTnet. An Open Source broker for .NET.

These are just a few examples of the most well-known brokers, but of course, there are many more (Mystique, Awesome MQTT, SurgeMQ, VerneMQ). As you can see, there is a whole ecosystem, with a broker for every language and every project.

In upcoming blog posts, we will look at some of them in more depth (mainly Mosquitto, Aedes, and RabbitMQ). And you, do you have any of your favorite MQTT brokers to add to the list?