Releases: eclipse-paho/paho.golang
0.21
The is a minor release, it addresses an issue with DefaultPinger
that could lead to the connection being dropped in error. It also sets the required minimum version of Go to 1.21.
What's Changed
- Resolve erroneous ping timeout by @MattBrittan in #238
- Remove MaximumQoS property from CONNECT packet #161 by @tomatod in #243
- Update dependencies and set go.mod to
go 1.21
by @MattBrittan in #245
Full Changelog: v0.20.0...v0.21.0
0.20
The is a major release which adds:
- Full QOS1/2 support including persistent sessions (both memory and disk storage supported).
- Significant changes (mostly backwards compatible for now) to the handling of inbound messages (see this issue).
- A new pinger.
- Major improvements to the test suite.
The largest changes were introduced into @master in October (immediately after the release of v0.12) and we have delayed the release until now to allow for testing (the core code has been running on a number of production systems for over two months). However, due to the extent of the changes, we do recommend that you thoroughly test after upgrading.
Breaking changes include (but are not limited to):
paho
paho.Publish
when publishing at QOS1/2 the packet identifier (if acquired) was released if the context expired
regardless of whether the message had been sent (potentially leading to reuse of the ID and in breach of the spec).
This has been changed such that once transmitted, the message will be acknowledged regardless of the publish context
(but the Publish function will only block until the context expires). The Errors returned now better indicate what
occurred.- router - this should work as-is for most users in v0.20, however
ClientConfig.Router
will be removed in a future
release. Please replaceClientConfig.Router
withClientConfig.OnPublishReceived
(which is more flexible; note that
you can still useStandardRouter
- seeautopaho/examples/router
). ClientConfig
is now private (accessing this led to race conditions).Pinger
interface has changed (andDefaultPinger
has been rewritten).ClientOptions.MIDs
has been removed.
autopaho
autopaho
CleanSession flag. PreviouslyCleanSession
was hardcoded totrue
; this is no longer the case and
the default isfalse
. Whilst his is potentially a breaking change,SessionExpiryInterval
will default to 0 meaning
the session will be removed when the connection drops. As a result this change should have no impact on most users; it
may be a problem if another application has connected withSessionExpiryInterval>0
meaning a session exists.
Thanks to all contributors (with special thanks to those who helped to test this release!).
What's Changed (excluding a lot of minor changes)
- Implement session state (full QOS1/2 support) and publish queue by @MattBrittan in #172
- Consistent config structure in autopaho and rename "broker" to "server" by @MattBrittan in #188
- Remove SingleHandlerRouter by @MattBrittan in #186
- Pass
*url.URL
to ConnectPacketBuilder by @XANi in #206 - Replace Router with OnPublishReceived Callback by @MattBrittan in #211
- Remove router from most tests and examples. by @MattBrittan in #215
- Update CONTRIBUTING.md by @minyukim in #218
- Re-authentication with MQTT5 Enhanced Authentication (AUTH packet exchange) in autopaho by @minyukim in #219
- paho
Client.ClientConfig
is now private by @MattBrittan in #221 - license - clarify licensing in line with Eclipse Paho standard by @MattBrittan in #224
- New pinger implementation by @vishnureddy17 in #222
- Tidy up Mu, termination process and keep alive by @MattBrittan in #229
- Address issues with queue error handling in autopaho, return ErrInvalidArguments for invalid publish QoS in paho by @vishnureddy17 in #235
New Contributors
Full Changelog: v0.12.0...v0.20.0
0.12
Coming seven months after 0.11 this release contains small fixes/improvements.
Warning breaking change: This release contains a breaking change (permitted as we are not yet at V1). Subscribe
now accepts a slice of paho.SubscribeOptions
; previously this was a map, but that made it impossible to determine which topics succeeded/failed when subscribing to multiple topics.
Please note that following this release a major, potentially breaking, change will be introduced (full QOS1/2 support). Anyone using this library in production is advised to take care using @master (but please do help us test the changes!).
Thanks to all contributors!
Significant Changes
- Prevent goroutine leak if Connect times out before CONACK received by @tomatod in #117
- Use slice for Subscriptions instead of map by @alsm in #131
- Correct handling of flags for PUBLISH packets by @MattBrittan in #150
- Improve Message Identifier generation @tomatod in #147
- Resolve issues parsing a range of flags by @MattBrittan in #170
- Allow use of Will Properties in CONNECT packet by @BANice in #165
- autopaho: Add proxy support by @Lorderot in #144
- autopaho: additional tests and resolve issues (potential deadlock) identified by them by @MattBrittan in #156
- autopaho: Add CONNACK packet to
error
passed to OnConnectError by @thejan2009 in #153 - autopaho: Only call OnClientError once on disconnect by @MattBrittan in #158
New Contributors
- @tomatod made their first contribution in #126
- @Lorderot made their first contribution in #144
- @vishnureddy17 made their first contribution in #146 (special thanks to Vishnu for reviewing upcoming QOS1/2 changes)
- @BANice made their first contribution in #165
Full Changelog: v0.11.0...v0.12.0
0.11
Release as requested in issue #110; this project remains in beta (would like to see full QOS1/2 support before progressing to V1 as this may involve breaking changes). This release includes:
- @alsm - Enhanced authentication (#79)
- @thejan2009 - Resolve potential race conditions (#84)
- @lukaskirner - Fix issue with shared subscriptions (#94)
- @bkneis - Autopaho RPC demo (#98)
- @ewirch - Expose error logging in AutoPaho (#122)
Thanks very much to all committers (including anyone I missed!).
Second beta
A long time coming this release contains numerous updates and fixes and is not intended to be API compatible with the previous release.
Of special note is the autopaho function added by @MattBrittan providing a simple wrapper around the base client,
Also notable contribution from @fracasula allowing manual acks.
First beta
This is the first tagged release for the Paho MQTT v5 client. It should be at the point that there is sufficient support function to begin developing with this code, although there is certainly going to be bugs discovered and the API may change.