Filtertypes are now
newtypewrappers 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
splitfunction available that will split a
Filterinto components, and both types are
Semigroups joining on
Because these are
newtypes, we the
Arbitraryinstances don't need special wrappers, so
ATopicis gone in favor of just
More Arbitrary topic helpers.
Commandline tool enhancements.
⬆️ Bump version bounds.
🛠 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
undefinedfor 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
🖨 fail on unexpected packets. I had a
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).
ConnACKFlagsnow has a
SessionReusetype which makes it very clear whether the session is resuming. I was affected by the boolean blindness of the previous variant myself several times.
_propertiesis now called
_connProperties. I developed 📦 a separate
net-mqtt-lenspackage that provides a lens into all properties of all types that have properties, but a bit more consistency here is good.
QoSnow has an
PktIDtype alias makes it clear which
Word16values 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 ChangesFebruary 17, 2020
✂ Remove a use of
failthat prevents us from building under ghc 8.8.
v0.6.2.2 ChangesDecember 14, 2019
👌 Support query parameters in ws and wss URLs.
v0.6.2.1 ChangesNovember 25, 2019
➕ Added function to get original connection ACK response packet.
- connACK (in IO) and connACKSTM
v0.6.2.0 ChangesNovember 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 ChangesOctober 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 ChangesOctober 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.