xmpp-rs/tokio-xmpp/ChangeLog
Jonas Schäfer 1710a6f99e Release all crates
Since we tie the versions rather tightly, we have to release the entire
bunch in order to allow people to upgrade to rxml 0.14.
2026-06-11 17:25:32 +02:00

159 lines
8.2 KiB
Text
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Version NEXT:
XXXX-XX-XX RELEASER <releaser@domain.example>
Version 6.0.0:
2026-06-10 Jonas Schäfer <jonas@zombofant.net>
* Breaking:
- Removed the `disable-validation` feature and made the behaviour the
new default. The newly-introduced `pedantic` feature can be used to
opt into the previous default behaviour of rejecting all unknown
child elements and attributes.
- Add `xmpp_parsers::stream_features::StreamFeatures` to
`tokio_xmpp::event::Online` (!631)
- `Component.jid` is now a `BareJid` and not a raw `Jid` (!684)
- `Client.bound_jid` is now a `FullJid` and not a raw `Jid` (!687)
* Added:
- Expose `client_auth` method to allow manual stream setups for advanced
use cases.
- Add feature flag to disable validation in xmpp_parsers
- Added option to set custom DNS resolver to
`tokio_xmpp::connect::DnsConfig`
* Fixed:
- Ignore missing "version" stream attribute for 0114 components.
- Always send the stream:stream opening in one TCP packet, to workaround
issue #1995 in Prosody. (!680)
- Gate `AsRawFd` behind `ktls` feature to make Windows build work again.
- Implicitly use the `Client`'s bound JID on empty `from` and `to` in
tokio-xmpp's `IqResponseTracker`.
- Actually count inbound stream management stanzas (!657) instead of
always sending h='0' in our `<a/>`.
* Changed:
- Update hickory-dns to 0.26 (!671)
- Drive the XMPP client stream in the background (!631)
- Add option to split XMPP client into read and write half (!631)
- Remove T: AsXml bound from XmlStream (!675)
- Invalid stanzas are now dropped (after increasing the SM counters)
instead of failing the stream. Previously, that might have caused
continuous reconnect loops esp. with stream management (#172, !675).
Version 5.0.0:
2025-10-28 pep <pep@bouah.net>
* Breaking:
- Remove `tokio_xmpp::ParseError` and `tokio_xmpp::starttls::ParseError`
which were never used
- Remove StreamFeatures from this crate, replaced with
`xmpp_parsers::stream_features::StreamFeatures` (!400)
- `starttls::error::ConnectorError` variants have been merged with
`starttls::error::Error`, except `ConnectorError::AllFailed` which was
not used and has been completely removed (!418)
- Remove `ProtocolError` and `AuthError` from crate root; access them
from `error` module (!423)
- Remove `connect::ServerConnector`'s `Error` associated type, the
methods return tokio_xmpp::Error directly, where Connection variant
contains any error type that implements connect::ServerConnectorError
(!421)
- Remove `starttls::Error`'s `TokioXMPP` variant ; only
tokio_xmpp::Error can contain starttls::Error, not the other way around
(!421)
- `AsyncClient::new` automatically reconnects by default (!436)
- `AsyncClient::poll_next` properly closes stream with
`Poll::Ready(None)` when disconnecting without auto reconnect (!436)
- Remove `tokio_xmpp::SimpleClient` because it was not widely used, and
not well documented ; if you need it, please let us know and it will be
reintegrated (!428)
- Change `Component::new` and `Client::new` interface ; only require
jid/password argument (!428)
- Remove `ServerConfig` and `Client::new_with_config` (!428)
- Add `new_plaintext`, `new_starttls` and `new_with_connector` method to
`Client` (!428)
`new_plaintext` and `new_starttls` take a DnsConfig struct for SRV/DNS
resolution strategy, while `new_with_connector` takes anything that
implements ServerConnector
- Add `new_plaintext` and `new_with_connector` constructors to
`Component`, just like `Client` but without StartTLS (!428)
- Rename `tokio_xmpp::AsyncClient` to `tokio_xmpp::Client` (!428)
- Gate `Component` behind `insecure-tcp` feature flag
- Remove `XMPPStream` and `XmppCodec` in favour of the newly implemented
`tokio_xmpp::xmlstream module.
- The TLS-related feature flags have been completely reworked to make
them easier to use. The `tls-rust-*`, `tls-native` and `starttls-*`
feature flags have been removed in favour of more concise flag names
identifying the TLS backends directly (`aws_lc_rs`, `ring`,
`native-tls`). The `starttls` feature is now independent of the
specific backend (but a backend still needs to be enabled for
compilation to succeed).
Please refer to the crate docs for details. (!581)
* Added:
- Add new `direct-tls` connection method to the `Client`. (!585)
- Support sending IQ requests while tracking their responses in a Future.
- `rustls` is now re-exported if it is enabled, to allow applications to
set the default crypto provider if needed. (!581)
- Derive Debug on Client and associated structs
- Add ktls support. On Linux, once the TLS session is established, we
can delegate the actual encryption and decryption to the kernel, which
in turn can delegate it to a hardware implementations if available.
This depends on the `tls-rust-ktls` feature. (!458, !490)
* Changes:
- Update rxml dependency to 0.13.
- Remove warnings for elided lifetimes (rustc 1.90)
- Use thiserror for the error types. (!616)
- Fix building with 'insecure-tcp' only.
- Remove warning when 'rustls-any-backend' feature isn't enabled
Version 4.0.0:
2024-07-26 Maxime “pep” Buquet <pep@bouah.net>
* Breaking:
- Add ServerConnector API to be able to change transports for the
stream and the consumer.
- DNS/TLS deps are now optional and available behind the `starttls-rust` and
the `starttls-native` features.
- Connectors for insecure tcp are now behind the `insecure-tcp` feature
and are disabled by default.
* Changes:
- Add support for channel binding (RFC 9266) on TLS 1.3 (TLS 1.2
pending) (faabc2984)
- Prevent tokio-xmpp from crashing when the server closes the stream
under our feet (aabd19f7).
- New public `AsyncClient::get_stream_features` and
`SimpleClient::get_stream_features` methods. (060088be)
- Add `serde` feature to proxy jid feature. (034976748)
- Add XmppCodec public. (6d449e9a)
- Remove workaround for Debian oldoldstable. (372234b9)
- Update to edition 2021. Remove TryFrom/Into as they're included in the
prelude. (4089891)
- Happy eyeballs: Connect to all records in parallel. The happy eyeballs
implementation used not to query AAAA if it got an answer for the A
record. (598ffdb, 6c3081d)
- Allow building docs with --all-features. It used to fail because it's
not possible to build with both the `tls-native` and `tls-rust`.
features. (0298caf9)
- Bump all dependencies.
- Change trust-dns to hickory-dns. (115edf6f)
- Remove unnecessary features from dependencies. (2d11ada30)
- Fix typos with codespell
- Various performance optimisations
Version 3.5.0:
2023-10-24 Maxime “pep” Buquet <pep@bouah.net>
* Changes:
- Require one and only one of tls-native and tls-rust to be enabled.
Technically a breaking change, but enabling both wasn't working in the
previous release anyway.
- Various fixes that were guarded under the tls-rust feature. All
updates from dependencies.
- Add serde feature, passed to jid crate
Version 3.4.0:
2023-08-17 Maxime “pep” Buquet <pep@bouah.net>
* Breaking changes:
- AsyncClient::new takes a parsed Jid instead of string (#72)
- Properly add @id to every stanza, and also add support for components.
* Changes:
- env_logger is now included in dev_dependencies for examples debugging with RUST_LOG=debug
- Fix debug prints to include all XML being sent and received
- Add chosen DNS method to debug logs
- Add syntax highlighting to debug logs
- Update dependencies
- Fix a deadlock when packets were being ignored. (6ccc5cc)
- Re-export jid structs, minidom::Element, and parsers module