Skip to content

Releases: JuliaMessaging/MQTTClient.jl

v0.3.1

29 May 15:41
6fcc30f
Compare
Choose a tag to compare

MQTTClient v0.3.1

Diff since v0.3.0

Improved Testing and CI.

Changes

  • created mock broker
  • update precomp ext using mock broker
  • update tests using mock broker
  • update ci to auto format with blue style
  • changed MQTTConnection to Connection and made it a struct.
    • MakeConnection behaves the same

Merged pull requests:

v0.3.0

28 May 09:19
7407565
Compare
Choose a tag to compare

MQTTClient v0.3.0

Diff since v0.2.1

Improved the stability of the client particularly for disconnect.

Changes

  • Upgraded atomics in Client to use the @atomic macro
  • Added checks in the read and write loop to verify available data so they will no longer block task finishing on disconnect
  • Implemented Trie/Prefix tree for topics to provide a more robust interface for subscription/unsubscription and managing multiple callback functions
  • update tests
  • update docs

Merged pull requests:

v0.2.1

06 Oct 16:46
4ebb3af
Compare
Choose a tag to compare

MQTTClient v0.2.1

Diff since v0.2.0

Merged pull requests:

v0.2.0

21 Sep 22:10
ade55e1
Compare
Choose a tag to compare

MQTTClient v0.2.0

Diff since v0.1.0

This Release provides a major restructure of user facing code to make the connect function fit into the MQTT.jl interface connect function and improve handling of TCP and UDS communication protocol. as well as removal of Dagger.jl for multithreading.

The MQTT.jl interface package hopefully will allow mqtt packages to align on their basic api and let users easily switch the mqtt back-end without significant changes to their code; and give mqtt package developers a framework to align with.

The interface changes also required modification to the (new) UDS protocol additions.

The dependency on Dagger.jl has been removed for 3 reasons: (1) Dagger is a rather large package, and I don't think it should be forced on everyone (2) @async performed better in most reasonable situations (3) if multi-threading is required, it is easier to create multiple clients and run a client per thread.

Changes

  • minor version increase to 0.2.0 from 0.1.0 since this includes updates to how clients and connections are called (breaking old code)
  • removed Dagger.jl now only using @async for internal async processes.
  • moved to JuliaMQTT project
  • updated Documenter docs structure (moving most of the documentation out of the readme)
  • Documenter static content updated to reflect code changes
  • broke the client file into 3 parts to improve readability
    • moved the constants and structs into a internals file
    • moved the connection struct into connection file
  • == function implemented for Message, User, and Packet structs
  • replaced TCPConnection and UDSConnection with MQTTConnection and put protocol specific information in an TCPConnection struct
    • this makes it so the connections can share almost all the same code and depending on if they are called with a socket path or a network address the correct connection will be used.
    • the Sockets.connect function is extended to take the protocol structs so determining which network protocol to connect over is offloaded to the compiler rather than if/else.
    • makes it so beyond the initial invocation (the path vs ip+port) in the connection all other aspects of the two protocols are abstracted away from user facing code and can be run exactly the same (see tests)
  • Client is updated to set socket to nothing rather than an empty placeholder. allows having only a single version of the constructor function.
  • connect/connect_async takes 2 arguments, client and connection
    • this is important for working with mqtt interface standard
    • all the connection specific information is now held in the MQTTConnection struct
  • a MakeConnection function was added to handle creating the Client and MQTTConnection structs at the same time
  • the default value for keep_alive was changed to 32 because values under 10 are rejected by Mosquitto.
  • smoketest and stresstest were moved to functions to test both TCP and UDS clients without duplicating code
  • unittests for tcp and uds were joined since only difference is the MQTTClient struct
  • mosquitto setup to run in gh actions for stress and smoke testing
  • stress and smoke tests enabled in CI testing
  • Docstrings updated for modified functions and new functions
  • Add PrecompileTools as weak deps
  • Fix wildcard call back on msg

Merged pull requests:

Closed issues:

  • Unix Socket Connections (#6)

v0.1.0

22 Jun 20:58
Compare
Choose a tag to compare

MQTTClient v0.1.0

Merged pull requests: