GSoC/GCI Archive
Google Summer of Code 2015

XMPP Standards Foundation

License: New and Simplified BSD licenses

Web Page:

Mailing List:

The Extensible Messaging and Presence Protocol (XMPP) is an open technology for real-time communication, which powers a wide range of applications including instant messaging, presence, multi-party chat, voice and video calls, collaboration, lightweight middleware, content syndication, and generalized routing of XML data.

The XMPP Standards Foundation is responsible for most of the specifications for this protocol, and in GSoC mentors students working on a wide range of XMPP-related software including chat applications, Internet of Things, social networks, servers, clients and others.


  • Add support for DNSSEC to Smack via MiniDNS MiniDNS is a DNS client library, which allows Android Apps and Java programs to resolve DNS resource records (RR). Adding support for DNSSEC would be the logical next step to improve the security of the software using MiniDNS. Since MiniDNS runs also on JavaSE runtimes, i.e. it is not an Anroid exclusive library, all applications using it would also become DNSSEC enabled. Once MiniDNS is able to perform DNSSEC, it should be used in smack-resolver-minidns for DNS resolution.
  • Add support for XMPP Serverless Messaging (XEP-174) to Smack Through this project I propose to Implement Serverless Messaging into Smack. That would allow XMPP Clients to communicate with each other over a local area network or the same WiFi network without the need for a server.
  • Axolotl support for Conversations I want to extend Conversations to support axolotl as an end-to-end encryption mechanism that works well with multi-device mobility.
  • Extend Stroke Implementation Stroke is a Java port of the Swiften XMPP library. However many functionalities are missing from the library. The aim of this project will be to implement those missing functionalities, update those functionalities which have changed in Swiften since initial port, improve test coverage.
  • Multi-account support in Swift Sometimes people have multiple accounts on different servers and would like to connect to them at the same time. It is possible to run several instances of Swift and log to each account but this is ugly and uncomfortable way. The project aims to create pleasing user interface for multi-account actions and ensure proper performance when connected with several servers.
  • Prototyping tools, for Internet of Things Internet of Things(IoT) is expected to offer advanced connectivity of devices, systems, and services that goes beyond machine-to-machine communications (M2M) and covers a variety of protocols, domains, and applications. We aim at making Tools and create a binding between SleekXMPP and various Devices like Netatmo,intel edisonetc. which can be controlled by means of Client Applications. Also to check compatibility between Devices, i.e. if they can exchange Data between each other.