xmpp 0.7.0

High-level XMPP library
Documentation
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