[Standards] File Transfer Roadmap

Sam Whited sam at samwhited.com
Sun Jul 26 22:33:40 UTC 2015

As I mentioned on the MUC room earlier, I've been investigating the
state of file transfer in XMPP, which has historically been a sticky
point for the protocol (especially where compatibility between different
clients is concerned).

After digging a bit, the following XEP's appear to be related to file
transfer or stream initialization to some degree (please do point out
any that I've overlooked):

  - XEP-0047: In-Band Bytestreams (Final Standard)
  - XEP-0065: SOCKS5 Bytestreams (Draft Standard)
  - XEP-0066: Out of Band Data (Draft Standard)
  - XEP-0095: Stream initialization (Draft Standard)
  - XEP-0096: SI File Transfer (Draft Standard)
  - XEP-0166: Jingle (Draft Standard)
  - XEP-0234: Jingle File Transfer (Experimental)
  - XEP-0260: Jingle SOCKS5 Bytestreams Transport Method (Draft Standard)
  - XEP-0261: Jingle In-Band Bytestreams Transport Method (Draft Standard)
  - HTTP Upload (ProtoXEP in PR [1])

The only real sticking point I can see for obsoleting several of these
XEPs and pushing forward with Jingle as the officially recommended
method is the fact that Jingle File Transfer is still marked as
experimental. However, it is already begining to gain adoption (Gajim,
Conversations, Swift, Stanza.io, Babbler, probably others that I'm
unaware of), while other clients, such as the ever popular libpurple,
tend to refuse to implement XEPs that are still in the Experimental
stage (I'm not sure if that's actually what's happening WRT Jingle File

With that in mind, I'd like to know what the council (and everyone
elses) opinion is of moving Jingle File Transfer forward in the process?
What needs to be done? The last time JFT was discussed (as far as I'm
aware), the only problem was the complaint that the <request/> flow had
been removed, however, Lance pointed out that this was a
reimplementation of existing Jingle semantics [2] and was planning on
adding a section to describe how this worked in JFT:4.

If this is indeed the only blocker, I'd like to propose the following
roadmap for XMPP file transfer:

  - Incorporate Lance's changes to JFT (or, if he is no longer working
on those, I will propose similar changes to describe the plain-Jingle
re-request flow)
  - Advance Jingle File Transfer to "Proposed" (and then hopefully to
"Draft" shortly thereafter)
  - Deprecate XEP-0096 and mark it as obsoleted by XEP-0234
  - Evaluate moving XEP-0047, and XEP-0065 fully into XEP-0234, and
XEP0260 (which partially re-describe them) to reduce confusion, or
leaving it alone to reduce work and needless changes.

As I said, I'm happy to drive any or all of this, but want to get some
idea of how people feel about it before attempting any of the work (eg.
are Lance's patches to JFT still being worked on or should I (or anyone
else who has a better grasp of Jingle than I do) take up the torch, will
the XSF ever actually obsolete SI File Transfer or will that be a
down-vote from the get-go at which point there's no reason to work on
it, etc.) Thoughts?


[1]: https://github.com/xsf/xeps/pull/30
[2]: http://mail.jabber.org/pipermail/standards/2015-July/030021.html

Sam Whited
pub 4096R/54083AE104EA7AD3

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://mail.jabber.org/pipermail/standards/attachments/20150726/335f651e/attachment.sig>

More information about the Standards mailing list