Ejabberd
ejabberd is an XMPP application server, written mainly in the Erlang programming language. It can run under Microsoft Windows and several Unix-like operating systems such as Mac OS X, GNU/Linux, FreeBSD, and NetBSD. 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 General Public License.
Features
ejabberd has a high level of compliance with XMPP<ref>Template:Cite web</ref>. It provides a web interface which can be translated into other languages. ejabberd supports distributed computing by clustering, supports live upgrades<ref>Template:Cite 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, 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 users behind firewalls to share files through a SOCKS 5 proxy<ref>Template:Cite 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 Methods
In addition to the source code package and binary installers for GNU/Linux, Mac OS X, 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, FreeBSD Ports, NetBSD port, and Mac OS X's Fink<ref>ejabberd downloads counter with links to OS distributions</ref>.
Other methods in which ejabberd is available are the TurnKey Linux Virtual Appliance Library<ref>TurnKey Linux Appliance for XMPP and Web Chat</ref> and Comprehensive Erlang Archive Network (CEAN)<ref>CEAN package for ejabberd</ref>.
Notable Deployments
ejabberd is known to be used by Jabber-related sites and a number of companies, either for providing a Jabber 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 Jabber-related sites are usually ran using ejabberd, both in case of large and small servers. Two large public XMPP servers run ejabberd: the russian jabber.ru<ref>online verification of jabber.ru XMPP server software</ref>, that handles between 10,000 and 20,000 concurrent users at any time<ref>online statistics of jabber.ru XMPP server</ref>, and the worldwide jabber.org XMPP server with an userbase of 330,000 users in December 2009<ref>Server Migration Coming Soon</ref> which typically has around 15,000 users online at any one time<ref>At the jabber.org service we typically have ~15,000 users online at any one time</ref> uses ejabberd since February 2006<ref>e-jabbering</ref> <ref>Template:Cite web</ref> until a migration expected for 2010<ref>Migration Delayed</ref>. Among smaller Jabber-related sites, ejabberd is also the most popular server<ref>Public XMPP Services</ref>. 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>Template:Cite 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>online verification of gmx.de XMPP services</ref>. The russian search engine Yandex uses a highly modified version of ejabberd, conveniently named Yabberd<ref>online verification of yandex.ru running yabberd</ref>. Nokia's Ovi uses ejabberd with some customizations<ref>online verification of ovi.com XMPP server software</ref>.
In the FOSS world, there a pair of notable generic deployments of ejabberd, namely the KDE Talk<ref>KDETalk.net, the KDE Jabber server</ref> and the Fellowship of the Free Software Foundation Europe<ref>FSFE Jabber wiki</ref> <ref>online verification of jabber.fsfe.org XMPP server</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>IETF Groupchat/Chatroom Service</ref> <ref>online verification of jabber.ietf.org service</ref>.
Other deployments use ejabberd in more novelty ways. For instance, BBC Radio LiveText uses ejabberd's Publish-Subscribe service to synchronously broadcast text content with the radio stream<ref>LiveText-via-IP upgrade and other synchronously delivered content</ref>. sameplace.cc is a Mozilla Firefox extension that integrates Jabber in the web browser, and uses ejabberd for the XMPP server<ref>Back in game</ref> <ref>online verification of sameplace.cc XMPP server</ref>. Other deployments include Chesspark (online chess playing site) <ref>Choosing An XMPP Server</ref>, Collecta (real-time search) <ref>online verification of XMPP server</ref>, and Notifixious (notifications of website subscriptions) <ref>Switch from Openfire to Ejabberd: done!</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>.
Project history
Alexey Shchepin started ejabberd in November 2002<ref>Initial revision</ref> due to three main reasons: success with Tkabber (his previous project, a Jabber client), a rather unstable first alpha release of jabberd2, and his wish to play with Erlang features (Alexey would have not started ejabberd without Erlang)<ref>aleksey speaks (interview to Alexey Shchepin)</ref>.
- 16 november 2002 : Alexey Shchepin writes the first lines of code<ref>Initial revision</ref>
- 11 february 2003 : ejabberd 0.1-alpha released<ref>http://svn.process-one.net/ejabberd/tags/ejabberd-0.1-alpha/ChangeLog</ref>
- 16 november 2003 : ejabberd 0.5 released<ref>Template:Cite web</ref>
- 13 july 2004 : ejabberd 0.7 released<ref>Template:Cite web</ref>
- 10 october 2004 : ejabberd 0.7.5 released<ref>Template:Cite web</ref>
- 18 april 2005 : ejabberd 0.9 released<ref>Template:Cite web</ref>
- 23 may 2005 : ejabberd 0.9.1 released<ref>Template:Cite web</ref>
- 1 august 2005 : ejabberd 0.9.8 released<ref>Template:Cite web</ref>
- 14 december 2005 : ejabberd 1.0.0 released<ref>Template:Cite web</ref>
- 24 april 2006 : ejabberd 1.1.0 released<ref>Template:Cite web</ref>
- 28 april 2006 : ejabberd 1.1.1 released<ref>Template:Cite web</ref>
- 27 september 2006 : ejabberd 1.1.2 released<ref>Template:Cite web</ref>
- 2 february 2007 : ejabberd 1.1.3 released<ref>Template:Cite web</ref>
- 3 september 2007 : ejabberd 1.1.4 released<ref>Template:Cite web</ref>
- 24 april 2006 : ejabberd 1.1.0 released<ref>Template:Cite web</ref>
- 21 february 2008 : ejabberd 2.0.0 released<ref>Template:Cite web</ref>
- 20 may 2008 : ejabberd 2.0.1 released<ref>Template:Cite web</ref>
- 28 august 2008 : ejabberd 2.0.2 released<ref>Template:Cite web</ref>
- 15 january 2009 : ejabberd 2.0.3 released<ref>Template:Cite web</ref>
- 13 march 2009 : ejabberd 2.0.4 released<ref>Template:Cite web</ref>
- 3 april 2009 : ejabberd 2.0.5 released<ref>Template:Cite web</ref>
- 13 november 2009 : ejabberd 2.1.0 released<ref>Template:Cite web</ref>
Publications
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" in Free Software Magazine <ref>"Passing notes in class" at Free Software Magazine</ref>
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>. Other published books that mention ejabberd are:
- "Programming Erlang: Software for a Concurrent World" (Pragmatic Bookshelf, 2008)<ref>Joe Armstrong (Pragmatic Bookshelf, 2007, ISBN 978-1-9343560-0-5)</ref>
- "Erlang Programming: A Concurrent Approach to Software Development" (O'Reilly Media, 2009)<ref>Francesco Cesarini, Simon J. Thompson (O'Reilly Media, 2009 ISBN 0-596-51818-8 | ISBN 978059651818) - Erlang Programming: A Concurrent Approach to Software Development</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>
- "Java Power Tools" (O'Reilly Media, 2008)<ref>John Ferguson Smart's Java Power Tools</ref>
- "Fedora 11 and Red Hat Enterprise Linux Bible" (Wiley, 2009)<ref>Christopher Negus's Fedora 11 and Red Hat Enterprise Linux Bible</ref>
See also
References
External links
Note: Some content on this page has been copied from Wikipedia in accordance with the CC-BY-SA license.