Commit log

1b63585 parsers: clippy run

Click to expand commit body
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>

Maxime “pep” Buquet created

4c2fac0 jid: clippy run

Click to expand commit body
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>

Maxime “pep” Buquet created

4994ac2 xso-proc: clippy run

Click to expand commit body
Caught a bug hidden behind #[cfg(not(feature = "minidom"))]

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>

Maxime “pep” Buquet created

5b62672 xso: clippy run

Click to expand commit body
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>

Maxime “pep” Buquet created

2555bed CI: add .show-version block in docs job

Click to expand commit body
skip-changelog

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>

Maxime “pep” Buquet created

a1247a0 parsers: Add support for XEP-0335: JSON Containers

Click to expand commit body
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>

Maxime “pep” Buquet created

ab7e6de xso: Add support for serde_json::Value

Click to expand commit body
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>

Maxime “pep” Buquet created

4780f89 xmpp: new Agent::new method

Click to expand commit body
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>

Maxime “pep” Buquet created

5ae3854 xmpp: Shorten the default caps node to our main domain

Click to expand commit body
We do own xmpp.rs, so let’s use that instead of gitlab.com.

Link Mauve created

84c4b57 parsers: port stanza_error over to derive macros

Jonas Schäfer created

b05ee02 xso: add support for selectively discarding text and attributes

Jonas Schäfer created

fd97f9f fix presence serialization name

R T created

7faa6dc parsers: port time over to derive macros

Jonas Schäfer created

d203a34 minidom: Make the whole crate almost no_std

Click to expand commit body
Only std::io is still missing, maybe we should consider using a crate
implementing its API on top of no_std?

Emmanuel Gil Peyrot created

8e375ae minidom: Specify XML subset restrictions in readme

Click to expand commit body
skip-changelog: It's just a readme

Colin Kinloch created

af14717 minidom: Fix most issues reported by clippy

Click to expand commit body
This improves some of our internals.

skip-changelog: These changes are purely internal.

Emmanuel Gil Peyrot created

932575c xmpp_parsers: Add Push Notifications (XEP-0357)

Click to expand commit body
Add support for Push Notification parsing according to https://xmpp.org/extensions/xep-0357.html version 0.4.1.

Saarko created

9f9eaba jid: Bump version to 0.12.0 and release it!

Emmanuel Gil Peyrot created

cffef5d jid: Update ChangeLog

Emmanuel Gil Peyrot created

ca241fa PrintRawXml: Add changelog entry

Click to expand commit body
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>

Maxime “pep” Buquet created

947d84c parsers: add xso test module

Click to expand commit body
Separate from the macro_tests module because it doesn't actually test
macros, it uses it as a convenience.

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>

Maxime “pep” Buquet created

b89d3ab xso: Add PrintRawXml helper struct with Display

Click to expand commit body
Add a helper struct to be able to display Raw Xml, useful for debug
logs.

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>

Maxime “pep” Buquet created

356ad0d xso: Fix all failing clippy tests

Click to expand commit body
They are all sensible to me.

skip-changelog: Internal changes.

Emmanuel Gil Peyrot created

5cbe593 xmpp-parsers: Use xso for pubsub owner

Click to expand commit body
Also merge its direct children into its enum fields.

Emmanuel Gil Peyrot created

26dd6a2 minidom: Remove unused lifetimes

Click to expand commit body
These can be elided just fine.

skip-changelog: This is purely internal change.

Emmanuel Gil Peyrot created

205857e xmpp-parsers: Remove MIX support

Click to expand commit body
This protocol has failed to gain any traction in the XMPP ecosystem and
is actively being replaced with better alternatives based on MUC.

Emmanuel Gil Peyrot created

e7395b7 xmpp-parsers: Add a lang property to Presence

Click to expand commit body
This is a workaround for rxml not handling @xml:lang properly yet.

Emmanuel Gil Peyrot created

7e260dd jid: Simplify *Part parsing

Click to expand commit body
Reuse the main JID parsing blocks for the separate parts.

Emmanuel Gil Peyrot created

bd17a2f jid: Move node and resource validation to functions

Click to expand commit body
This simplifies the flow of the checks.

Emmanuel Gil Peyrot created

2a2f532 jid: Validate domains against idna

Click to expand commit body
The idna crate validates against UTS 46, which supports domains using
either IDNA2003 or IDNA2008.  This allows us to support both old and
new internationalized domain names.

This dependency isn’t a new one in the tree, as hickory-proto, url and
tokio-xmpp all were already depending on it.

