Open Source Contribution: XMPP Module for React Native

Working with React Native, a relatively new Mobile App development framework has overall been a great experience for our development team. However one of the common complaints of developers about react native has been lack of off-the-shelf libs/modules for certain use-cases e.g. a mature XMPP client lib/module.

To tackle this, our development team decided to port an existing lightweight javascript XMPP library to React Native. There were obviously issues related to dependency on core as well as third party modules as explained in a post – http://coditation.com/using-node-modules-with-react-native/. Over the last few days, Development team has painstakingly worked with the legacy module code and changed several pieces – most notably the XML Parser. As we worked with the lib/module, we also realized that there were several pesky bugs in the original module. We spent few days solving some of those issues and adding few more features.

Today, we have open sourced the library/module (https://github.com/Coditation/reactnative-xmpp) which should hopefully help developers working on react native apps, especially those who are doing chat implementation.

This lib/module is a work in progress and is a barebones XMPP client library at the moment. It should still be enough to get some functional XMPP implementation in React Native started. Our development team intends to continue contributing towards further development of the library in coming days and months. Following is a very high level and a draft roadmap for the lib –

  • Add unit tests
  • Support SASL and Digest-MD5 based Auth. The lib/module currently supports plain auth.
  • Implement handling of use-cases such as MUC Invitation, Subscription IQ etc.
  • Fork/branch to implement new template driven design
  • Achieve feature complete wrt core XMPP spec and XMPP MUC specs

 

Coditation Systems

One Comments

Leave a Reply