No description
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Jonas Schäfer cc92d113fa stanzastream: handle malformed stanzas more gracefully
This introduces the FallibleStreamElement type which, instead of
failing parsing altogether, captures certain types of parse errors and
allows the user (in this case, the stanzastream) to react to these
errors appropriately.

This allows us to drop invalid stanzas (e.g. with malformed values in
strictly-checked fields) instead of failing the entire stream.

Fixes #172.
2026-06-06 15:35:18 +02:00
.forgejo/workflows CI: set CARGO_TERM_COLOR: always 2025-10-21 23:40:00 +02:00
jid jid: Bump to 0.12.2 2026-02-26 17:03:30 +01:00
minidom Bump rxml to 0.14.0 2026-02-21 13:56:50 +01:00
parsers parsers: make inner pieces of bind.rs structs accessible 2026-06-06 14:04:01 +02:00
sasl Bump all outdated dependencies 2026-05-21 13:26:08 +02:00
tokio-xmpp stanzastream: handle malformed stanzas more gracefully 2026-06-06 15:35:18 +02:00
xmpp Bump all outdated dependencies 2026-05-21 13:26:08 +02:00
xso Stop being pedantic by default 2026-03-27 12:51:51 +01:00
xso-proc Bump rxml to 0.14.0 2026-02-21 13:56:50 +01:00
.gitea Support Github Actions (for a migration to forgejo) 2023-12-03 14:20:51 +00:00
.github Deny warnings in github/gitea/forgejo CI and act local runner 2024-01-21 13:55:39 +01:00
.gitignore Hello world! 2019-03-21 18:43:27 +01:00
.gitlab-ci.yml Add a CI pass for typos 2025-11-22 21:48:21 +00:00
Cargo.toml xso-proc: start making derive macros for FromXml and IntoXml 2024-06-23 12:20:02 +02:00
CODE_OF_CONDUCT.md Code of Conduct 2024-01-21 21:50:31 +01:00
CONTRIBUTING.md CONTRIBUTING.md: Making a release 2025-11-07 21:48:28 +00:00
LICENSE Readd global LICENSE file 2020-02-25 22:13:34 +01:00
README.md README: Reorder sections 2025-09-16 21:30:32 +00:00
typos.toml Add a typos.toml file 2025-11-22 21:48:21 +00:00

xmpp-rs

What's this?

A set of rust XMPP libraries with the goals of being type-safe and well-tested.

  • xmpp provides a high-level API for the protocol. You shouldn't need to know about the protocol to use it. Still very much WIP.
  • 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.
  • sasl handles the SASL protocol.
  • xso and xso-proc provide the procedural macros powering xmpp-parsers.

Community

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

chat@xmpp.rs

A Code of Conduct is available as CODE_OF_CONDUCT.md in the repository for the well-being of the community. Please refer to it in case of a possible conflict in any of the xmpp-rs venues (channel, forge, etc.).

Contributing

Thank you for your interest in the project!

Contributing rules are available as CONTRIBUTING.md in the repository.

License

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

Building

Dependencies should be provided by crates if you use the default features. If you use tokio-xmpp's tls-native feature you will need an ssl library (openssl, libressl, etc.).

cargo build

The various features available should be explained in the crates themselves.