Skip to content

Instantly share code, notes, and snippets.

@ValdikSS
Last active January 7, 2018 00:27
Show Gist options
  • Star 7 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save ValdikSS/30f866602413c036e4e6924c1895b838 to your computer and use it in GitHub Desktop.
Save ValdikSS/30f866602413c036e4e6924c1895b838 to your computer and use it in GitHub Desktop.
XMPP Improvement Project

XMPP Improvement Project

For many years XMPP was a protocol not suited for modern mobile devices with unstable network connection. Messages could be easily lost (and you had to ask for receiving acknowledgment yourself in another message), battery consumption was very high.
XMPP also was barely usable on multiple devices. While we had Message Archiving XEP since 2004, Message Carbons XEP since 2010 and Message Archive Management (MAM) since 2012, most desktop clients still lack support of these functions giving you frustration when you want to access previous conversation history that was made on another device.

Everything has changed when Daniel Gultsch created Conversations. That's a modern XMPP client for Android which has support for most current XEPs. Finally we get mobile XMPP client that is usable, reliable, supports history sync and doesn't noticably shorten battery life and is a proper competitor for other proprietary mobile IMs.

Still, the situation with desktop clients is unpleasant. Only one client has Message Archive Management support (Gajim), only one has support for outdated and rarely configured on the server side Message Archiving support (Vacuum IM). Not even mention Gajim UI problems that you can see previous conversation history only in "history" menu, the chat window contains conversation history only of that exact machine. Till now there's no client for OS X with MAM support. Also should note that Gajim lacks MAM support for MUC.

We are a small group of people, who wants XMPP to be suitable for modern every day use for casual users, power users and teams. We decided to improve that situation by implementing missing XEP support in most popular desktop clients (Psi/Psi+ for Windows and Linux, Monal and Swift for OS X) and improving UI and overall usability of software listed. Our goal is making desktop experience as good as mobile experience with Conversations.

The Immediate Goal

Make sure desktop clients support the following XEPs and implement what they lack:

  • XEP-0184 Message Delivery Receipts
  • XEP-0198 Stream Management
  • XEP-0280 Message Carbons
  • XEP-0308 Last Message Correction
  • XEP-0313 Message Archive Management
  • XEP-0363 HTTP File Upload

Make various Linux distributions repositories, Windows installers and signed OS X packages of software.

The Complete Goal

Implement additional XEPs:

  • XEP-0333 Chat Markers
  • XEP-0163 Personal Eventing Protocol
  • XEP-0384 OMEMO Encryption

Improve UI in clients:

  • Chatroom join dialog UI
    If a person gets MUC JID as roomname@mucserver.xmpp.com, he shouldn't manually write MUC server name in one field and room name in another.
  • Make chatroom notifications configurable for every room individually
    There could be high-traffic rooms where you don't want to get a notification for every message and low-traffic but high priority rooms where you need to get notification on every message.
  • HTTP File uploading on drag'n'drop and image data paste
  • Proper inline image preview
  • Easy message quotation
@Neustradamus
Copy link

:)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment