Rumqtt Versions Save

The MQTT ecosystem in rust

rumqttd-0.19.0

5 months ago

What's New?

You can hook custom function for authentication using client id, username and password. This custom function can be extended as per need, for e.g. fetching credentials from DB, using tokens or spawning processes, etc. see example for setup.

Previously only RSA keys were accepted, but now you can specify any TLS key formats currently supported by rustls, like ECC, PKCS8 to name a few.


Changes

user can specify v4 and/or v5 config. Specifying [v4.x] in rumqttd.toml is no longer mandatory, those who wish to only use v5 can now only include [v5.x] in config.

specifying [console] in rumqttd.toml is now optional and can be safely removed if you don't wish to use console.

  • CA certificate is optional if client auth is disabled

capath in tls config is only required is client authentication will be used ( see "verify-client-cert" feature below to know more ). Warning will be logged if the feature is disabled and capath is being ignored.

rumqttd will log a warning if [ws.x] is specified in config but getting ignored due to websocket feature is disabled.

mutual TLS ( mTLS ) or client authentication, which is done verifying by certificates provided client is now optional with use-rustls. capath specifying CA certificate must be present in config file if client auth is enabled. To enable client auth, you need to enable verify-client-cert features ( disabled by default to match behavior of use-native-tls )

Others

Maintainance

New Contributors :tada:


Full Changelog: https://github.com/bytebeamio/rumqtt/compare/rumqttd-0.18.0...rumqttd-0.19.0

rumqttc-0.23.0

7 months ago

Added

  • Added bind_device to NetworkOptions to enable TCPSocket.bind_device()
  • Added MqttOptions::set_request_modifier for setting a handler for modifying a websocket request before sending it.

Fixed

  • Allow keep alive values <= 5 seconds (#643)
  • Verify "mqtt" is present in websocket subprotocol header.

Security

  • Remove dependency on webpki. CVE
  • Removed dependency vulnerability, see rustsec. Update of tungstenite dependency.

Other Changes

New Contributors :tada:

rumqttd-0.18.0

8 months ago

What's Changed

This release fixes retained and will messages and adds support for will delay interval in MQTTv5. Rumqttd now have an enhanced release profile in Cargo.toml which would improve performance while reducing the binary size! Here are some of the other changes:

:zap: Added

:rotating_light: Changed

:hammer_and_wrench: Fixed

:lock: Security

  • Remove dependency on webpki to fix CVE

:construction: Maintenance changes

Full Changelog: https://github.com/bytebeamio/rumqtt/compare/rumqttd-0.17.0...rumqttd-0.18.0

rumqttd-0.17.0

9 months ago

Whats New? :exploding_head:

We can configure strategy for shared subscriptions using rumqttd.toml The available strategies are as follows: round_robin (Default): select clients in turns as per the order of their subscription. random: randomly choose a client and sent it. ( note: once a client is chosen, we try to send as many msg as we can ) sticky: stick to a subscriber and keep sending it all the messages until its gone.

Maintenance changes :construction:

New Contributors :tada:

Full Changelog: https://github.com/bytebeamio/rumqtt/compare/rumqttd-0.16.0...rumqttd-0.17.0

rumqttd-0.16.0

9 months ago

Blog Post discussing this release - https://bytebeam.io/blog/qos2-and-websockets-support-rumqttd/

Significant Changes

  • QoS2 support (#604) :rocket:
  • Support for Websocket connections (#633) :spider_web:

Changed

  • Ability to configure segment size individually (#602)
  • LinkBuilder for constructing LinkRx/LinkTx (#659)

Deprecated

  • Link and its implementation, use LinkBuilder instead

Fixed

  • Include reason code for UnsubAck in v5

New Contributors :tada:

rumqttc-0.22.0

10 months ago

Added

  • Added outgoing_inflight_upper_limit to MQTT5 MqttOptions. This sets the upper bound for the number of outgoing publish messages (#615)
  • Added support for HTTP(s) proxy (#608)
    • Added proxy feature gate
    • Refactored eventloop::network_connect to allow setting proxy
    • Added proxy options to MqttOptions
  • Update rustls to 0.21 and tokio-rustls to 0.24 (#606)
    • Adds support for TLS certificates containing IP addresses
    • Adds support for RFC8446 C.4 client tracking prevention

Changed

  • MqttState::new takes max_outgoing_packet_size which was set in MqttOptions but not used (#622)

rumqttd-0.15.0

11 months ago

Significant Changes

  • Support for topic alias and message expiry in MQTTv5 (#616)

Changed

  • Certificate paths configured in config file are checked during startup and throws a panic if it is not valid. (#610)

Fixed

  • MQTTv5: Read the Unsubscribe package in match arms (#625)

rumqttc-0.21.0

1 year ago

Significant Changes

  • Added support for MQTT5 features to v5 client
  • MQTT5: Remove Box on Event::Incoming

rumqttd-0.14.0

1 year ago

Added

Removed

Full Changelog: https://github.com/bytebeamio/rumqtt/compare/rumqttd-0.13.0...rumqttd-0.14.0

rumqttd-0.13.0

1 year ago

Same as v0.12.7