Skip to content

Commit c49afc1

Browse files
authored
Merge pull request #171 from quartiq/release-0.10
release 0.10 prep
2 parents 51ab83b + 6d19482 commit c49afc1

File tree

3 files changed

+34
-11
lines changed

3 files changed

+34
-11
lines changed

CHANGELOG.md

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,15 @@
1+
<!-- markdownlint-disable MD024 -->
12
# Changelog
23

3-
This document describes the changes to Minimq between releases.
4+
All notable changes to this project will be documented in this file.
45

5-
# Unreleased
6+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
7+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
8+
9+
## [0.10.0](https://github.com/quartiq/minimq/compare/v0.9.0...v0.10.0) - 2025-01-27
610

711
## Changed
12+
813
* The `Publication::finish()` API was removed in favor of a new `Publication::respond()` API for
914
constructing replies to previously received messages.
1015
* `DeferredPublication` has been removed: pass a `FnOnce(&mut [u8])` as payload.
@@ -14,52 +19,58 @@ constructing replies to previously received messages.
1419
# [0.9.0] - 2024-04-29
1520

1621
## Fixed
22+
1723
* Fixed an issue where a corrupted mqtt header length could result in a crash
1824
* [breaking] `embedded-nal` bumped
1925

2026
# [0.8.0] - 2023-11-01
2127

2228
## Changed
29+
2330
* [breaking] Const generics for message size and allowable in-flight messages have been removed.
2431
Instead, the user now supplies an RX buffer, a TX buffer, and a session state buffer.
25-
* Setup-only configuration APIs such as `set_will()` and `set_keepalive_interval()` have been moved
32+
* Setup-only configuration APIs such as `set_will()` and `set_keepalive_interval()` have been moved
2633
to a new `Config` structure that is supplied to the `Minimq::new()` constructor to simplify the
2734
client.
2835
* Added a new `correlate()` API to publication builder to easily add correlation data.
2936

30-
3137
## Added
38+
3239
* Support for subscribing at `QoS::ExactlyOnce`
3340
* Support for downgrading the `QoS` to the maximum permitted by the server
3441
* Brokers may now be provided using domain-name syntax or static IP addresses.
3542

3643
## Fixed
44+
3745
* Fixed an issue where PubComp was serialized with an incorrect control code
3846
* Fixed an issue where some response control packets would be improperly serialized
3947
* The client now respects the server max packet reception
4048

41-
4249
# [0.7.0] - 2023-06-22
4350

4451
## Fixed
52+
4553
* [breaking] Embedded-nal version updated to 0.7
4654
* Fixed an issue where the MQTT client would become permanently inoperable when the broker
4755
disconnected under certain conditions.
4856

4957
# [0.6.2] - 2023-04-05
5058

5159
## Fixed
60+
5261
* `UserProperty` now properly serializes key-then-value. Serialization order was previously
5362
unintentionally inverted.
5463

5564
# [0.6.1] - 2022-11-03
5665

5766
## Fixed
67+
5868
* `PubAck` can now be deserialized when no properties are present, but a reason code is specified.
5969

6070
# [0.6.0] - 2022-11-03
6171

6272
## Added
73+
6374
* Allow configuration of non-default broker port numbers
6475
* Support added for QoS::ExactlyOnce transmission
6576
* `poll()` now supports returning from the closure. An `Option::Some()` will be generated whenever
@@ -72,6 +83,7 @@ constructing replies to previously received messages.
7283
messages.
7384

7485
## Changed
86+
7587
* [breaking] The client is no longer publicly exposed, and is instead accessible via `Minimq::client()`
7688
* Single MQTT packets are now processed per `Minimq::poll()` execution, reducing stack usage.
7789
* [breaking] External crate is now used for `varint` encoding. Varints changed to u32 format.
@@ -85,25 +97,29 @@ constructing replies to previously received messages.
8597
the `Publication` builder utility.
8698

