Crate xmpp_parsers

source ·
Expand description

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.

Modules

  • XML namespace definitions used through XMPP.
  • RFC 6120: Extensible Messaging and Presence Protocol (XMPP): Core
  • RFC 6120: Extensible Messaging and Presence Protocol (XMPP): Core
  • RFC 6120: Extensible Messaging and Presence Protocol (XMPP): Core
  • RFC 6120: Extensible Messaging and Presence Protocol (XMPP): Core
  • RFC 6120: Extensible Messaging and Presence Protocol (XMPP): Core
  • RFC 6120: Extensible Messaging and Presence Protocol (XMPP): Core
  • RFC 6120: Extensible Messaging and Presence Protocol (XMPP): Core
  • RFC 6121: Extensible Messaging and Presence Protocol (XMPP): Instant Messaging and Presence
  • RFC 7395: An Extensible Messaging and Presence Protocol (XMPP) Subprotocol for WebSocket
  • XEP-0004: Data Forms
  • XEP-0030: Service Discovery
  • XEP-0045: Multi-User Chat
  • XEP-0047: In-Band Bytestreams
  • XEP-0048: Bookmarks
  • XEP-0059: Result Set Management
  • XEP-0060: Publish-Subscribe
  • XEP-0071: XHTML-IM
  • XEP-0077: In-Band Registration
  • XEP-0082: XMPP Date and Time Profiles
  • XEP-0084: User Avatar
  • XEP-0085: Chat State Notifications
  • XEP-0092: Software Version
  • XEP-0107: User Mood
  • XEP-0114: Jabber Component Protocol
  • XEP-0115: Entity Capabilities
  • XEP-0118: User Tune
  • XEP-0157: Contact Addresses for XMPP Services
  • XEP-0166: Jingle
  • XEP-0167: Jingle RTP Sessions
  • XEP-0172: User Nickname
  • XEP-0176: Jingle ICE-UDP Transport Method
  • XEP-0177: Jingle Raw UDP Transport Method
  • XEP-0184: Message Delivery Receipts
  • XEP-0191: Blocking Command
  • XEP-0198: Stream Management
  • XEP-0199: XMPP Ping
  • XEP-0202: Entity Time
  • XEP-0203: Delayed Delivery
  • XEP-0215: External Service Discovery
  • XEP-0221: Data Forms Media Element
  • XEP-0224: Attention
  • XEP-0231: Bits of Binary
  • XEP-0234: Jingle File Transfer
  • XEP-0257: Client Certificate Management for SASL EXTERNAL
  • XEP-0260: Jingle SOCKS5 Bytestreams Transport Method
  • XEP-0261: Jingle In-Band Bytestreams Transport Method
  • XEP-0280: Message Carbons
  • XEP-0293: Jingle RTP Feedback Negotiation
  • XEP-0294: Jingle RTP Header Extensions Negociation
  • XEP-0297: Stanza Forwarding
  • XEP-0300: Use of Cryptographic Hash Functions in XMPP
  • XEP-0301: In-Band Real Time Text
  • XEP-0308: Last Message Correction
  • XEP-0313: Message Archive Management
  • XEP-0319: Last User Interaction in Presence
  • XEP-0320: Use of DTLS-SRTP in Jingle Sessions
  • XEP-0328: JID Prep
  • XEP-0338: Jingle Grouping Framework
  • XEP-0339: Source-Specific Media Attributes in Jingle
  • XEP-0352: Client State Indication
  • XEP-0353: Jingle Message Initiation
  • XEP-0359: Unique and Stable Stanza IDs
  • XEP-0363: HTTP File Upload
  • XEP-0369: Mediated Information eXchange (MIX)
  • XEP-0373: OpenPGP for XMPP
  • XEP-0380: Explicit Message Encryption
  • XEP-0380: OMEMO Encryption (experimental version 0.3.0)
  • XEP-0390: Entity Capabilities 2.0
  • XEP-0402: PEP Native Bookmarks
  • XEP-0421: Anonymous unique occupant identifiers for MUCs
  • XEP-0441: Message Archive Management Preferences
  • XEP-0444: Message Reactions

Enums

  • Contains one of the potential errors triggered while parsing an Element into a specialised struct.

Structs

  • A struct representing a bare Jabber ID, without a resource part.

Enums

  • An error that signifies that a Jid cannot be parsed from a string.

Structs

  • A struct representing a full Jabber ID, with a resource part.

Enums

  • An enum representing a Jabber ID. It can be either a FullJid or a BareJid.

Structs

  • A struct representing a DOM Element.