On Fri, Jan 29, 2021 at 03:09:18PM +0000, Tedd Sterr wrote:
Post your tales of projects, developments, and other fascinating
XMPP-related stories in this thread to keep them all in one place.

I spent most of 2020 in some internship-ish thing at a stereotypical
ENTERPRISE. This mostly consisted of writing YAML for Kubernetes and
looking after the internal chat. I shall not name what that was made of,
but it wasn't XMPP. Since 2021 I've gone back to being an independent
consultant and trying to also have time for doing cool Prosody and XMPP
things.

Here are some words typed by my hands:

# Bad XMPP

Previously mentioned on the jdev list[^1], it's a set of XMPP host with
deliberately wonky configurations or problems, for testing how your
connection establishment code behaves. Still primarily consisting of s2s
tests, haven't gotten to c2s tests yet, but I meant to.

For a list of specific tests, see <https://badxmpp.eu>

# "REST" stanza API

Started as an experiment combining new code for keeping track of IQ
stanzas using ES6 Promises, combined with support in the Prosody HTTP
stack for promises, which let you send a HTTP request with an IQ stanza
which would wait and return the response.

I found this quite fascinating, being able to query remote servers
via curl. It also gained a reverse "webhook" mode, where incoming
stanzas gets forwarded to a local web service, as a way to build bots or
components using web tech. The responding service can then reply by
returning a stanza in the http response, or return an empty response and
then send something later using the previously mentioned API.

Because web tech must be based on JSON, mod_rest grew a limited JSON
representation of some common stanza payloads, as well as support for
some other payload formats, e.g. plain text.

So you can build the Hello World echo bot by pointing this module at a
plain text file on a web server. I think that's kinda neat.

In theory this could be used as an alternative to BOSH in the future,
but a few pieces are missing.

There is also OAuth2 token authentication, which we might see more of in
other parts of Prosody in the future. Stay tuned!

For more, see: <https://modules.prosody.im/mod_rest>

# HTTP Upload implementation

Only a few weeks ago I went and made a new HTTP Upload module for
Prosody since the old one was, well, an overgrown proof-of-concept
implementation, with a few fundamental design problems and limitations.

Some of those limitations were due to how the Prosody HTTP server
started its life as purely meant for BOSH, i.e. optimized for small
messages, rather than large binary uploads. Those issues have recently
been fixed and Prosody should now handle uploads of arbitrary size
reasonably well.

Sneak a peek at the docs at <https://prosody.im/doc/modules/mod_http_file_share>

# Fin

All nice things mentioned require the bleeding edge development version
of Prosody, and will be supported in the next major version.

Coming soon[^2] to a distribution near you.

[^1]: <https://mail.jabber.org/pipermail/jdev/2020-March/090417.html>

[^2]: not *that* soon, don't hold your breath

--
Stay healthy and sane,
Kim "Zash" Alvefur

Attachment: signature.asc
Description: PGP signature

_______________________________________________
Standards mailing list
Info: https://mail.jabber.org/mailman/listinfo/standards
Unsubscribe: [email protected]
_______________________________________________

Reply via email to