Version NEXT
XXXX-XX-XX [ RELEASER <releaser@domain.example> ]
Version 0.7.0
2026-06-10 [ Jonas Schäfer <jonas@zombofant.net> ]
* Breaking:
- Agent::wait_for_events now return Vec<Event> and sets inner tokio_xmpp Client
auto-reconnect to true... It is still aware of Event::Disconnected but should
no longer have weird hanging state or panic (!436)
- Agent::send_message now only sends normal messages to other users (!487)
- Event::LeaveRoom, Event::LeaveAllRooms, and Event::JoinRooms have been removed.
Agent now handles MUC connection states internally. (!481)
- Agent::leave_room now takes LeaveRoomSettings argument (!483)
- Agent::join_room now takes JoinRoomSettings argument (!483)
- builder::ClientBuilder::set_default_nick no longer takes a &str, but
any type that implements AsRef<jid::ResourceRef>, such as produced
by ResourcePart::new (!485)
- Event::RoomMessage, Event::RoomPrivateMessage, and Event::RoomSubject now
use RoomNick as sender nickname; previously RoomNick was an alias for String
now it's a newtype wrapper around ResourcePart (!485)
- Agent::send_room_private_message now takes RoomPrivateMessageSettings (!487)
- Event now exposes Option<MessageId> for incoming messages, and MessageId
for incoming message corrections; type alias Id has been removed (!504)
- The TLS-related feature flags have been completely reworked to make
them easier to use. The `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)
- Allow joining an already joined room with `Agent::join_room` to enable
resyncs. Adds a parameter to `muc::room::JoinRoomSettings`.
- Make bound_jid a FullJid. (!687)
* Changed:
- Replaced unimplemented! with info! calls.
- Only send `Event::RoomSubject` when there's no body as per 0045.
* Added:
- Agent::send_room_message takes RoomMessageSettings argument (!483)
- Agent::send_raw_message takes RawMessageSettings for any message type (!487)
- Event::ChatMessageCorrection, Event::RoomMessageCorrection, and
Event::RoomPrivateMessageCorrection signal XEP-0308 message corrections; they're
not checked how old the corrected entry is, which has security concerns (!496)
- Event::AuthConfirm and Event::AuthReject signal XEP-0070 authentication requests and
responses.
- Agent::new helper method.
- Handle SIGINT, SIGTERM and SIGKILL in hello_bot example to avoid leaving
hibernating resources around.
- New 'escape-hatch' feature: Allow sending tokio_xmpp::Stanza directly
instead of having to go through xmpp-rs' API when it's lacking. This
is meant to stay behind a feature. Also allows directly receiving
stanzas.
- Added documentation on `Event` enum.
- Update to edition 2024
- Add Config::Config struct as a user-facing Agent configuration method.
* Fixes:
- Use tokio::sync::RwLock not std::sync::RwLock (!432)
- The default caps node has been shortened to https://xmpp.rs since we
own that domain. Users should change it in their application though.
* CI:
- Enforce changelog updates in Gitlab CI.
Version 0.6.0:
2024-07-27 [ Maxime “pep” Buquet <pep@bouah.net> ]
* Breaking:
- Rename ClientBuilder::new_with_server to new_with_connector. (99036735)
* Added:
- Split xmpp in various modules to facilitate changes and contributions.
- Expose `bound_jid` on `Agent`. (e36b8d4f)
- Add `Agent::leave_room` method. (249d2aee, d2a56348)
- `Event::Disconnected` now exposes reasons of the disconnect. (ba48f6de)
- Read legacy XEP-0048 v1.0 bookmarks. (5fbba5c9)
- Read legacy bookmarks or bookmarks2 depending on disco#info result on
account. (4f8dc68b)
- Implement `Event::RoomSubject` for room subject changes / retrieval. (4f8ce0a9)
- Add StanzaTimeInfo for \<delay\> (XEP-0203). (3d9bdd6f)
- Add documentation on various methods.
- Fix typos via codespell. (002c2803)
- Update to edition 2021. (4089891f)
- Bump dependencies.
- Add `syntax-highlighting` feature as a proxy for tokio-xmpp's. (aee4c7911)
- Allow `xmpp` to be built with no default features. (54de8d99)
- Remove unused features from dependencies. (2d11ada)
* Fixes:
- Prevent crash when avatar is too big. (13449b19)
- Add handler for the Err case when parsing a PubSub event. (7579173c)
- Stop interpreting “unavailable” status as a `RoomJoined` event. (49921ac7)
- Assume BareJid and not FullJid as per the spec when @from isn't set on
received iq. (51f24627)
- Ensure reqwest dep doesn't automatically pull openssl when we use rustls. (cde6450b)
Version 0.5.0:
2023-08-23 [ Maxime “pep” Buquet <pep@bouah.net> ]
* Breaking changes:
- ClientBuilder::new takes a parsed BareJid instead of string (#72)
- ClientBuilder::new doesn't return a Result anymore
* Improvements:
- New event: RoomPrivateMessage(Id, BareJid, RoomNick, Body) (#85)
- New Agent::send_room_private_message method.
- Agent is now Send, by replacing Rc with Arc and RefCell with RwLock (#64)
- ClientBuilder now has a set_resource method for manual resource management (#72)
- Update dependencies
- Re-export jid structs, minidom::Element, and parsers module.
- Add serde feature, passed to jid crate
Version 0.4.0:
2023-05-18 [ Maxime “pep” Buquet <pep@bouah.net>, Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> ]
* Breaking changes:
- Event::ChatMessage and Event::RoomMessage now include an optional
message id.
* Improvements:
- New Event::ServiceMessage.
- New Event::HttpUploadedFile.
- Add a disconnect method on Agent
- ContactAdded event now fires properly. Thanks Doggo.
- Update dependencies versions
* Changes:
- Split wait_for_events method, make it easier to edit.
- hello_bot: add catch-all for Event
- Remove -rs suffix in folder name
xmpp-rs (0.3.0)
[ Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> ]
* Breaking changes:
- Complete change of API. We are not using plugins anymore. Please
have a look at ClientFeature(s) and Event(s).
* Improvements:
- Uses xmpp-parsers 0.15.0, and tokio-xmpp 1.0.1.
-- Maxime “pep” Buquet <pep@bouah.net> Fri, 13 Sep 2019 01:28:00 +0200