ChangeLog

  1Version NEXT:
  20000-00-00 RELEASER <releaser@domain>
  3    * Fixed:
  4      - Ignore missing "version" stream attribute for 0114 components.
  5
  6Version 5.0.0:
  72025-10-28 pep <pep@bouah.net>
  8    * Breaking:
  9      - Remove `tokio_xmpp::ParseError` and `tokio_xmpp::starttls::ParseError`
 10        which were never used
 11      - Remove StreamFeatures from this crate, replaced with
 12        `xmpp_parsers::stream_features::StreamFeatures` (!400)
 13      - `starttls::error::ConnectorError` variants have been merged with
 14        `starttls::error::Error`, except `ConnectorError::AllFailed` which was
 15        not used and has been completely removed (!418)
 16      - Remove `ProtocolError` and `AuthError` from crate root; access them
 17        from `error` module (!423)
 18      - Remove `connect::ServerConnector`'s `Error` associated type, the
 19        methods return tokio_xmpp::Error directly, where Connection variant
 20        contains any error type that implements connect::ServerConnectorError
 21        (!421)
 22      - Remove `starttls::Error`'s `TokioXMPP` variant ; only
 23        tokio_xmpp::Error can contain starttls::Error, not the other way around
 24        (!421)
 25      - `AsyncClient::new` automatically reconnects by default (!436)
 26      - `AsyncClient::poll_next` properly closes stream with
 27        `Poll::Ready(None)` when disconnecting without auto reconnect (!436)
 28      - Remove `tokio_xmpp::SimpleClient` because it was not widely used, and
 29        not well documented ; if you need it, please let us know and it will be
 30        reintegrated (!428)
 31      - Change `Component::new` and `Client::new` interface ; only require
 32        jid/password argument (!428)
 33      - Remove `ServerConfig` and `Client::new_with_config` (!428)
 34      - Add `new_plaintext`, `new_starttls` and `new_with_connector` method to
 35        `Client` (!428)
 36        `new_plaintext` and `new_starttls` take a DnsConfig struct for SRV/DNS
 37        resolution strategy, while `new_with_connector` takes anything that
 38        implements ServerConnector
 39      - Add `new_plaintext` and `new_with_connector` constructors to
 40        `Component`, just like `Client` but without StartTLS (!428)
 41      - Rename `tokio_xmpp::AsyncClient` to `tokio_xmpp::Client` (!428)
 42      - Gate `Component` behind `insecure-tcp` feature flag
 43      - Remove `XMPPStream` and `XmppCodec` in favour of the newly implemented
 44        `tokio_xmpp::xmlstream module.
 45      - The TLS-related feature flags have been completely reworked to make
 46        them easier to use. The `tls-rust-*`, `tls-native` and `starttls-*`
 47        feature flags have been removed in favour of more concise flag names
 48        identifying the TLS backends directly (`aws_lc_rs`, `ring`,
 49        `native-tls`). The `starttls` feature is now independent of the
 50        specific backend (but a backend still needs to be enabled for
 51        compilation to succeed).
 52
 53        Please refer to the crate docs for details. (!581)
 54    * Added:
 55      - Add new `direct-tls` connection method to the `Client`. (!585)
 56      - Support sending IQ requests while tracking their responses in a Future.
 57      - `rustls` is now re-exported if it is enabled, to allow applications to
 58        set the default crypto provider if needed. (!581)
 59      - Derive Debug on Client and associated structs
 60      - Add ktls support. On Linux, once the TLS session is established, we
 61        can delegate the actual encryption and decryption to the kernel, which
 62        in turn can delegate it to a hardware implementations if available.
 63        This depends on the `tls-rust-ktls` feature. (!458, !490)
 64    * Changes:
 65      - Update rxml dependency to 0.13.
 66      - Remove warnings for elided lifetimes (rustc 1.90)
 67      - Use thiserror for the error types. (!616)
 68      - Fix building with 'insecure-tcp' only.
 69      - Remove warning when 'rustls-any-backend' feature isn't enabled
 70
 71Version 4.0.0:
 722024-07-26 Maxime “pep” Buquet <pep@bouah.net>
 73    * Breaking:
 74      - Add ServerConnector API to be able to change transports for the
 75        stream and the consumer.
 76      - DNS/TLS deps are now optional and available behind the `starttls-rust` and
 77        the `starttls-native` features.
 78      - Connectors for insecure tcp are now behind the `insecure-tcp` feature
 79        and are disabled by default.
 80    * Changes:
 81      - Add support for channel binding (RFC 9266) on TLS 1.3 (TLS 1.2
 82        pending) (faabc2984)
 83      - Prevent tokio-xmpp from crashing when the server closes the stream
 84        under our feet (aabd19f7).
 85      - New public `AsyncClient::get_stream_features` and
 86        `SimpleClient::get_stream_features` methods. (060088be)
 87      - Add `serde` feature to proxy jid feature. (034976748)
 88      - Add XmppCodec public. (6d449e9a)
 89      - Remove workaround for Debian oldoldstable. (372234b9)
 90      - Update to edition 2021. Remove TryFrom/Into as they're included in the
 91        prelude. (4089891)
 92      - Happy eyeballs: Connect to all records in parallel. The happy eyeballs
 93        implementation used not to query AAAA if it got an answer for the A
 94        record. (598ffdb, 6c3081d)
 95      - Allow building docs with --all-features. It used to fail because it's
 96        not possible to build with both the `tls-native` and `tls-rust`.
 97        features. (0298caf9)
 98      - Bump all dependencies.
 99        - Change trust-dns to hickory-dns. (115edf6f)
100        - Remove unnecessary features from dependencies. (2d11ada30)
101      - Fix typos with codespell
102      - Various performance optimisations
103
104Version 3.5.0:
1052023-10-24 Maxime “pep” Buquet <pep@bouah.net>
106    * Changes:
107      - Require one and only one of tls-native and tls-rust to be enabled.
108        Technically a breaking change, but enabling both wasn't working in the
109        previous release anyway.
110      - Various fixes that were guarded under the tls-rust feature. All
111        updates from dependencies.
112      - Add serde feature, passed to jid crate
113
114Version 3.4.0:
1152023-08-17 Maxime pep Buquet <pep@bouah.net>
116    * Breaking changes:
117      - AsyncClient::new takes a parsed Jid instead of string (#72)
118      - Properly add @id to every stanza, and also add support for components.
119    * Changes:
120      - env_logger is now included in dev_dependencies for examples debugging with RUST_LOG=debug
121      - Fix debug prints to include all XML being sent and received
122      - Add chosen DNS method to debug logs
123      - Add syntax highlighting to debug logs
124      - Update dependencies
125      - Fix a deadlock when packets were being ignored. (6ccc5cc)
126      - Re-export jid structs, minidom::Element, and parsers module