SlideShare ist ein Scribd-Unternehmen logo
1 von 17
XMPP4R
XMPP/Jabber library for Ruby
Harisankar P S
@coder_hsps
http://xmpp4r.github.io
http://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

Weitere Àhnliche Inhalte

Andere mochten auch

Sponsor presentation
Sponsor presentationSponsor presentation
Sponsor presentationHarisankar P S
 
Geom10.1-10.2
Geom10.1-10.2Geom10.1-10.2
Geom10.1-10.2kquarton
 
Geom2.6-2.7
Geom2.6-2.7Geom2.6-2.7
Geom2.6-2.7kquarton
 
CI-Reports Ver. 0.1-intro
CI-Reports Ver. 0.1-introCI-Reports Ver. 0.1-intro
CI-Reports Ver. 0.1-introIppei Akiya
 
Sean seshadri news
Sean seshadri newsSean seshadri news
Sean seshadri newsmarry2life
 
Geom4-3
Geom4-3Geom4-3
Geom4-3kquarton
 
Geom2-4hour3
Geom2-4hour3Geom2-4hour3
Geom2-4hour3kquarton
 
Geom9-4
Geom9-4Geom9-4
Geom9-4kquarton
 
Geom10.6
Geom10.6Geom10.6
Geom10.6kquarton
 
Geom2-6hour3
Geom2-6hour3Geom2-6hour3
Geom2-6hour3kquarton
 
Sean seshadri speculative portfolio's
Sean seshadri   speculative portfolio'sSean seshadri   speculative portfolio's
Sean seshadri speculative portfolio'smarry2life
 

Andere mochten auch (11)

Sponsor presentation
Sponsor presentationSponsor presentation
Sponsor presentation
 
Geom10.1-10.2
Geom10.1-10.2Geom10.1-10.2
Geom10.1-10.2
 
Geom2.6-2.7
Geom2.6-2.7Geom2.6-2.7
Geom2.6-2.7
 
CI-Reports Ver. 0.1-intro
CI-Reports Ver. 0.1-introCI-Reports Ver. 0.1-intro
CI-Reports Ver. 0.1-intro
 
Sean seshadri news
Sean seshadri newsSean seshadri news
Sean seshadri news
 
Geom4-3
Geom4-3Geom4-3
Geom4-3
 
Geom2-4hour3
Geom2-4hour3Geom2-4hour3
Geom2-4hour3
 
Geom9-4
Geom9-4Geom9-4
Geom9-4
 
Geom10.6
Geom10.6Geom10.6
Geom10.6
 
Geom2-6hour3
Geom2-6hour3Geom2-6hour3
Geom2-6hour3
 
Sean seshadri speculative portfolio's
Sean seshadri   speculative portfolio'sSean seshadri   speculative portfolio's
Sean seshadri speculative portfolio's
 

Ähnlich wie XMPP for Ruby (xmpp4r)

Real time system_performance_mon
Real time system_performance_monReal time system_performance_mon
Real time system_performance_monTomas Doran
 
On Rabbits and Elephants
On Rabbits and ElephantsOn Rabbits and Elephants
On Rabbits and ElephantsGavin Roy
 
OSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLove
OSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLoveOSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLove
OSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLoveNETWAYS
 
Techhub Riga - tm 27.07
Techhub Riga - tm  27.07Techhub Riga - tm  27.07
Techhub Riga - tm 27.07Toms BauÄŁis
 
Drupal 8: Huge wins, a Bigger Community, and why you (and I) will Love it
Drupal 8: Huge wins, a Bigger Community, and why you (and I) will Love itDrupal 8: Huge wins, a Bigger Community, and why you (and I) will Love it
Drupal 8: Huge wins, a Bigger Community, and why you (and I) will Love itRyan Weaver
 
Cooking a rabbit pie
Cooking a rabbit pieCooking a rabbit pie
Cooking a rabbit pieTomas Doran
 
Mongodb, Node.js and You: PART I
Mongodb, Node.js and You: PART IMongodb, Node.js and You: PART I
Mongodb, Node.js and You: PART IMitch Pirtle
 
