Releases: JuliaMessaging/MQTTClient.jl
v0.3.1
MQTTClient v0.3.1
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
toConnection
and made it a struct.MakeConnection
behaves the same
Merged pull requests:
- Create a Mock Broker (#12) (@NickMcSweeney)
v0.3.0
MQTTClient v0.3.0
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:
- Upgrade datastructures (#11) (@NickMcSweeney)
v0.2.1
v0.2.0
MQTTClient v0.2.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
from0.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
- moved the constants and structs into a
-
==
function implemented forMessage
,User
, andPacket
structs - replaced
TCPConnection
andUDSConnection
withMQTTConnection
and put protocol specific information in anTCPConnection
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 theClient
andMQTTConnection
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:
- Add unix domain socket support (#7) (@lgflorentino)
- Cleanup Package (#8) (@NickMcSweeney)
- Bug fixes (#9) (@NickMcSweeney)
Closed issues:
- Unix Socket Connections (#6)
v0.1.0
MQTTClient v0.1.0
Merged pull requests:
- testing and opimization tweaks (#1) (@NickMcSweeney)
- Update Testing (#2) (@NickMcSweeney)
- Prep with CI automation (#3) (@NickMcSweeney)