xmpp for ruby (xmpp4r)

17
XMPP4R XMPP/Jabber library for Ruby Harisankar P S @coder_hsps http://xmpp4r.github.io http://github.com/xmpp4r/xmpp4r

Upload: harisankar-ps

Post on 01-Jul-2015

562 views

Category:

Technology


0 download

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

Page 1: XMPP for Ruby (xmpp4r)

XMPP4RXMPP/Jabber library for Ruby

Harisankar P S@coder_hsps

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

Page 2: XMPP for Ruby (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.)

Page 3: XMPP for Ruby (xmpp4r)

● 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 :)

Page 4: XMPP for Ruby (xmpp4r)

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.

Page 5: XMPP for Ruby (xmpp4r)

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.

Page 6: XMPP for Ruby (xmpp4r)

I went to google

And it said?

Page 7: XMPP for Ruby (xmpp4r)

● 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.

Page 8: XMPP for Ruby (xmpp4r)

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

was like....

Page 9: XMPP for Ruby (xmpp4r)

Jabber!!! Not again...

Page 10: XMPP for Ruby (xmpp4r)

● 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.

Page 11: XMPP for Ruby (xmpp4r)

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

Page 12: XMPP for Ruby (xmpp4r)

● 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!!!.

Page 13: XMPP for Ruby (xmpp4r)

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

Page 14: XMPP for Ruby (xmpp4r)

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 :)

Page 15: XMPP for Ruby (xmpp4r)

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

Page 16: XMPP for Ruby (xmpp4r)

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 :)

Page 17: XMPP for Ruby (xmpp4r)

Thank you