All Versions
Latest Version
Avg Release Cycle
14 days
Latest Release

Changelog History
Page 1

  • v0.8.0.0 Changes

    The Topic and Filter types are now newtype wrappers around Text instead of being aliases for text. This is a breaking change, but ๐Ÿ‘‰ makes a lot of bugs harder to express. There's a split function available that will split a Topic or Filter into components, and both types are Semigroups joining on /.

    Because these are newtypes, we the Arbitrary instances don't need special wrappers, so ATopic is gone in favor of just Topic's Arbitrary instance.

  • v0.7.1.0 Changes

    More Arbitrary topic helpers.

    Commandline tool enhancements.

    โฌ†๏ธ Bump version bounds.

  • v0.7.0.1 Changes

    ๐Ÿ›  Fixed an error where there'd be an ugly crash in a situation where connections were failing regularly and we detected the failure before 0๏ธโƒฃ a connection thread spun up. I was using undefined for the default thread value because it was intended to be immediately set, but did find a way to get there in a failure storm. It's a Maybe now.

    ๐Ÿ–จ fail on unexpected packets. I had a print in there from very early on. Proper sequences are covered, but if a broker sends the client an unexpected packet, it'd be good to not just ignore it.

    When publishing, "no matching subscribers" should not be considered a failure. It's also not bubbled up to the caller, but it is returned as an error from the broker to basically say the publish was successful, but nobody cares about the thing you published.

    0๏ธโƒฃ mqtt-watch will automatically reestablish sessions by default without reissuing subscriptions (including auto-generated client IDs).

  • v0.7.0.0 Changes

    ConnACKFlags now has a SessionReuse type which makes it very clear whether the session is resuming. I was affected by the boolean blindness of the previous variant myself several times.

    Connection _properties is now called _connProperties. I developed ๐Ÿ“ฆ a separate net-mqtt-lens package that provides a lens into all properties of all types that have properties, but a bit more consistency here is good.

    QoS now has an Ord instance.

    A new PktID type alias makes it clear which Word16 values were meant to represent a packet ID.

    There are fewer threads in publish handling in both directions. This mostly just simplified things, but it also helped prevent a few races when a lot of values arrived at the same time.

  • v0.6.2.3 Changes

    February 17, 2020

    โœ‚ Remove a use of fail that prevents us from building under ghc 8.8.

  • v0.6.2.2 Changes

    December 14, 2019

    ๐Ÿ‘Œ Support query parameters in ws and wss URLs.

  • v0.6.2.1 Changes

    November 25, 2019

    โž• Added function to get original connection ACK response packet.

    • connACK (in IO) and connACKSTM
  • v0.6.2.0 Changes

    November 11, 2019

    โž• Added low-level support for correlated responses.

    I'm not completely sure how generally useful this interface is, but I've been using it in a client that's implementing an RPC type interface across MQTT for a bit now.

  • v0.6.1.1 Changes

    October 29, 2019

    โž• Add connection checks to publish phases.

    Having a broker/connection die in the middle of a publish in QoS > 0 could result in a thread waiting indefinitely for the response that would not ever arrive.

  • v0.6.1.0 Changes

    October 27, 2019

    ๐Ÿ‘‰ Users can now specify TLSSettings for mqtts:// and wss:// connections.

    ๐Ÿ”จ Small bit of refactoring of main threads used by the client. It's a bit easier to reason about their lifecycle now.

    All (at least most) of the threads in use by the client are named so ๐Ÿ‘€ when you're looking at an eventlog, you can see what's coming and going.