8799
## Fixed
100+
88101
* All unacknowledged messages will be guaranteed to be retransmitted upon connection with the
89102
broker.
90103
* The `ReceiveMaximum` property is now sent in the connection request to the broker
91104

92105
# [0.5.3] - 2022-02-14
93106

94107
## Added
108+
95109
* Property comparison now implements PartialEq
96110

97111
# [0.5.2] - 2021-12-14
98112

99113
## Fixed
114+
100115
* Made `mqtt_client` module public to correct documentation
101116
* Partial packet writes no longer cause the connection to the broker to break down.
102117
[#74](https://github.com/quartiq/minimq/issues/74)
103118

104119
# [0.5.1] - 2021-12-07
105120

106121
## Fixed
122+
107123
* Fixed an issue where the keepalive interval could not be set properly. See
108124
[#69](https://github.com/quartiq/minimq/issues/69).
109125
* Fixed an issue where the keepalive interval was not set properly. See
@@ -112,6 +128,7 @@ broker.
112128
# [0.5.0] - 2021-12-06
113129

114130
## Added
131+
115132
* Support for the `Will` message specification.
116133
* [breaking] Adding `retained` flag to `publish()` to allow messages to be published in a retained
117134
manner.

Cargo.toml

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
[package]
22
name = "minimq"
3-
version = "0.9.0"
4-
authors = ["Ryan Summers <[email protected]>", "Max Rottenkolber <[email protected]>"]
3+
version = "0.10.0"
4+
authors = [
5+
"Ryan Summers <[email protected]>",
6+
"Max Rottenkolber <[email protected]>",
7+
"Robert Jördens <[email protected]>",
8+
]
59
edition = "2021"
610

711
description = "A minimal MQTT5 client designed for no_std platforms"
@@ -19,9 +23,9 @@ rust-version = "1.77.0"
1923
bit_field = "0.10.0"
2024
num_enum = { version = "0.7", default-features = false }
2125
heapless = { version = "0.8", features = ["serde"] }
22-
log = {version = "0.4", optional = true}
26+
log = { version = "0.4", optional = true }
2327
embedded-time = "0.12"
24-
varint-rs = {version = "2.2", default-features = false }
28+
varint-rs = { version = "2.2", default-features = false }
2529
serde = { version = "1", features = ["derive"], default-features = false }
2630
smlang = "0.8.0"
2731
embedded-nal = "0.9"

README.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55

66
Minimq provides a minimal MQTTv5 client and message parsing for the MQTT version 5 protocol. It
77
leverages the [`embedded-nal`](https://github.com/rust-embedded-community/embedded-nal) to operate
8-
on top of any TCP stack implementation and is actively used with both
9-
[`smoltcp`](https://github.com/smoltcp-rs/smoltcp) and and the W5500 hardware network stack.
8+
on top of any TCP stack implementation and is actively used with `std-embedded-nal`,
9+
[`smoltcp`](https://github.com/smoltcp-rs/smoltcp), and the W5500 hardware network stack.
1010

1111
Minimq provides a simple, `no_std` interface to connect to an MQTT broker to publish messages and
1212
subscribe to topics.
@@ -15,6 +15,7 @@ subscribe to topics.
1515

1616
Minimq supports all of the fundamental operations of MQTT, such as message subscription and
1717
publication. Below is a detailed list of features, indicating what aspects are supported:
18+
1819
* Publication at all quality-of-service levels (at-most-once, at-least-once, and exactly-once)
1920
* Retained messages
2021
* Connection will messages
@@ -31,6 +32,7 @@ Minimq also provides convenient APIs to implement request-response interfaces ov
3132
the `ResponseTopic` and `CorrelationData` properties for in-bound and out-bound messages.
3233

3334
### Smoltcp Support
35+
3436
If using `smoltcp`, check out the [`smoltcp-nal`](https://github.com/quartiq/smoltcp-nal) to quickly
3537
create an interface that can be used by Minimq.
3638

0 commit comments

Comments
 (0)