Bringing Open-Source Practices to Your Day Job
Bringing Open-Source Practices to Your Day JobBringing Open-Source Practices to Your Day Job
Bringing Open-Source Practices to Your Day JobBen Coe
 
Deep Learning Applications (dadada2017)
Deep Learning Applications (dadada2017)Deep Learning Applications (dadada2017)
Deep Learning Applications (dadada2017)Abhishek Thakur
 
Beyond the Hype: 4 Years of Go in Production
Beyond the Hype: 4 Years of Go in ProductionBeyond the Hype: 4 Years of Go in Production
Beyond the Hype: 4 Years of Go in ProductionC4Media
 
Building Better FLOSS Community Relationships @ FB
Building Better  FLOSS Community Relationships @ FBBuilding Better  FLOSS Community Relationships @ FB
Building Better FLOSS Community Relationships @ FBDavide Cavalca
 
From No Git to 3000 GitHub Users and How to Keep Them Happy - GitHub Universe...
From No Git to 3000 GitHub Users and How to Keep Them Happy - GitHub Universe...From No Git to 3000 GitHub Users and How to Keep Them Happy - GitHub Universe...
From No Git to 3000 GitHub Users and How to Keep Them Happy - GitHub Universe...Dan Cundiff
 
Erlang factory SF 2011 "Erlang and the big switch in social games"
Erlang factory SF 2011 "Erlang and the big switch in social games"Erlang factory SF 2011 "Erlang and the big switch in social games"
Erlang factory SF 2011 "Erlang and the big switch in social games"Paolo Negri
 
Erlang, the big switch in social games
Erlang, the big switch in social gamesErlang, the big switch in social games
Erlang, the big switch in social gamesWooga
 
Joyent circa 2006 (Scale with Rails)
Joyent circa 2006 (Scale with Rails)Joyent circa 2006 (Scale with Rails)
Joyent circa 2006 (Scale with Rails)bcantrill
 
Generating Sequences with Deep LSTMs & RNNS in julia
Generating Sequences with Deep LSTMs & RNNS in juliaGenerating Sequences with Deep LSTMs & RNNS in julia
Generating Sequences with Deep LSTMs & RNNS in juliaAndre Pemmelaar
 
Black Ops Testing Workshop from Agile Testing Days 2014
Black Ops Testing Workshop from Agile Testing Days 2014Black Ops Testing Workshop from Agile Testing Days 2014
Black Ops Testing Workshop from Agile Testing Days 2014Alan Richardson
 
Web Hooks and the Programmable World of Tomorrow
Web Hooks and the Programmable World of TomorrowWeb Hooks and the Programmable World of Tomorrow
Web Hooks and the Programmable World of TomorrowJeff Lindsay
 
MPI, Erlang and the web
MPI, Erlang and the webMPI, Erlang and the web
MPI, Erlang and the webLenz Gschwendtner
 

Ähnlich wie XMPP for Ruby (xmpp4r) (20)

Real time system_performance_mon
Real time system_performance_monReal time system_performance_mon
Real time system_performance_mon
 
On Rabbits and Elephants
On Rabbits and ElephantsOn Rabbits and Elephants
On Rabbits and Elephants
 
OSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLove
OSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLoveOSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLove
OSDC 2015: Kris Buytaert | From ConfigManagementSucks to ConfigManagementLove
 
Techhub Riga - tm 27.07
Techhub Riga - tm  27.07Techhub Riga - tm  27.07
Techhub Riga - tm 27.07
 
Drupal 8: Huge wins, a Bigger Community, and why you (and I) will Love it
Drupal 8: Huge wins, a Bigger Community, and why you (and I) will Love itDrupal 8: Huge wins, a Bigger Community, and why you (and I) will Love it
Drupal 8: Huge wins, a Bigger Community, and why you (and I) will Love it
 
Cooking a rabbit pie
Cooking a rabbit pieCooking a rabbit pie
Cooking a rabbit pie
 
Nodeconf npm 2011
Nodeconf npm 2011Nodeconf npm 2011
Nodeconf npm 2011
 
