New CHANGELOG entries can be found in individual crate root.
rumqttc: rumqttc/CHANGELOG.md
rumqttd: rumqttd/CHANGELOG.md
- MQTTv5: Add processing of missing Mqtt subscribe options (#536)
- Fix examples to stop printing error in loop (#540)
- MQTTv5!: Remove
Connect
fromConnectionError::StateError
(#541) - MQTTv5: Send last_will and login info with connect (#478)
- Remove build.rs as it is not required now (#544)
- Stress test router to against 10k connections (#511)
- Make router::Meter public (#521)
- Expose prometheus scraping endpoints for router metricss (#522)
- Make configuration file optional for running the broker and add subcommand to generate default configuration file (#523)
- Use CA path in correct argument position (#529)
- Support retransmission after reconnect (#534)
- Remove rumqttd-old in favour of rumqttd (#530)
- Optimize Github CI workflow (#526)
- Revamp Readme and rename demo.toml to rumqttd.toml (#532)
- Add support for native-tls within rumqttc (#501)
- Fixed panicking in
recv_timeout
andtry_recv
by entering tokio runtime context (#492, #497) - Removed unused dependencies and updated version of some of used libraries to fix dependabots warning (#475)
- Add meters related to router, subscriptions, and connections (#508)
- Allow multi-tenancy validation for mtls clients with
Org
set in certificates (#505) - Add
tracing
for structured, context-aware logging (#499, #503) - Add the ablity to change log levels and filters dynamically at runtime (#499)
- Added properties field to
Unsubscribe
,UnsubAck
, andDisconnect
packets so its consistent with other packets. (#480) - Changed default segment size in demo config to 100MB (#484)
- Allow subscription on topic's starting with
test
(#494)
- Reimplement v5 with old
EvenLoop
design (#464) - Implement
recv
,try_recv
,recv_timeout
forConnection
(#458) - Improve filter validation (#453)
- Validate topic before sending a
Publish
(#449) - Don't create a new runtime in
Iter::drop
(#405) - Unpin exact version dependency on
tokio-rustls
(#448)
- MQTT5 support, StructOpt/Clap based CLI, change in config format (next generation broker) (#442)
- Make dependency on
rustls-pemfile
optional (#439) - Build rumqttd docker image with alpine (#461)
- Remove
Eventloop::handle
, and stop re-exportingflume
constructs (#441) - Unchain features
url
andurl-rustls
(#440) - Make dependency on
rustls-native-certs
optional (#438)
- Ensure re-export of
ClientConfig
is clearly from thetokio_rustls
crate (#428) - Derive standard like
Eq
andClone
traits on some types where required (#429) - Create non-blocking interface for
Notifier
(#431) - Use native certificates for encrypted transports in
MqttOptions::parse_url
(#436)
- Timeouts moved up to
connect()
call (#408) - Tokio dependency
version = "1"
(#412) - Fix empty property serialization (#413)
- Change variants in
ClientError
to not expose dependence on flume/SendError
(#420) - Revert erroring out when Subscription filter list is empty (#422)
- Remove the ability to cancel
EventLoop.poll()
mid execution (#421) - Improve documentation and fix examples (#380, #401, #416, #417)
- Add code in
rumqttc::v5
, moving towards support for operating the client with MQTT 5 (#351, #393, #398) - Add missing
self.inflight += 1
inMqttState.save_pubrel()
(#389) - Error out when Subscription filter list is empty (#392)
- Make public
rumqttc::client::Iter
(#402)
- 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)
- Enable compilation without rustls as a dependency using
--no-default-features
(#365) - Better error messages (#385)
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()
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.
- More public fields in v5
- Feature flag unix sockets
- From for MqttOptions
- Change keepalive api from u16 to Duration
- Use updated mqttbytes
- Make username and password public in connect packet
- Make protocol field in v5 public
- Add unix sockets support
- Add server side password check
- Make publish
len
public
- changed Update to mqttbytes 0.4
- fix Fix packet collisions and always enable collision protection [breaking]
- fix Fix wrong error name
- changed Update to mqttbytes 0.4
- changed Native tls support
- fix Connack and suback packet mixup during mqtt 5 implementation [breaking]
- changed Update to mqttbytes 0.3 [breaking]
- 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)
- update CI
- changed Update README
- changed Improve error reporting
- changed Update to warp 0.3 and remove tokio compat
- changed Disable async link for this release due to compilaiton error [breaking]
- fix Fix windows compilation due to pprof
- fix Fix collision retransmission logic
- feature Adds NATS to compare parser throughput benchmarks
- feature Complete mqtt 5 implementation
- fix Split mqtt 4 and 5 into modules [breaking]
- changed Update to mqttbytes 0.2 [breaking]
- changed Update to mqttbytes 0.2 [breaking]
- Add mqtt 4 and 5 parsers to benchmarking suite for comparsion
- changed Deprecate mqtt4/5bytes to combine them in mqttbytes
- changed Update to tokio 1.0 [breaking]
- changed Update to tokio 1.0 and
bytes
1.0 [breaking]
- Improve benchmarking suite with plots
Thanks to all the contributors who made this release possible
Andrew Walbran Jonas Platte Daniel Egger Mihail Malo Alex Mikhalev
- changed Update to
bytes
0.6 [breaking]
- feature Refactor transport with websockets support
- changed Update to tokio 0.3 [breaking]
- feature Metrics server
- feature Improve configuration schema
- feature Support multiple servers on different ports
- changed Update to tokio 0.3 and
bytes
0.6 [breaking] - fixed Fix collisions due to publish batches
- Add license file
- Improve benchmarking suite with plots
- changed LastWill API now looks similar to publish API [breaking]
- changed Don't cancel the eventloop when
Client
is dropped. - changed Remove network from public interface [breaking]
- internal Fuse io into state
- internal Improve packet framing
- fixed Simplify collisions and fix collision event notification
- fixed 0 keepalive handling
- fixed Disconnect and qos 2 handling
- feature Offline storage, retained messages, will, unsubscribe
- misc Paho interoperability test suite conformance
- internal Performance improvements
- Move integration tests outside eventloop
- Improve integration tests
- Fix panics by properly handling connection failure
- Redesign by embedding tracker inside router's connection
- Redesign with a hybrid of push and pull model
- Manually setup 1 router thread and 1 io thread
- Add names to threads
- Compatibility with rumqttlog