Paho/Paho MQTT Broker for C Language

From Eclipsepedia

Jump to: navigation, search

Background

One factor behind recent increases in the adoption of MQTT is the availability of quality open source MQTT Broker implementations. The ease with which developers can download and deploy the Mosquitto MQTT broker, along with the availability of a multitude of MQTT client implementations on many different platforms and languages has greatly benefited the MQTT ecosystem at large.

Prior to the Mosquitto MQTT broker availability, IBM made an executable of their “Really Small Message Broker” or RSMB available for developers to experiment with in conjunction with the development of their MQTT client implementations, but terms of use outside of a development environment limited the general adoption of RSMB in the community at large. Having said this, with RSMB being available for many years now, it has its fair share of implementations and is well tested.

With a Paho Project focus on increasing availability, adoption and use of the open MQTT protocol, it is desirable to find a means to bring the value of Mosquitto and RSMB to the MQTT ecosystem. It should be noted that RSMB and Mosquitto were developed entirely independently without developer collaboration, and only the API’s are similar in the implementations. In response to the community, we will start by investigating and developing a proposal for a single “Best in Class” open source C language MQTT Broker implementation.



Pulling Mosquitto/RSMB into the Paho Project

One area of investigation is to look at two of the leading MQTT Broker candidates and see what the level of interest was in being able to pull either one, or both, into the Eclipse Paho project. There is interest from both the developer of the Mosquitto MQTT Broker as well as from IBM around providing RSMB (Really Small Message Broker) as an open source broker. To that end we organized a call to discuss this subject.

The results of the first call are posted here:

August 9th, 2012 - Mosquitto/RSMB Conference Call Meeting Notes

Attendee List: Roger Light, Nick O'Leary, Ian Craggs, Dave Locke, Mike Milinkovich, Andy Gelme, Arlen Nipper, Scott de Deugd


  • Agenda Item #1 - Mosquitto vs RSMB. How closely are the architectures, tooling, packaging, testing aligned?

The general consensus is that although Mosquitto and RSMB have similar API's, the code bases would be completely different. For example, IBM pointed out that RSMB is a supported IBM product and that some of the serviceability components built in would probably be very different from the Mosquitto code base. As expected, it was agreed that "merging" code bases would not be a desirable way forward. Therefore consensus was around a scenario as we move forward to continue to work on the logistics of bringing Mosquitto into the Paho project as a "subproject" to get started. This would minimize the process overhead while still differentiating the server support from the clients within Paho. This approach would then provide a few options to bring in features or other contributions from RSMB as required.Mike suggested one approach, to go ahead and also bring in RSMB as open source within the same subproject but "park" the code base. That would require a bit more work and careful positioning, but would have the code approved throughthe IP process as we work to understand capabilities of RSMB that would be interesting to incorporate into Mosquitto. In addition to the discussions around Mosquitto, Roger also brought up the fact that within Mosquitto there are MQTT client implementations as well, and would we end up with multiple 'C' client implementations. We agreed that for the time being, the additional clients would be brought in as well and the Paho team would either differentiate the clients based on the embedded target platform (deeply "embedded" clients vs. server side clients) or that the two code bases would merge over time.


  • Agenda Item #2 - Resources required.

At this point in time Roger does not know the full extent of the resources that would be required, so one of the next action items is to have a follow on call to discuss how the process would work. Once that is understood then we can make the next decision as to if the migration will continue, and if so what resources would be needed to help in the process.  Mike made another suggestion here that the sub-project could have co-leads allowing for example, Roger to focus on development and the co-lead to handle the Eclipse process work.  We will schedule a follow up call in three weeks. A notice will be distributed on the Paho mail list for interested parties to join. One key decision that would be important in this scenario is whether the sub-project will maintain the Mosquitto name or not.


  • Agenda Item #3 - Laying out a plan for next steps and really getting something started.

Next steps include having a follow on call with Roger to clear up remaining questions and to understand how Mosquitto can be brought into Paho as a sub-project. The Mosquitto name could be moved to Eclipse with the code base, or it could be brought into Eclipse.org under a new name, with Mosquitto.org still be managed as a standalone site. More work may be needed here to understand the implications of both options for Roger and others interested in participating in the subproject.