Mongodb, Node.js and You: PART I
Mongodb, Node.js and You: PART IMongodb, Node.js and You: PART I
Mongodb, Node.js and You: PART I
 
Bringing Open-Source Practices to Your Day Job
Bringing Open-Source Practices to Your Day JobBringing Open-Source Practices to Your Day Job
Bringing Open-Source Practices to Your Day Job
 
Deep Learning Applications (dadada2017)
Deep Learning Applications (dadada2017)Deep Learning Applications (dadada2017)
Deep Learning Applications (dadada2017)
 
Beyond the Hype: 4 Years of Go in Production
Beyond the Hype: 4 Years of Go in ProductionBeyond the Hype: 4 Years of Go in Production
Beyond the Hype: 4 Years of Go in Production
 
Building Better FLOSS Community Relationships @ FB
Building Better  FLOSS Community Relationships @ FBBuilding Better  FLOSS Community Relationships @ FB
Building Better FLOSS Community Relationships @ FB
 
From No Git to 3000 GitHub Users and How to Keep Them Happy - GitHub Universe...
From No Git to 3000 GitHub Users and How to Keep Them Happy - GitHub Universe...From No Git to 3000 GitHub Users and How to Keep Them Happy - GitHub Universe...
From No Git to 3000 GitHub Users and How to Keep Them Happy - GitHub Universe...
 
Erlang factory SF 2011 "Erlang and the big switch in social games"
Erlang factory SF 2011 "Erlang and the big switch in social games"Erlang factory SF 2011 "Erlang and the big switch in social games"
Erlang factory SF 2011 "Erlang and the big switch in social games"
 
Erlang, the big switch in social games
Erlang, the big switch in social gamesErlang, the big switch in social games
Erlang, the big switch in social games
 
Joyent circa 2006 (Scale with Rails)
Joyent circa 2006 (Scale with Rails)Joyent circa 2006 (Scale with Rails)
Joyent circa 2006 (Scale with Rails)
 
Generating Sequences with Deep LSTMs & RNNS in julia
Generating Sequences with Deep LSTMs & RNNS in juliaGenerating Sequences with Deep LSTMs & RNNS in julia
Generating Sequences with Deep LSTMs & RNNS in julia
 
Black Ops Testing Workshop from Agile Testing Days 2014
Black Ops Testing Workshop from Agile Testing Days 2014Black Ops Testing Workshop from Agile Testing Days 2014
Black Ops Testing Workshop from Agile Testing Days 2014
 
Web Hooks and the Programmable World of Tomorrow
Web Hooks and the Programmable World of TomorrowWeb Hooks and the Programmable World of Tomorrow
Web Hooks and the Programmable World of Tomorrow
 
MPI, Erlang and the web
MPI, Erlang and the webMPI, Erlang and the web
MPI, Erlang and the web
 

KĂŒrzlich hochgeladen

A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusZilliz
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Navi Mumbai Call Girls đŸ„° 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls đŸ„° 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls đŸ„° 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls đŸ„° 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024The Digital Insurer
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 

KĂŒrzlich hochgeladen (20)

A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Navi Mumbai Call Girls đŸ„° 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls đŸ„° 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls đŸ„° 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls đŸ„° 8617370543 Service Offer VIP Hot Model
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 

XMPP for Ruby (xmpp4r)

  • 1. XMPP4R XMPP/Jabber library for Ruby Harisankar P S @coder_hsps http://xmpp4r.github.io http://github.com/xmpp4r/xmpp4r
  • 2. 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.)
  • 3. ● 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 :)
  • 4. 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.
  • 5. 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.
  • 6. I went to google And it said?
  • 7. ● 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.
  • 8. I asked other Ruby Developers how they worked with jabber, and there response was like....
  • 10. ● 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.
  • 11. Well hearing all this I decide to build a solution, of our own. (Reinvent the wheel)
  • 12. ● 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!!!.
  • 13. 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
  • 14. 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 :)
  • 15. 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
  • 16. 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 :)