A type-safe Rust XMPP library.
Find a file
Emmanuel Gil Peyrot 6f304d197d jid: Optimise for no-transform JIDs
stringprep can make transformations to a JID, the most well-known one is
making the nodepart and domainpart lowercase but it does much more than
that.

It is extremely common to have to validate already-normalised JIDs
though, and since https://github.com/sfackler/rust-stringprep/pull/4
this is exactly what the stringprep crate does, by returning
Cow::Borrowed() for common ASCII-only cases.

This commit further reduces time spent by an additional -15%..-58% when
already using this stringprep improvement, in addition to the
89.5%..98.5% change brought by this improvement (and +1.3% total when
the JID isn’t normalised yet).

For instance, my own full JID parses in 1.83 µs before these changes,
132 ns with just the stringprep optimisation, and 46 ns with also this
commit, on an i7-8700K.
2023-07-16 19:50:12 +02:00
jid jid: Optimise for no-transform JIDs 2023-07-16 19:50:12 +02:00
minidom minidom/examples: silence warning on unused property in struct 2023-06-01 16:25:38 +02:00
parsers parsers/doap: Add supported platforms 2023-06-27 01:56:01 +02:00
tokio-xmpp JIDs now have typed and stringy methods for node/domain/resource access 2023-06-21 18:30:25 +02:00
xmpp JIDs now have typed and stringy methods for node/domain/resource access 2023-06-21 18:30:25 +02:00
.gitignore Hello world! 2019-03-21 18:43:27 +01:00
.gitlab-ci.yml Include libicu-dev in CI images 2023-06-06 01:07:19 +02:00
Cargo.toml icu: Remove this obsolete attempt 2023-06-20 19:59:16 +02:00
LICENSE Readd global LICENSE file 2020-02-25 22:13:34 +01:00
README.md README: add lib descriptions 2020-04-23 23:19:37 +02:00

xmpp-rs

What's this?

A very much WIP set of rust XMPP library with the goals of being type-safe and well-tested.

  • xmpp-rs provides a high-level API for the protocol. You shouldn't need to know about the protocol to use it.
  • tokio-xmpp is a lower-level library that handles the XMPP stream(s).
  • xmpp-parsers parses XML into Rust and back.
  • minidom is a DOM library quite specific for XMPP
  • jid is a Jid parsing library.

Contact

There is an XMPP MUC for the discussion of this library, feel free to join! :)

chat@xmpp.rs

License

Mozilla Public License 2 (MPL2). See the LICENSE file.