/MQTTClient.jl

MQTT Client for Julia

Primary LanguageJuliaMIT LicenseMIT

MQTTClient.jl

Stable Dev Build Status Coverage Code Style: Blue

MQTT Client Library for Julia

Important! Version 0.3.0 or higher requires at least Julia v1.8

This library provides a MQTT Client and functions for interfacing with a standard MQTT broker. This includes publishing messages, and subscribing to topics to receive published messages. See the documentation for more information.

This package supports using Transmission Control Protocol (TCP) as well as Unix Domain Sockets (UDS) as the protocol to connect to the MQTT broker over. An example configuration for a Mosquitto broker can be found in the test folder.

Example Use

An example of how this package can be used is in the examples/basic.jl file.

Contributing

This package is using MQTT protocol v3.1.1.

If you would like to contribute to the project, please submit a PR. All contributions are welcomed and appreciated.

This work is based on the MQTT.jl packages created by femtomic and rweilbacher, and a lot of credit is due to their work along with the other contributors to those repositories.

TODO

  • protocol error handling
  • reconnect
  • persistence (in memory, files)
  • look at enums and how to use them
  • qos2
    • separate handle_pubrecrel into two different methods and fix them
  • review connect method
    • make it not hardcoded
  • disconnect_async/disconnect
    • think about what we need to do and how
    • the reconnect should still work
  • implement clean session = false
  • investigate adding global on_msg handler option back
  • investigate using MQTT v5.0