Releases: bytebeamio/rumqtt
R18
Significant Changes
- Add support in rumqttd for connection level Metering through PR #508
- Add tracing in rumqttd for structured, context aware logs by PR #499
- Add Native-TLS support in rumqttc by PR #501
Read more about this release in our blog
What's Changed
- fix(docs): Update readme and include the note about MQTTv5 by @henil in #474
- fix(mqttbytes): when present wildcard must occupy entire topic level by @henil in #477
- fix(dependencies): Update libraries to newer version and remove unused dependencies by @henil in #475
- fix: missing NativeTLS accept and broken args in
ShadowLink
by @de-sh in #481 - fix: hyperlinks in doc and ignore test dependent on speed of execution by @henil in #476
- fix(protocol): Extract out Disconnect packet logic similar to other packets by @henil in #480
- config: Change default segment size to 100MB by @henil in #484
- Forward TLS implementation selection to reqwest by @flxo in #488
- fix: remove unused and feature gate websocket dependencies by @de-sh in #490
- refactor(protocol): Abstract away protocol from Notification by @henil in #483
- fix Tracker: fix unregister_data_requests in Tracker to properly filter by @swanandx in #491
- fix(client): enter tokio runtime context before calling timeout in recv_timeout by @swanandx in #492
- fix: clippy warnings by @de-sh in #500
- refactor(router): remove redundant checks and optimizations by @swanandx in #493
- fix: allow subscription to
test
topics by @henil in #494 - feat: tracing for structured, context-aware logs by @swanandx in #499
- fix: enter runtime context for
now_or_never()
withintry_recv
by @de-sh in #497 - feat: support native-tls connections by @de-sh in #501
- chore(rumqttd): Make tracing events human-readable by @mnpw in #503
- feat: Support for multi tenancy prefix checks by @tekjar in #505
- feat(rumqttd): Add metering by @tekjar in #508
New Contributors
Full Changelog: R17...R18
R17
What's Changed
Significant Updates
- rumqttd has been rewritten completely by PR #442, learn more about why in our blog.
- rumqttc's v5 client has been re-written to work with the same
EventLoop
design as the old one.
Changes
- fix(performance): Don't create a new runtime in drop by @henil in #405
- build: dont pin exact dependency version by @EdJoPaTo in #448
- GitHub Action improvements by @EdJoPaTo in #450
- fix: ignore doc-test for ci sanity by @de-sh in #451
- ci: Auto build release binaries for
rumqttd-ng
by @henil in #452 - fix: validate topic before sending the publish packet by @henil in #449
- fix(mqttbytes): when present wildcard must occupy entire topic level by @pabigot in #453
- Opensource beamd's broker 🎉 by @henil in #442
- fix: export enum
TryRecvError
by @de-sh in #457 - feat: build rumqttd docker image with alpine by @de-sh in #461
- feat: comment out tenant extraction/checks by @de-sh in #472
- fix(CI): fix trigger for CI workflow and remove auto publish to crates.io for now by @henil in #471
New Contributors
Full Changelog: R16...R17
R16
What's Changed
Significant Updates: Fix missing feature gates and optional dependencies. BREAKING: Remove method from EventLoop
that exposes flume
constructs(Receiver
and Sender
).
- fix: allow use of
url
feature withoutuse-rustls
by @lautat in #440 - fix: set
rustls-pemfile
dependency as optional by @lautat in #439 - fix: set
rustls-native-certs
dependency as optional by @lautat in #438 - refactor!: unexpose eventloop handle, unexport flume by @de-sh in #441
New Contributors
Full Changelog: R15...R16
R15
What's Changed
Significant update: Given the user has installed necessary certificates within their platform's native certificate store, using TlsConfiguration::default()
will now load the root certificates from it. Also now Notifier::try_recv()
provides a non-blocking interface to receive incoming packets on.
- feat: Derive missing traits where required by @henil in #429
- fix(exports): remove leaky
pub use
by @henil in #428 - feat: Create non-blocking interface for
Notifier
by @de-sh in #431 - feat:
MqttOptions::parse_url
usesrustls-native-certs::load_native_certs()
for encrypted connections by @de-sh in #436
Full Changelog: R14...R15
R14
What's Changed
- fix: move timeout to
connect()
call by @de-sh in #408 - fix(dependency): Revert back tokio version to
1
by @henil in #412 - fix(serialization): Serialize no properties as 0x0 byte by @henil in #413
- fix: get examples using v5 to work by @de-sh in #401
- fix: remove extraneous space by @joleeee in #417
- docs: correct statement in FAQ by @de-sh in #416
- feat: remove code exposing flume errors in
ClientError
by @de-sh in #420 - feat: remove validation on
Subscribe::new_many()
by @de-sh in #422 - feat: remove ability to cancel
EventLoop.poll()
mid execution by @de-sh in #421 - docs: better explain client surfaces by @123vivekr in #380
New Contributors
Full Changelog: R13...R14
R13
What's Changed
- rumqttc v5 by @abhikjain360 in #351
- Fix v5 by @de-sh in #393
- Handle subscription with empty filter by @de-sh in #392
- Fix missing
self.inflight += 1
by @Ticsmtc in #389 - feat: add subscribe/unsubscribe properties by @ctron in #398
- Make
rumqttc::client::Iter
public by @kelnos in #402 - Limit GitHub actions to running only on PRs affecting code/dependencies by @de-sh in #375
- Cleanup by @EdJoPaTo in #396
- Update lib.rs by @gxr441 in #400
New Contributors
- @Ticsmtc made their first contribution in #389
- @gxr441 made their first contribution in #400
- @ctron made their first contribution in #398
- @kelnos made their first contribution in #402
Full Changelog: R12...R13
R12
rumqttc v0.12.0
- Enable compilation without
rustls
as a dependency using--no-default-features
(#365) - Rework variants of
ConnectionError
(#370) - New constructor
MqttOptions::parse()
usingurl
(#379) - Use
get_mut()
instead of index based access to ensure no panic (#384) - Better error messages (#385)
rumqttd v0.11.0
- Enable compilation without rustls as a dependency using
--no-default-features
(#365) - Better error messages (#385)
This release was made possible by the contributions of: @EdJoPaTo, @de-sh and @123vivekr
R11
rumqttc v0.11.0
tls::Error
is now publicrustls
upgraded to 0.20- Manual acknowledgment of Publishes received by setting
MqttOptions.manual_acks = true
and passing received publish packet toClient.ack()
rumqttd v0.10.0
tokio_rustls
upgraded to 0.23.2
NOTE: mqttbytes moved into separate repo, dependency on the same from rumqtt client and broker crates are hence forth removed.
This release was possible due to some of our awesome contributors: @jplatte (for #287), @belltoy (for #325), @shikoku1 (for #326) , @wiktorsikora (for #341), @RAvenGEr (for #336) and @de-sh (for #328, #346, #342 and #359).
R8
R7
mqttbytes v0.3.0
- fix Connack and suback packet mixup during mqtt 5 implementation [breaking]
rumqttc v0.5.0
- changed Update to mqttbytes 0.3 [breaking]
rumqttd v0.4.0
- changed Update to mqttbytes 0.2 [breaking]
-changed Make profiler a feature, not target.cfg (#243) - changed Handling error cases if the key is parsed but is not valid. (#241)
-changed Replace hard coded 0.0.0.0 bind with configuration option (#262)
misc
- update CI