Skip to content

Releases: eclipse-paho/paho.mqtt.rust

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.

Version 0.10.0

26 Jan 02:52
Compare
Choose a tag to compare
  • Updated to support Paho C v1.3.9
  • Switched consumers/streams to use crossbeam channels and async_channel's, respectively.
  • Added a TopicFilter type to match topics against an individual filter (typically containing wildcards).
  • Added a TopicMatcher collection to iterate through a set of matching topic filters, such as to match callbacks to specific filters.
  • Finally ran rustfmt on source files.
  • Fixed MQTT v5 topic alias support.
  • #118 Added CreateOptionsBuilder::send_while_disconnected(bool) and detached the behavior somewhat from max_buffered_messages(). Now, setting the buffer size to a non-zero value will not enable off-line buffering.
  • #120, #121 Fixed subscribe_many_with_options() outbound opts.
  • #122 Some clippy-recommended fixes
  • #139 Added a SyncClient struct for repeated publishing to the synchronous client.
  • #140 The MQTT protocol version used to create the client is now the default for connecting.