Version NEXT:
0000-00-00 RELEASER <releaser@domain>

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
