xmpp-rs/tokio-xmpp/ChangeLog

147 lines
7.5 KiB
Text
Raw Normal View History

Version NEXT:
0000-00-00 RELEASER <releaser@domain>
* 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.
* Breaking:
- Add `xmpp_parsers::stream_features::StreamFeatures` to
`tokio_xmpp::event::Online` (!631)
2025-11-12 12:07:32 +01:00
* Added:
- Expose `client_auth` method to allow manual stream setups for advanced
use cases.
- Add feature flag to disable validation in xmpp_parsers
* Fixed:
- Ignore missing "version" stream attribute for 0114 components.
- 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/>`.
2026-05-14 20:45:37 +02:00
* 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)
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)
2025-01-26 11:10:44 +01:00
* 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)
2025-10-12 22:20:29 +02:00
- 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.
2024-06-05 11:13:29 +02:00
- 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