Posts published by hrxi

End of the Google Summer of Code

This Google Summer of Code was about adding peer-to-peer file transfers to Dino. Dino is an XMPP client, XMPP is decentralized instant messaging standard. The work was mostly done in two larger pull requests.
Read more…

Ninth and tenth week: Interoperability fun

After finishing the SOCKS5 bytestreams transport for Jingle (S5B, XEP-0065, XEP-0260), I was asked whether I had already done interoperability testing with other clients for the fallback to in-band bytestreams.
Read more…

Eighth week: Standards

Sometimes, XEPs are really imprecise or even lack information about some interactions. Most of the time, it’s about error handling where it’s not really specified what to do in error cases, as the XEP mostly deals with the “happy path” when everything is working.
Read more…

Seventh week: Socks 5 file transfer

The blog posts have slipped somewhat, last blog post covering two weeks. Let’s try to fix that. The next step for file transfers was to implement more Jingle transport methods. Currently, only in-band bytestreams are implemented as transport methods.
Read more…

Fifth and sixth week: File receiving

In the last two weeks, file receiving over Jingle has been implemented. This means that basic Jingle file transfers are available in Dino now (at least once the pull request #577 has been merged).
Read more…

Fourth week: Some UI integration

File sending over Jingle (with in-band-bytestream transport) has now been integrated into the UI. This has fortunately been quite easy as Dino already had support for file sending, via HTTP uploads.
Read more…

Third week: Interoperability testing

I managed to get the basic in-band bytestream file transfers working. It still doesn’t have any user interface, that’s depending on a project by my mentor. For now, it’s simply triggered by a hardcoded target JID that gets a file transfer when it sends a presence.
Read more…

Second week: IBB Proof of Concept

As the first task, we planned to get a working, proof-of-concept Jingle file transfer over an “in-band bytestream” (IBB, XEP-0047, XEP-0261). To get to this point, I planned to write a module for basic Jingle interactions, supporting the necessities for file transfers, and a non-final API for transport methods on the other side.
Read more…

Peer-to-peer file transfers for Dino

Hello! I’m hrxi, a mathematics student from Germany. I got accepted into Google Summer of Code with the XMPP standards foundation as the mentoring organisation. In the next three months, I’m going to work on Dino, a modern XMPP client for the desktop.
Read more…