Brussels / 30 & 31 January 2016


Sharp.Xmpp, a multiplatform .NET XMPP client library and Android


Sharp.Xmpp is a multiplatform, Windows and Android, .NET XMPP client library. It supports IM functionality & a variety of XMPP extensions, is simple and is extensively tested against both Android and Windows platforms. It is a fork of the currently frozen excellent S22.Xmpp project. In the first part of the presentation will discuss Sharp.Xmpp capabilities, protocols supported, examples for usage and extension. The second part will focus for using Sharp.Xmpp for mobile development for Android, lessons and experiences learned. Necessary hooks, alarms, network connection events, ping time, and battery consumption information will be provided, from a Sharp.Xmpp perspective and mobile development using Mono. Sharp.Xmpp since its release has gained some uptake, since, to the best of my knowledge, it one of the very few available modern C# open source XMPP libraries currently available. Participation in the conference will help expand uptake, and its contributor base.


The library fully implements the XMPP Core and XMPP IM specifications and thus provides the basic XMPP instant messaging (IM) and presence functionality. In addition, Sharp.Xmpp offers support for most of the optional protocol extensions. More specifically, the following features are supported:

-SASL Authentication (PLAIN, DIGEST-MD5, and SCRAM-SHA-1) -User Avatars -SOCKS5 and In-Band File-Transfer -In-Band Registration -User Mood -User Tune -User Activity -Simplified Blocking

It is a fork, of the excellent but now inactive S22.Xmpp library and features:

-API designed to be very easy to use -Well documented with lots of example code -Very easy to add extensions -Open source MIT License, suitable for a wide range of business models.

The library is extensively tested for a multi platform Android/Windows project, user base has been increased, as well as patch contributors. It offers C# a versatile way to start building XMPP applications. Sharp.Xmpp for Android In the second part experiences from using Sharp.Xmpp in a mobile Android application will be provided. Android platform features will be discussed and code snippets such as:

-setting Android alarms for keep TCP connections alive, -network connection events detection, -server pings before timeouts

These will be discussed from a C# Xamarin perspective. Using techniques described connection stability and battery consumption are excellent.


Photo of Panagiotis Stathopoulos Panagiotis Stathopoulos