Ejabberd
Template:Short description Template:Lowercase {{#invoke:Infobox|infobox}}Template:Template other{{#invoke:Check for unknown parameters | check | showblankpositional=1 | unknown = Template:Main other | preview = Page using Template:Infobox software with unknown parameter "_VALUE_"|ignoreblank=y | AsOf | author | background | bodystyle | caption | collapsetext | collapsible | developer | discontinued | engine | engines | genre | included with | language | language count | language footnote | latest preview date | latest preview version | latest release date | latest release version | latest_preview_date | latest_preview_version | latest_release_date | latest_release_version | licence | license | logo | logo alt | logo caption | logo upright | logo size | logo title | logo_alt | logo_caption | logo_upright | logo_size | logo_title | middleware | module | name | operating system | operating_system | other_names | platform | programming language | programming_language | released | replaced_by | replaces | repo | screenshot | screenshot alt | screenshot upright | screenshot size | screenshot title | screenshot_alt | screenshot_upright | screenshot_size | screenshot_title | service_name | size | standard | title | ver layout | website | qid }}Template:Main other ejabberd is an Extensible Messaging and Presence Protocol (XMPP) application server and an MQ Telemetry Transport (MQTT) broker, written mainly in the Erlang programming language. It can run under several Unix-like operating systems such as macOS, Linux, FreeBSD, NetBSD, OpenBSD and OpenSolaris. Additionally, ejabberd can run under Microsoft Windows. The name ejabberd stands for Erlang Jabber Daemon (Jabber being a former name for XMPP) and is written in lowercase only, as is common for daemon software.
ejabberd is free software, distributed under the terms of the GNU GPL-2.0-or-later. Template:Asof, it is one of the most popular open source applications written in Erlang.<ref>Francesco Cesarini, Simon Thompson, Erlang Programming, O'Reilly Media, 2009, Template:ISBN, p. 2</ref> XMPP: The Definitive Guide (O'Reilly Media, 2009) praised ejabberd for its scalability and clustering feature, at the same time pointing out that being written in Erlang is a potential acceptance issue for users and contributors.<ref>Peter Saint-André, Kevin Smith, Remko Tronçon, XMPP: The Definitive Guide: Building Real-Time Applications with Jabber Technologies, O'Reilly Media, 2009, Template:ISBN, p. 253</ref> The software's creator, Alexey Shchepin was awarded the Erlang User of the Year award at the 2006 Erlang user conference.<ref name="erlang">{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>
ejabberd has a number of notable deployments, IETF Groupchat Service,<ref name="ietf">{{#invoke:citation/CS1|citation |CitationClass=web }}</ref><ref name="imtrends_a">{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> BBC Radio LiveText,<ref name="bbc">{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> Nokia's Ovi,<ref name="imtrends">{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> KDE Talk<ref name="kdetalk">KDETalk.net, the KDE XMPP server</ref> and one in development at Facebook.<ref name="cufp.galois">{{#invoke:citation/CS1|citation |CitationClass=web }}</ref><ref name="gigaom">{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> Template:As of ejabberd is the most popular server among smaller XMPP-powered sites that register on xmpp.org.<ref name="xmpp">Public XMPP Services</ref>
With the next major release after version 2 (previously called ejabberd 3), the versioning scheme was changed to reflect release dates as "Year.Month-Revision" (starting with 13.04-beta1). It was also announced that further development will be split into an "ejabberd Community Server" and an "ejabberd Commercial Edition [which] targets carriers, websites, service providers, large corporations, universities, game companies, that need high level of commitment from ProcessOne, stability and performance and a unique set of features to run their business successfully."<ref name="ml-rel-13-03-beta1">ejabberd Community Server 13.03 ejabberd mailing list, posted by Mickaël Rémond. 2013-03-22. Retrieved 2013-06-02.</ref>
Project historyEdit
Alexey Shchepin started ejabberd in November 2002<ref>Initial revision</ref> for three main reasons: success with Tkabber (his previous project, an XMPP client), a rather unstable first alpha release of jabberd2, and his wish to play with Erlang features. Shchepin has stated that he would have not started ejabberd without Erlang.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> Ejabberd hit version 1.0 in December 2005.<ref>For full release history, see https://ejabberd.im/releases</ref>
FeaturesEdit
ejabberd has a high level of compliance with XMPP.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> It provides a web interface which can be translated into other languages. ejabberd supports distributed computing by clustering, supports live upgrades,<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> shared roster groups and provides support for virtual hosts. Database management systems supported include PostgreSQL and MySQL, and ODBC is supported for connectivity to other systems. LDAP authentication is supported, as is login via SSL/TLS, SASL and STARTTLS.
ejabberd is extensible via modules, which can provide support for additional capabilities such as saving offline messages, connecting with IRC channels, or a user database which makes use of user's vCards (saving vCards in LDAP or an ODBC compatible database is possible with other modules). In addition, modules can provide support for extensions of the XMPP protocol, such as MUC,<ref>XMPP.ORG, "XEP-0045: Multi-User Chat"</ref> HTTP polling, Publish-Subscribe, and gathering statistics via XMPP.
Starting with version 2.0.0 ejabberd also includes support for the Proxy65 file transfer proxy which enabled Jabber/XMPP users behind firewalls to share files through a SOCKS 5 proxy.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>
ejabberd can communicate with other XMPP servers and with non-XMPP instant messaging networks as well, using a special type of XMPP component called transport or gateway.
Distribution methodsEdit
In addition to the source code package and binary installers for Linux, macOS, and Windows,<ref>ejabberd Download Archive</ref> ejabberd is also available in several operating system distributions as is typical in FOSS, including Debian, Fedora, Gentoo, Ubuntu, Arch Linux, OpenSolaris, FreeBSD Ports, OpenBSD ports, NetBSD port and Mac OS X's Fink.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref><ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>
Other methods in which ejabberd is available are the TurnKey Linux Virtual Appliance Library<ref>TurnKey Linux Appliance for XMPP and Web Chat Template:Webarchive</ref> and Comprehensive Erlang Archive Network (CEAN).<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> An old version of ejabberd is included in the Unison unified communications software.
Notable deploymentsEdit
ejabberd is known to be used by XMPP-related sites and a number of companies, either for providing an XMPP instant messaging service, as a meeting chat room service, or as middleware for other software (usually by means of the Publish-Subscribe service).
XMPP servers deployed for XMPP-related sites are usually run using ejabberd, both in case of large and small servers. One large public XMPP servers runs ejabberd: the Russian jabber.ru,<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> that handles between 10,000 and 20,000 concurrent users at any time.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> Among smaller XMPP-related sites, ejabberd is also the most popular server.<ref name="xmpp" /> When not taking into account the size or nature of the server, ejabberd is also the most widely deployed: according to IMtrends report from July 2008 based in automated server detection, 37% of 7292 servers were running ejabberd; the second position being jabberd14 with 22.4% and the third Openfire with 18.4%.<ref>Usage estimation of public XMPP servers per domain</ref>
Among generic instant messaging deployments are ISPs like the Portuguese SAPO,<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> and the German United Internet for services like GMX and Web.de.<ref>GMX bringt eigenen Instant Messenger heraus</ref><ref>GMX plant Instant-Messenger für viele Protokolle</ref><ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> The Russian search engine Yandex uses a highly modified version of ejabberd, named Yabberd.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> Nokia's Ovi uses ejabberd with some customizations.<ref name="imtrends" /> Major League Baseball offers instant messaging and chatrooms using a customized ejabberd.<ref>Hitting a home run with IM</ref><ref>Major League of Baseball teams up with ProcessOne to deploy large scale chat system</ref> Mxit was a large server for mobile instant messaging client that started using ejabberd in 2005, but was replaced with a custom IM engine.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> Universities known to use ejabberd include: Saint Petersburg State University,<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> Taganrog State University<ref>XMPP TSURE Server Template:Webarchive</ref><ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> and the Division of Information Technology of the University of Wisconsin–Madison.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>
In the FOSS world, there is a pair of notable generic deployments of ejabberd, namely the KDE Talk<ref name="kdetalk" /> and the Fellowship of the Free Software Foundation Europe.<ref>FSFE Jabber wiki Template:Webarchive</ref><ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>
ejabberd chatroom feature provides the IETF Groupchat Service, used by the various working groups, areas, and BOF sessions during meetings and at other times.<ref name="ietf" /><ref name="imtrends_a" />
Other deployments use ejabberd in more novel ways. For instance, BBC Radio LiveText uses ejabberd's Publish-Subscribe service to synchronously broadcast text content with the radio stream.<ref name="bbc" /> sameplace.cc is a Mozilla Firefox extension that integrates Jabber/XMPP in the web browser, and uses ejabberd for the XMPP server.<ref>Back in game Template:Webarchive</ref><ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> Other deployments include Chesspark (online chess playing site),<ref>Choosing An XMPP Server</ref> Collecta (real-time search),<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> and Notifixious (notifications of website subscriptions).<ref>Switch from Openfire to Ejabberd: done! Template:Webarchive</ref>
One Laptop per Child's School server uses ejabberd with OLPC-specific patches as the instant messaging server.<ref>Run a jabber server</ref>
In 2008 Facebook announced that they will support XMPP for their chat service. Facebook developers made a presentation on the topic at Commercial Users of Functional Programming (CUFP) 2009 conference,<ref name="cufp.galois" /> and in November 2009 chat.facebook.com was detected as running a modified version of ejabberd. Om Malik commented on the development as "disruptive" competition for "older IM networks such as AOL's AIM and Microsoft's MSN".<ref name="gigaom" /> On Feb 10th 2010, the Facebook blog announced the opening of the XMPP interface to Facebook chat,<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> based on ejabberd.
Another social media and blogging service that uses ejabberd is LiveJournal Talk.<ref>New LJTalk server Template:Webarchive</ref><ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> The Spanish-focused Tuenti social network uses a modified ejabberd to provide a live chat service.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>
The worldwide jabber.org XMPP server, with a userbase of 330,000 users<ref>Server Migration Coming Soon Template:Webarchive</ref> and 15,000 users online at any one time in December 2009,<ref>At the jabber.org service we typically have ~15,000 users online at any one time</ref> have used ejabberd since February 2006<ref>e-jabbering Template:Webarchive</ref><ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> until January 2010.<ref>To Our Users Template:Webarchive</ref> (In 2010 Jabber.org migrated to M-Link XMPP server from Isode Limited.<ref>Update from jabber.org</ref>)
Nintendo Switch uses ejabberd in its "Nintendo Switch Push Notification infrastructure" (NPNS) handling 10 million simultaneous connections.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>
Publications and receptionEdit
Two articles are published about ejabberd in magazines: "Démarrer avec ejabberd" in the French magazine PROgrammez!<ref>"Démarrer avec ejabberd" at magazine PROgrammez!</ref> and "Passing notes in class", a post in Free Software Magazine.<ref>"Passing notes in class" at Free Software Magazine Template:Webarchive</ref>
Computerworld Australia interviewed Erlang creator Joe Armstrong in June 2009,<ref>The A-Z of Programming Languages: Erlang</ref> and he referred to ejabberd in this way:
- Q: "What's the most interesting program(s) you've seen written with Erlang for business?"
- A: "That's difficult to answer, there are many good applications. Possibly Ejabberd which is an open-source Jabber/XMPP instant messaging server. Ejabberd appears to be the market leading XMPP server and things like Google Wave which runs on top of XMPP will probably attract a lot of people into building applications on XMPP servers."
Builder Australia interviewed Andre Pang in September 2007,<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> and referred to ejabberd in those terms: "the apps that Erlang is suited for really aren't CPU bound that often, if you look at ejabberd, it serves some absolutely crazy amount of concurrent connections, well over 100,000, and they're running it on, I'm not sure, but it's something like a Quad core XEON machine."
ejabberd is mentioned in several books related to the XMPP protocol and the Erlang language. XMPP: The Definitive Guide (O'Reilly Media, 2009) refers to ejabberd in those terms: The server is well-known for its scalability, and it can be clustered across multiple instances.<ref>Peter Saint-André, Kevin Smith, and Remko Tronçon's XMPP: The Definitive Guide</ref> A 2006 internal review paper in the IT department of Cambridge University found it the best choice amongst Jabber servers.<ref>Tony Finch, University of Cambridge Computing Service, [1], p. 4</ref> In the same year Alexey Shchepin was awarded the "User of the Year" award at the 12th International Erlang/OTP User Conference.<ref name="erlang" />
Other published books that mention ejabberd are:
- "Programming Erlang: Software for a Concurrent World" (Pragmatic Bookshelf, 2008)<ref>Joe Armstrong (Pragmatic Bookshelf, 2007, Template:ISBN)</ref>
- "Erlang Programming: A Concurrent Approach to Software Development" (O'Reilly Media, 2009)<ref>Francesco Cesarini, Simon J. Thompson (O'Reilly Media, 2009. Template:ISBN) - Template:Usurped</ref>
- "Openfire Administration: A practical step-by-step guide to rolling out a secure Instant Messaging service over your network" (Packt Publishing, 2008)<ref>Mayank Sharma's Openfire Administration: A practical step-by-step guide to rolling out a secure Instant Messaging service over your network</ref>
- "Fedora 11 and Red Hat Enterprise Linux Bible" (Wiley, 2009)<ref>Christopher Negus's Fedora 11 and Red Hat Enterprise Linux Bible</ref>
ejabberd was used in research works of papers published in international conferences proceedings and journals:
- XMPP for cloud computing in bioinformatics supporting discovery and invocation of asynchronous web services<ref>Template:Cite journal</ref>
- Kestrel: an XMPP-based framework for many task computing applications<ref>Template:Cite conference</ref>
- IM'ing overload: Libraryh3lp to the rescue<ref>Template:Cite journal</ref>
- Towards an Enhanced Adaptability and Usability of Web-Based Collaborative Systems<ref>Template:Cite journalTemplate:Dead link</ref>
- Leveraging Visual Tailoring and Synchronous Awareness in Web-Based Collaborative Systems<ref>Template:Cite conference</ref>
- Adding New Communication Services to the FIPA Message Transport System<ref>Template:Cite book</ref>
There are four patent applications published in the United States Patent and Trademark Office that involve ejabberd:
- US 2007/0271367 A1: Systems and Methods for Location-Based Social Web Interaction and Instant Messaging System<ref>
Patent US 2007/0271367 A1 in Google Patents Template:Webarchive Application Number: 11/796,304 Filing Date: 27 Apr 2007 Publication Number: US 2007/0271367 A1 Publication Date: 22 Nov 2007 Inventors: Zohar Yardeni, John Londono </ref><ref>Patent US 2007/0271367 A1 in Free Patents Online</ref>
- US 2008/0062969 A1: Instant Message Call Connect System Apparatus and Database<ref>
Patent US 2008/0062969 A1 in Google Patents Template:Webarchive Application Number: 11/853,640 Filing Date: 11 Sep 2007 Publication Number: US 2008/0062969 A1 Publication Date: 13 Mar 2008 Inventors: Donald Picard, Robert DeBenedictis, Jose Capo, Ray Jimenez Assignee: Common Voices </ref>
- US 2008/0062970 A1: Instant Message Call Connect System Method and Interface<ref>Patent US 2008/0062970 A1 in Google Patents
Application Number: 11/853,642 Filing Date: 11 Sep 2007 Publication Number: US 2008/0062970 A1 Publication Date: 13 Mar 2008 Inventors: Donald Picard, Robert DeBenedictis, Jose Capo, Ray Jimenez Assignee: Common Voices </ref><ref>Patent US 2008/0062970 A1 in Free Patents Online</ref>
- US 2008/0235189 A1: System for Searching for Information Based on Personal Interactions and Presences and Methods Thereof<ref>Patent US 2008/0235189 A1 in Free Patents Online
Application Number: 11/855,851 Filing Date: 14 Sep 2007 Publication Number: US 2008/0235189 A1 Publication Date: 25 Sep 2008 Iventors: Drew Rayman, Brad Alperin, Timothy Driscoll, Stuart Goldstein, David Levin, Benjamin Simon</ref>