Roadmap

Version 1.6

The next minor release. The focus of this release is on providing support for version 5 of the MQTT protocol.

This release will provide a feature complete implementation, but does not represent the final interface for all features. In particular, functions are being added to libmosquitto to provide support for MQTT 5 features, but these will be consolidated with the API changes planned for version 2.0.

Deprecation notices

libmosquittopp

libmosquittopp, the C++ wrapper around libmosquitto is now deprecated and will be removed in the next major release (2.0). The wrapper came about by an external request and at the time it was created there were no other C++ solutions for MQTT. This has changed in the past years and this wrapper provides no benefit over true C++ libraries or using the pure C libmosquitto.

libmosquitto API changes

The Mosquitto project has maintained API and ABI compatibility in libmosquitto since version 1.0, and has dealt with the introduction of new specification features by adding new functions which duplicate the behaviour of existing functions, but with additional arguments to support the new features. Particularly with regards to adding support for MQTT version 5, this has lead to a proliferation of functions which offer small variations on a theme.

The libmosquitto functions listed below (which includes some new functions included in 1.6) are going to be updated for version 2.0. Functions not listed here should still be considered at risk of being updated.

  • mosquitto_will_set
  • mosquitto_connect*
  • mosquitto_reconnect*
  • mosquitto_disconnect
  • mosquitto_publish*
  • mosquitto_subscribe*
  • mosquitto_unsubscribe*
  • mosquitto_loop*
  • mosquitto_*_callback_set
  • All callbacks
  • mosquitto_*_topic_check*

Version 2.0

This is the next major release and includes breaking changes. Other features planned include:

Disk persistence improvements

A new disk persistence interface will be created to allow persistence to occur immediately, rather than periodically. This will allow queued messages for disconnected clients to be removed from memory, and reduce the periodic pause caused when writing the persistence file.

Breaking changes

libmosquitto

The libmosquitto API is being consolidated to better support the new MQTT 5 features whilst reducing the number of function variants.

libmosquittopp

The C++ wrapper around libmosquitto will be removed in this release.