#xmpp #jabber #xml


Collection of parsers and serialisers for XMPP extensions

28 releases (breaking)

0.20.0 Aug 20, 2023
0.19.2 Dec 17, 2022
0.19.1 Jul 13, 2022
0.19.0 Mar 7, 2022
0.7.1 Jul 24, 2017

#651 in Parser implementations

Download history 98/week @ 2023-08-10 143/week @ 2023-08-17 111/week @ 2023-08-24 45/week @ 2023-08-31 109/week @ 2023-09-07 139/week @ 2023-09-14 133/week @ 2023-09-21 121/week @ 2023-09-28 82/week @ 2023-10-05 95/week @ 2023-10-12 130/week @ 2023-10-19 141/week @ 2023-10-26 154/week @ 2023-11-02 128/week @ 2023-11-09 123/week @ 2023-11-16 122/week @ 2023-11-23

538 downloads per month
Used in 10 crates (8 directly)

MPL-2.0 license

17K SLoC


What’s this?

A crate which provides parsers and serialisers for most XMPP elements, to avoid having to deal with XML manually. It validates its inputs by default, and aims at providing useful errors when a particular XML element was invalid.

What license is it under?

MPL-2.0 or later, see the LICENSE file.


A crate parsing common XMPP elements into Rust structures.

Each module implements the TryFrom<Element> trait, which takes a minidom Element and returns a Result whose value is Ok if the element parsed correctly, Err(error::Error) otherwise.

The returned structure can be manipuled as any Rust structure, with each field being public. You can also create the same structure manually, with some having new() and with_*() helper methods to create them.

Once you are happy with your structure, you can serialise it back to an Element, using either From or Into<Element>, which give you what you want to be sending on the wire.


~176K SLoC