There are a bunch of other checks that have to be performed, this is
inspired by slixmpp’s JID implementation.

Emmanuel Gil Peyrot created

f5f35ea jid: Test for too many @ before the resourcepart

Click to expand commit body
This additionally should optimize the parsing a tiny bit by looking for
both @ and / at the same time and iterating on them, instead of one by
one.

Thanks nicoco for the report!

Emmanuel Gil Peyrot created

772a326 xmpp-parsers: Add missing size tests for MUC

Click to expand commit body
skip-changelog: This is just about testing.

Emmanuel Gil Peyrot created

c497967 xmpp-parsers: Reduce component handshake allocations

Click to expand commit body
This function always appends to an existing string, so by passing it a
String directly we can avoid superfluous allocations.

Also tokio-xmpp was doing a bunch of &str to String for no reason around
there, let’s remove that too.

Emmanuel Gil Peyrot created

b8f6403 tokio-xmpp: Fix build on insecure-tcp

Click to expand commit body
insecure-tcp requires the io-util feature of tokio, so let’s enable it
there.

Fixes this error:
5   | use tokio::{io::BufStream, net::TcpStream};
    |             ^^^^^^^^^^^^^ no `BufStream` in `io`

Emmanuel Gil Peyrot created

4148e9d xso-proc: hide generated FromXml / AsXml types

Click to expand commit body
They really clutter the documentation, because they show up in the
module's index. Downside is that users can't inspect the documentation
of those types anymore, but it's not useful anyway: the parts are
private and they just impl some traits.

Jonas Schäfer created

fa61f42 xmpp-parsers: Use xso for pubsub events

Click to expand commit body
Also split the PubSubEvent enum into Event and Payload.

Emmanuel Gil Peyrot created

543d9eb xmpp-parsers: Convert http_upload::Header to xso

Click to expand commit body
We can’t use generate_attribute!() for HeaderName because it has to be
case insensitive.

Emmanuel Gil Peyrot created

40808b8 xmpp-parsers: Add missing size tests for http_upload

Emmanuel Gil Peyrot created

c245b3f xmpp-parsers: Simplify SubscribeOptions using #[xml(flag)]

Click to expand commit body
skip-changelog: This is not a user-visible change.

Emmanuel Gil Peyrot created

d092b6a xmpp-parsers: Convert mam::Query to xso

Click to expand commit body
skip-changelog: This is not a user-visible change.

Emmanuel Gil Peyrot created

f63b780 xmpp-parsers: Simplify PubSub Item using xso

Click to expand commit body
Now that we can have a single arbitrary payload, we can derive FromXml
and AsXml on the Item.

Emmanuel Gil Peyrot created

1823afb xso-proc: Add the default flag to the element meta

Click to expand commit body
This allows the payload to be absent, and requires the field type to be
Option<minidom::Element>.

Emmanuel Gil Peyrot created

c72cf3d xso-proc: Add n = 1 flag to element meta

Click to expand commit body
This allows exactly one arbitrary payload in any element, and is handled
after every other element with a more specific matcher has been parsed.

Both the #[xml(element(n = 1))] meta and its shortcut #[xml(element)]
are allowed and treated the exact same way.

Emmanuel Gil Peyrot created

057306f ci: use shallow fetch

Click to expand commit body
No need to fetch the entire history. The merge base is likely within the
last couple commits because we require it to be so anyway, because the
repo requires fast-forward merges currently.

skip-changelog, because this doesn't touch library code.

Jonas Schäfer created

6bed0f2 ci: ensure that main branch is fetched for changelog check job

Click to expand commit body
skip-changelog, as this doesn't touch library code.

Jonas Schäfer created

8a4d548 tokio_xmpp: implement IQ tracking

Jonas Schäfer created

ef9d0a9 tokio_xmpp: improve Client docs

Click to expand commit body
skip-changelog, to not add doc improvement noise.

Jonas Schäfer created

beae4ae xso: fix no_std support

Click to expand commit body
This reverts the Revert in 6ec275d3 which had to be done in order to
un-break usage of xso in std crates.

Jonas Schäfer created

bf12acc xso-proc: improve NestedMatcher documentation

Click to expand commit body
skip-changelog

Jonas Schäfer created

7953524 xmpp-parsers: Remove two now-unused get_attr!() variants

Click to expand commit body
OptionEmpty and RequiredNonEmpty were long gone.

skip-changelog, because this is internal API only.

Emmanuel Gil Peyrot created