Version NEXT: 0000-00-00 RELEASER * Fixed: - Ignore missing "version" stream attribute for 0114 components. Version 5.0.0: 2025-10-28 pep * 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 * 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 * 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 * 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