Version NEXT: XXXX-YY-ZZ RELEASER * Breaking: - Remove `tokio_xmpp::ParseError` and `tokio_xmpp::starttls::ParseError` which were never used - Removed 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) - `ProtocolError` and `AuthError` are no longer exported in crate root; access them from `error` module (!423) - `connect::ServerConnector` no longer has `Error` associated type, the methods return tokio_xmpp::Error directly, where Connection variant contains any error type that implements connect::ServerConnectorError (!421) - `starttls::Error` no longer has `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) - `Component::new` and `Client::new only require jid/password argument (!428) - `ServerConfig` and `Client::new_with_config` have been removed (!428) - ``Client` now has `new_plaintext`, `new_starttls` and `new_with_connector` method (!428) `new_plaintext` and `new_starttls` take a DnsConfig struct for SRV/DNS resolution strategy, while `new_with_connector` takes anything that implements ServerConnector - `Component` now has `new_plaintext` and `new_with_connector` constructors, just like `Client` but without StartTLS (!428) - `tokio_xmpp::AsyncClient` has been renamed `tokio_xmpp::Client` (!428) - `Component` is now gated behind `insecure-tcp` feature flag - `XMPPStream` and `XmppCodec` were removed in favour of the newly implemented `tokio_xmpp::xmlstream module. * Changes: - 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) 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