Skip to content

Releases: eclipse-paho/paho.golang

0.21

26 Feb 21:11
b8e1f6a
Compare
Choose a tag to compare

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

Full Changelog: v0.20.0...v0.21.0

0.20

03 Feb 03:24
12afa9c
Compare
Choose a tag to compare

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 replace ClientConfig.Router with ClientConfig.OnPublishReceived (which is more flexible; note that
      you can still use StandardRouter - see autopaho/examples/router).
    • ClientConfig is now private (accessing this led to race conditions).
    • Pinger interface has changed (and DefaultPinger has been rewritten).
    • ClientOptions.MIDs has been removed.
  • autopaho
    • autopaho CleanSession flag. Previously CleanSession was hardcoded to true; this is no longer the case and
      the default is false. 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 with SessionExpiryInterval>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

16 Oct 00:37
61d7496
Compare
Choose a tag to compare

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

Full Changelog: v0.11.0...v0.12.0

0.11

24 Mar 00:02
81fee5f
Compare
Choose a tag to compare

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:

Thanks very much to all committers (including anyone I missed!).

Second beta

06 Aug 08:04
21ea806
Compare
Choose a tag to compare
Second beta Pre-release
Pre-release

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

22 Mar 15:25
336f2ad
Compare
Choose a tag to compare
First beta Pre-release
Pre-release

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.