Skip to content

Releases: eclipse-paho/paho.mqtt.rust

Version 0.3.13

21 Jan 22:52
Compare
Choose a tag to compare

Update for Paho C v1.3.14 with support for UNIX-domain sockets. It also includes:

  • Updated License to EPL-v2.0
  • Bumped MSRV to Rust v1.73.0
  • Bumped -sys to v0.10.0
    • Wrapping Paho C v1.3.14
      • Support for UNIX-domain sockets on local machine (*nix only)
    • build.rs builds optional UNIX sockets into Paho C on non-Windows systems (*nix)
  • Reworked the Error type
    • Remove Paho and PahoDescr errors. De-nested them into the top-level.
    • Parsing the error messages from PahoDescr for new error types.
    • Removed Paho error constants. Now errors can be matched easily/directly.
  • Token simplified to create an Option<Result<ServerResponse>> instead of individual components.
  • Created new enumeration types:
    • MqttVersion
    • ConnectReturnCode (for MQTT v3.x)
    • QoS
  • #181 Updated README.md with explanation on how to build for apple m1/x86_64
  • #216 Deref QoS pointers for SubscribeMany and UnsubscribeMany in server response
  • #224 Fix QoS 0 and 1 conversion
  • #236 Make from_c_parts only visible inside crate

Version 0.12.5

25 May 13:51
Compare
Choose a tag to compare

Some bug fixes and License update.

  • Updated the License to EPL-v2.0
  • Added some missing Eclipse Paho legal documents.
  • Added TopicMatcher::insert_many()
  • #216 Deref QoS pointers for SubscribeMany and UnsubscribeMany in server response
  • #215 Now subscribe_many() returns an error if slices not the same length. Also added subscribe_many_same_qos() to the clients.

Version 0.12.4

20 May 01:09
Compare
Choose a tag to compare

Fixes for topic matching

  • TopicMatcher
    • Fixed a number of corner cases
    • Iterator optimized
    • Added prune() and shrink_to_fit(), and get_key_value()
  • TopicFilter fixed corner cases
  • Added stand-alone topic_matches() and topic_matches_iter() functions from PR #228

Version 0.12.3

26 Oct 00:00
Compare
Choose a tag to compare

Upgrade to Paho C v1.3.13 to fix a number of bugs, including numerous issues with reconnecting to the broker.

  • The -sys crate now wraps Paho C v1.3.13, fixing several issues, including crashes on reconnect callbacks.
  • Made the C logs less verbose
  • #203 AsyncClient::server_uri() getter.
  • #202 Fix disconnect timeout (from sec to ms)

Version 0.12.2

12 Sep 21:23
Compare
Choose a tag to compare
  • #209 Forwarding trace/log statements from the Paho C library to the Rust logs
  • Minor cleanup of subscriber examples.

Version 0.12.1

20 Mar 19:50
Compare
Choose a tag to compare
  • #191 AsyncClient::get_stream() support unbounded channel
  • #194 Bumped bindgen to latest version, v0.64, in -sys crate
  • #193 Consumer notification when broker cleanly disconnects

Version 0.12.0

12 Jan 13:37
Compare
Choose a tag to compare

Update to Paho C v1.3.12

  • Updated to Rust Edition 2021 w/ MSRV 1.63.0
  • Upgrade to Paho C v1.3.12
    • Fixes a performance issue, particularily for receiving messages.
    • New URI protocol schemes: "mqtt://" for TCP and "mqtts://" for encrypted SSL/TLS.
  • [Breaking] Updated CreateOptions and ConnectOptions behavior:
    • The CreateOptions default is for a "universal" client that can connect using v3.x or v5. (This was previously specified as the v5 option).
      • Can use CreateOptions::new_v3() for a client that can only connect using v3.x
      • Defaults to no message persistence (i.e. persistence is opt-in).
    • The v3.x vs v5 devision is made when connecting.
    • ConnectOptions::new() still defaults to v3.x
    • New constructors for specific protocol version, ConnectOptions::new_v5(), new_ws(), and new_ws_v5(), for v5, websocket, and v5 over websockets, respectively.
    • Connect options default to clean session/state, as appropriate for the constructed protocol version.
    • You select the MQTT protocol version with one of the new constructors, and can not change it after creation. (No longer a set mqtt_version() function).
  • AsyncClient::mqtt_version() now returns the version for the current connection - or the most recent successful connection. Removed AsyncClient::current_mqtt_version().
  • Updated SubscribeOptions to be more usable.
  • Created a new example for MQTT v5 subscriptions with subscribe options.
  • #182 Callback must now be Send since they will be called from another thread.
  • #172 Linking to User32 library on Windows to try to avoid build problems.
  • #170 Updated the cmake crate dependency in -sys to 0.1.49 to support both older CMake (pre v3.12) and newer systems like VS 2022.
  • #156 (continued) Added a mutable iterator to TopicMatcher, with functions remove(), get_mut(), and matches_mut()
  • #170 Upgraded cmake crate to v0.1.48 to support building with Visual Studio 2022.
  • #166 Fix topic matches with single-level wildcard.
  • #151 Fixed wrong documentation of QoS 1
  • #57 Updated this README with more help for musl builds.
  • Fixed clippy warnings

Version 0.9.2

22 Oct 18:02
Compare
Choose a tag to compare

Fixed memory leak in v5 Properties.

  • #148 Properly freeing property memory.

Version 0.11.1

04 May 13:31
Compare
Choose a tag to compare

Minor fix, particularly to make TopicMatcher more useful.

  • #156 Improvements to TopicMatcher:
    • Doesn't require item type to implement Default trait
    • Match iterator returns key/value tuple (not just value).
  • #154 Add public interface to retrieve client_id.

Version 0.11.0

18 Apr 22:15
Compare
Choose a tag to compare
  • Updated to support Paho C v1.3.10
  • New client functions to stop consuming/streaming and to remove callbacks.
  • Started a README for the -sys crate.
  • Fixed a bunch of lints. Clippy report is clean.
  • #152 Consumer won't panic when the receiver drops.
  • #113 Build now respects the OPENSSL_STATIC flag (if OPENSSL_DIR or other path flags set).
  • #145 impl From<Error> for io::Error An MQTT error can be easily converted back to an I/O error.