Skip to content

Latest commit

 

History

History
60 lines (40 loc) · 2.39 KB

CHANGELOG.md

File metadata and controls

60 lines (40 loc) · 2.39 KB

Unreleased

Bugfixes

  • Return error for invalid version instead of panicking (#31)

0.3 (2020-03-23)

API changes

  • Added opt-in serde support to facilitate session and ack management (storing subscriptions and pids to disk or database). The actual encode()/decode() APIs are unchanged.
  • Upgrated bytes dependency to 0.5. This brings growable buffers and a nicer API, amongst other things.
  • Implemented Default for Pid, From<u16> for Pid, and TryFrom<Pid> for u16. The try_from() method already existed but now comes from the std::convert::TryFrom trait.
  • encode() now takes anything that implements the BufMut trait, not just a ByteMut struct. For technical reasons, decode() still takes BytesMut.
  • Added option to opt-out of std library, allowing usage in #[no_std] projects, at the only cost of giving up the Error trait from std as well as std::io integration.

Bugfixes

  • Fix off-by one error when adding to a Pid wraps over.

Other changes

  • The minimum rust version is now 1.39.
  • Improved Pid docs.

0.2 (2019-10-25)

This is a fairly large release with API fixes and improvements, bug fixes, and much better test coverage and documentation.

API changes

  • We now return a dedicated error type instead of abusing std::io::Error.
  • PacketIdentifier was renamed to Pid. It now avoids the illegal value 0, wraps around automatically, and can be hashed.
  • Publish.qos and Publish.pid have been merged together, avoiding accidental illegal combinations.
  • Connect.password and Connect.will.payload can now contain binary data.
  • The Protocol enum doesn't carry extra data anymore.
  • All public structs/enum/functions are now (re)exported from the crate root, and the rest has been made private.
  • The letter-casing of packet types is more consistent.
  • Packet subtypes can be converted to Packet using .into().

Other changes

  • Much improved documentation. See it with cargo doc --open.
  • More thorough unittesting, including exhaustive and random value ranges testing.
  • Lots of corner-case bugfixes, particularly when decoding partial or corrupted data.
  • The minimum rust version is now 1.32.
  • Raised mqttrs's bus factor to 2 ;)

0.1.4 (2019-09-16)

  • Fix issue #8: Decoding an incomplete packet still consumes bytes from the buffer.