XMPP for Ruby (xmpp4r)

Post on 01-Jul-2015

559 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Presentation about XMPP4R ruby gem, which was taken during the Kerala Ruby User Group Meetup. The idea was to invite more developers into the project maintenance and development.

Transcript

XMPP4RXMPP/Jabber library for Ruby

Harisankar P S@coder_hsps

http://xmpp4r.github.iohttp://github.com/xmpp4r/xmpp4r

XMPP

● Exchange Message and Presence Protocol used in communications

● Its a collection of standards that specify how a near real time communication system can be build

● Its an open standard ● Popular companies that provide xmpp services are

google, facebook, microsoft, AOL, CISCO (they own Jabber Inc.)

● Thus you can use it to build network and cross network chat system

● You can use it to build a notification system for your site, which is accessible even outside your site.

● You can use it to build twitter :)

My experience with XMPP

One day a client of ours asked us, can we build a chat system for his CRM.

● I said yes, it sounds simple. I can build one using web sockets.

Then he asked ”can you build it using Jabber so that I can add my clients directly into it rather than make them register again”.

● Jabber. Hmm, I have never used them, but I have heard about them. It might be possible, but let me do a bit of research and get back to you.

I went to google

And it said?

● There is Jabber4R– Last released August 14, 2005

● There is XMPP4r– Last released July 15, 2009

● Bunch of gems that implemented parts of the protocol were rubybosh, bosh4r, etc but not the entire protocol

– Well what I wanted was BOSH as well.

I asked other Ruby Developers how they worked with jabber, and there response

was like....

Jabber!!! Not again...

● Better not use jabber its hard to work with.● Almost all responded. We used, xmpp4r, but it

doesn't work much any more. So we hacked what we wanted.

● Not a complete solution, we just used what we could get.

Well hearing all this I decide to build a solution, of our own. (Reinvent the wheel)

● But as I started it made me realize

I have this problem, people before me had this problem and people after will continue to have these problems.

Why not fix it for everyone!!!.

History of XMPP4R

● Initial release was in early 2005● It implemented the standard, and did nothing more

than what the standard demanded● Despite being unmaintained, all the things it did do.

It did them well.● Original author: Lucas Nussbaum

So what we did?● Started to update xmpp4r.● Got in touch with Lucas, who transferred the

ownership of the gem at rubygems to me● Created a new website● updated the readme and documentation● Started looking around at various forks of xmpp4r.

– Every forked tried to fix one part of the system

– Those we felt were good fixes, we asked them to send a pull request

– Asked them if they could help updating the original gem :)

RoadMap XMPP4R

● Update the test Spec (Make Travis Green)● Update the gem to work well with ruby 1.9 and 2.0● Initial support for ruby 2.1 (not a priority) ● Update the examples

Expected release of the next major release by, End of October, 2013

Point of the presentation?

● So the idea I which to share is, rather than releasing new gems, restarting old un-maintained projects is also a form of contribution to opensource so:

– Take up old unmaintained open source projects

– Because in opensource no projects are really dead.

– And if are interested, fork and start contributing to xmpp4r :)

Thank you

top related