Difference between revisions of "Ejabberd"

From XMPP WIKI
Jump to navigation Jump to search
m
m
 
Line 1: Line 1:
'''ejabberd''' is an XMPP application server, written mainly in the Erlang programming language.
'''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.
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 (programming language)|'''E'''rlang]] [[Extensible Messaging and Presence Protocol|'''Jabber''']] [[Daemon (computer software)|'''D'''aemon]] (Jabber being a former name for XMPP), and is written in lowercase only, as is common for daemon software.
ejabberd stands for '''E'''rlang [[XMPP|'''Jabber''']] '''D'''aemon (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.
ejabberd is free software, distributed under the terms of the GNU General Public License.


== Features ==
== Features ==
ejabberd has a high level of compliance with [[Extensible Messaging and Presence Protocol|XMPP]]<ref>{{cite web | url=http://www.process-one.net/en/ejabberd/release_notes/release_note_ejabberd_100/ | title=Release Note ejabberd 1.0.0 | date=14 December 2005 | publisher=[[ProcessOne]] | accessdate=2008-03-11}}</ref>.
ejabberd has a high level of compliance with [[Extensible Messaging and Presence Protocol|XMPP]]<ref>{{cite web | url=http://www.process-one.net/en/ejabberd/release_notes/release_note_ejabberd_100/ | title=Release Note ejabberd 1.0.0 | date=14 December 2005 | publisher=ProcessOne | accessdate=2008-03-11}}</ref>.
It provides a web interface which can be [[internationalization and localization|translated]] into other languages.
It provides a web interface which can be translated into other languages.
ejabberd supports [[distributed computing]] by [[computer cluster|clustering]], supports live upgrades<ref>{{cite web | url=http://www.process-one.net/en/blogs/article/live_code_upgrade_a_must_have_feature_for_high_availability_deployments/ | title=Live code upgrade: A must-have feature for high-availability deployments | first=Mickaël | last=Rémond | date=[[July 16]] [[2007]] | publisher=[[ProcessOne]] | accessdate=2008-03-11}}</ref>, shared roster groups and provides support for [[Virtual hosting|virtual hosts]].
ejabberd supports distributed computing by clustering, supports live upgrades<ref>{{cite web | url=http://www.process-one.net/en/blogs/article/live_code_upgrade_a_must_have_feature_for_high_availability_deployments/ | title=Live code upgrade: A must-have feature for high-availability deployments | first=Mickaël | last=Rémond | date=July 16 2007 | publisher=ProcessOne | accessdate=2008-03-11}}</ref>, shared roster groups and provides support for virtual hosts.
[[Database management system]]s supported include [[PostgreSQL]] and [[MySQL]], and [[Open Database Connectivity|ODBC]] is supported for connectivity to other systems.
Database management systems supported include PostgreSQL and MySQL, and ODBC is supported for connectivity to other systems.
[[Lightweight Directory Access Protocol|LDAP]] authentication is supported, as is login via [[Transport Layer Security|SSL/TLS]], [[Simple Authentication and Security Layer|SASL]] and [[STARTTLS]].
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 [[vCard]]s (saving vCards in LDAP or an ODBC compatible database is possible with other modules).
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.
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>{{cite web | url=http://xmpp.org/extensions/xep-0065.html | title=XEP-0065: SOCKS5 Bytestreams | date=2007-05-21 | publisher=[[XMPP Standards Foundation]] | accessdate=2008-03-11}}</ref>.
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>{{cite web | url=http://xmpp.org/extensions/xep-0065.html | title=XEP-0065: SOCKS5 Bytestreams | date=2007-05-21 | publisher=[[XMPP Standards Foundation]] | accessdate=2008-03-11}}</ref>.


ejabberd can communicate with [[List of XMPP server software|other XMPP servers]] and with non-XMPP Instant Messaging networks as well, using a special type of XMPP component called transport or gateway.
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 ==
== Distribution Methods ==
In addition to the source code package and binary installers for GNU/Linux, Mac OS X, and Windows<ref>[http://www.process-one.net/en/ejabberd/archive/ 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>[http://www.process-one.net/en/ejabberd/counter/ ejabberd downloads counter with links to OS distributions]</ref>.
In addition to the source code package and binary installers for GNU/Linux, Mac OS X, and Windows<ref>[http://www.process-one.net/en/ejabberd/archive/ 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>[http://www.process-one.net/en/ejabberd/counter/ ejabberd downloads counter with links to OS distributions]</ref>.


Other methods in which ejabberd is available are the [[TurnKey Linux Virtual Appliance Library]]<ref>[http://www.turnkeylinux.org/ejabberd TurnKey Linux Appliance for XMPP and Web Chat]</ref> and Comprehensive Erlang Archive Network (CEAN)<ref>[http://cean.process-one.net/packages/index.yaws?action=detail&name=ejabberd CEAN package for ejabberd]</ref>.
Other methods in which ejabberd is available are the TurnKey Linux Virtual Appliance Library<ref>[http://www.turnkeylinux.org/ejabberd TurnKey Linux Appliance for XMPP and Web Chat]</ref> and Comprehensive Erlang Archive Network (CEAN)<ref>[http://cean.process-one.net/packages/index.yaws?action=detail&name=ejabberd CEAN package for ejabberd]</ref>.


== Notable Deployments ==
== Notable Deployments ==
Line 32: Line 32:
  | first=Peter
  | first=Peter
  | last=Saint-Andre
  | last=Saint-Andre
  | date=[[February 26]] [[2006]]
  | date=February 26 2006
  | publisher=Jabber.org
  | publisher=Jabber.org
  | accessdate=2009-12-16}}</ref> until a migration expected for 2010<ref>[http://www.jabber.org/2009/12/migration-delayed/ Migration Delayed]</ref>.
  | accessdate=2009-12-16}}</ref> until a migration expected for 2010<ref>[http://www.jabber.org/2009/12/migration-delayed/ Migration Delayed]</ref>.
Among smaller Jabber-related sites, ejabberd is also the most popular server<ref>[http://xmpp.org/services/ 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>[http://www.process-one.net/en/imtrends/article/usage_estimation_of_public_xmpp_servers_per_domain/ Usage estimation of public XMPP servers per domain]</ref>.
Among smaller Jabber-related sites, ejabberd is also the most popular server<ref>[http://xmpp.org/services/ 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>[http://www.process-one.net/en/imtrends/article/usage_estimation_of_public_xmpp_servers_per_domain/ Usage estimation of public XMPP servers per domain]</ref>.


Among generic instant messaging deployments are ISPs like the portuguese [[SAPO (company)|SAPO]]<ref>{{cite web
Among generic instant messaging deployments are ISPs like the portuguese SAPO<ref>{{cite web
  | url=http://messenger.blogs.sapo.pt/3918.html
  | url=http://messenger.blogs.sapo.pt/3918.html
  | title=Novo servidor online
  | title=Novo servidor online
  | date=2007-02-16
  | date=2007-02-16
  | publisher=pedrocs from [[SAPO]]
  | publisher=pedrocs from SAPO
  | accessdate=2009-12-17}}</ref>, and the german [[United Internet]] for services like GMX and Web.de<ref>[http://www.teltarif.de/arch/2006/kw37/s23119.html GMX bringt eigenen Instant Messenger heraus]</ref> <ref>[http://www.golem.de/0703/51124.html GMX plant Instant-Messenger für viele Protokolle]</ref> <ref>[http://www.imtrends.com/do/search_domain_simple?domain=gmx.de online verification of gmx.de XMPP services]</ref>.
  | accessdate=2009-12-17}}</ref>, and the german United Internet for services like GMX and Web.de<ref>[http://www.teltarif.de/arch/2006/kw37/s23119.html GMX bringt eigenen Instant Messenger heraus]</ref> <ref>[http://www.golem.de/0703/51124.html GMX plant Instant-Messenger für viele Protokolle]</ref> <ref>[http://www.imtrends.com/do/search_domain_simple?domain=gmx.de online verification of gmx.de XMPP services]</ref>.
The russian search engine [[Yandex]] uses a highly modified version of ejabberd, conveniently named Yabberd<ref>[http://www.imtrends.com/do/search_domain_simple?domain=yandex.ru online verification of yandex.ru running yabberd]</ref>.
The russian search engine Yandex uses a highly modified version of ejabberd, conveniently named Yabberd<ref>[http://www.imtrends.com/do/search_domain_simple?domain=yandex.ru online verification of yandex.ru running yabberd]</ref>.
[[Nokia]]'s [[Ovi (Nokia)|Ovi]] uses ejabberd with some customizations<ref>[http://www.imtrends.com/do/search_domain_simple?domain=ovi.com&x=0&y=0 online verification of ovi.com XMPP server software]</ref>.
Nokia's Ovi uses ejabberd with some customizations<ref>[http://www.imtrends.com/do/search_domain_simple?domain=ovi.com&x=0&y=0 online verification of ovi.com XMPP server software]</ref>.


In the [[Free and open source software|FOSS]] world, there a pair of notable generic deployments of ejabberd, namely the [[KDE]] Talk<ref>[http://kdetalk.net/ KDETalk.net, the KDE Jabber server]</ref> and the Fellowship of the [[Free Software Foundation Europe]]<ref>[http://wiki.fsfe.org/Jabber FSFE Jabber wiki]</ref> <ref>[http://www.imtrends.com/do/search_domain_simple?domain=jabber.fsfe.org&x=27&y=15 online verification of jabber.fsfe.org XMPP server]</ref>.
In the FOSS world, there a pair of notable generic deployments of ejabberd, namely the KDE Talk<ref>[http://kdetalk.net/ KDETalk.net, the KDE Jabber server]</ref> and the Fellowship of the Free Software Foundation Europe<ref>[http://wiki.fsfe.org/Jabber FSFE Jabber wiki]</ref> <ref>[http://www.imtrends.com/do/search_domain_simple?domain=jabber.fsfe.org&x=27&y=15 online verification of jabber.fsfe.org XMPP server]</ref>.


ejabberd chatroom feature provides the [[Internet Engineering Task Force|IETF]] Groupchat Service, used by the various working groups, areas, and BOF sessions during meetings and at other times<ref>[http://www.ietf.org/jabber/ IETF Groupchat/Chatroom Service]</ref> <ref>[http://www.imtrends.com/do/search_domain_simple?domain=jabber.ietf.org&x=0&y=0 online verification of jabber.ietf.org service]</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>[http://www.ietf.org/jabber/ IETF Groupchat/Chatroom Service]</ref> <ref>[http://www.imtrends.com/do/search_domain_simple?domain=jabber.ietf.org&x=0&y=0 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>[http://www.bbc.co.uk/blogs/radiolabs/2009/11/pushfeeds.shtml LiveText-via-IP upgrade and other synchronously delivered content]</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>[http://www.bbc.co.uk/blogs/radiolabs/2009/11/pushfeeds.shtml LiveText-via-IP upgrade and other synchronously delivered content]</ref>.
sameplace.cc is a [[Mozilla Firefox]] extension that integrates Jabber in the web browser,
sameplace.cc is a Mozilla Firefox extension that integrates Jabber in the web browser,
and uses ejabberd for the XMPP server<ref>[http://www.sameplace.cc/blogs/bard/2008/2/17/back-in-game Back in game]</ref> <ref>[http://www.imtrends.com/do/search_domain_simple?domain=sameplace.cc&x=0&y=0 online verification of sameplace.cc XMPP server]</ref>.
and uses ejabberd for the XMPP server<ref>[http://www.sameplace.cc/blogs/bard/2008/2/17/back-in-game Back in game]</ref> <ref>[http://www.imtrends.com/do/search_domain_simple?domain=sameplace.cc&x=0&y=0 online verification of sameplace.cc XMPP server]</ref>.
Other deployments include Chesspark (online chess playing site) <ref>[http://metajack.wordpress.com/2008/08/26/choosing-an-xmpp-server/ Choosing An XMPP Server]</ref>, Collecta (real-time search) <ref>[http://www.imtrends.com/do/search_domain_simple?domain=collecta.com&x=0&y=0 online verification of XMPP server]</ref>, and Notifixious (notifications of website subscriptions) <ref>[http://blog.notifixio.us/post/56167273/switch-from-openfire-to-ejabberd-done Switch from Openfire to Ejabberd: done!]</ref>.
Other deployments include Chesspark (online chess playing site) <ref>[http://metajack.wordpress.com/2008/08/26/choosing-an-xmpp-server/ Choosing An XMPP Server]</ref>, Collecta (real-time search) <ref>[http://www.imtrends.com/do/search_domain_simple?domain=collecta.com&x=0&y=0 online verification of XMPP server]</ref>, and Notifixious (notifications of website subscriptions) <ref>[http://blog.notifixio.us/post/56167273/switch-from-openfire-to-ejabberd-done Switch from Openfire to Ejabberd: done!]</ref>.


[[One Laptop per Child]]'s [[OLPC XS|School server]] uses ejabberd with OLPC-specific patches as the instant messaging server<ref>[http://wiki.laptop.org/go/Jabber_server Run a jabber server]</ref>.
One Laptop per Child's School server uses ejabberd with OLPC-specific patches as the instant messaging server<ref>[http://wiki.laptop.org/go/Jabber_server Run a jabber server]</ref>.


== Project history ==
== Project history ==
Alexey Shchepin started ejabberd in November 2002<ref>[http://github.com/processone/ejabberd/commit/3f676492be974ced486dc2eb0fab47e1db5816d2 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 (programming language)|Erlang]] features (Alexey would have not started ejabberd without Erlang)<ref>[http://blogs.openaether.org/?p=59 aleksey speaks (interview to Alexey Shchepin)]</ref>.
Alexey Shchepin started ejabberd in November 2002<ref>[http://github.com/processone/ejabberd/commit/3f676492be974ced486dc2eb0fab47e1db5816d2 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>[http://blogs.openaether.org/?p=59 aleksey speaks (interview to Alexey Shchepin)]</ref>.


* [[16 november]] [[2002]] : Alexey Shchepin writes the first lines of code<ref>[http://github.com/processone/ejabberd/commit/3f676492be974ced486dc2eb0fab47e1db5816d2 Initial revision]</ref>
* 16 november 2002 : Alexey Shchepin writes the first lines of code<ref>[http://github.com/processone/ejabberd/commit/3f676492be974ced486dc2eb0fab47e1db5816d2 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>
* 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>{{cite web | url=http://lists.jabber.ru/pipermail/ejabberd/2003-November/000052.html | title=ejabberd 0.5 released | work=ejabberd mailing list | first=Alexey | last=Shchepin | date=[[November 16]] [[2003]] | publisher=Jabber.ru | accessdate=2008-03-12}}</ref>
* 16 november 2003 : ejabberd 0.5 released<ref>{{cite web | url=http://lists.jabber.ru/pipermail/ejabberd/2003-November/000052.html | title=ejabberd 0.5 released | work=ejabberd mailing list | first=Alexey | last=Shchepin | date=November 16 2003 | publisher=Jabber.ru | accessdate=2008-03-12}}</ref>
* [[13 july]] [[2004]] : ejabberd 0.7 released<ref>{{cite web | url=http://lists.jabber.ru/pipermail/ejabberd/2004-July/000129.html | title=ejabberd 0.7 released | work=ejabberd mailing list | first=Alexey | last=Shchepin | date=[[July 13]] [[2004]] | publisher=Jabber.ru | accessdate=2008-03-12}}</ref>
* 13 july 2004 : ejabberd 0.7 released<ref>{{cite web | url=http://lists.jabber.ru/pipermail/ejabberd/2004-July/000129.html | title=ejabberd 0.7 released | work=ejabberd mailing list | first=Alexey | last=Shchepin | date=July 13 2004 | publisher=Jabber.ru | accessdate=2008-03-12}}</ref>
** [[10 october]] [[2004]] : ejabberd 0.7.5 released<ref>{{cite web | url=http://lists.jabber.ru/pipermail/ejabberd/2004-October/000337.html | title=ejabberd 0.7.5 released | work=ejabberd mailing list | first=Alexey | last=Shchepin | date=[[October 10]] [[2004]] | publisher=Jabber.ru | accessdate=2008-03-12}}</ref>
** 10 october 2004 : ejabberd 0.7.5 released<ref>{{cite web | url=http://lists.jabber.ru/pipermail/ejabberd/2004-October/000337.html | title=ejabberd 0.7.5 released | work=ejabberd mailing list | first=Alexey | last=Shchepin | date=October 10 2004 | publisher=Jabber.ru | accessdate=2008-03-12}}</ref>
* [[18 april]] [[2005]] : ejabberd 0.9 released<ref>{{cite web | url=http://lists.jabber.ru/pipermail/ejabberd/2005-April/000987.html | title=ejabberd 0.9 has been released | work=ejabberd mailing list | first=Mickael | last=Remond | date=[[April 19]] [[2005]] | publisher=Jabber.ru | accessdate=2008-03-12}}</ref>
* 18 april 2005 : ejabberd 0.9 released<ref>{{cite web | url=http://lists.jabber.ru/pipermail/ejabberd/2005-April/000987.html | title=ejabberd 0.9 has been released | work=ejabberd mailing list | first=Mickael | last=Remond | date=April 19 2005 | publisher=Jabber.ru | accessdate=2008-03-12}}</ref>
** [[23 may]] [[2005]] : ejabberd 0.9.1 released<ref>{{cite web | url=http://lists.jabber.ru/pipermail/ejabberd/2005-May/001101.html | title=ejabberd 0.9.1 has been released | work=ejabberd mailing list | first=Mickaël | last=Rémond | date=[[May 24]] [[2005]] | publisher=Jabber.ru | accessdate=2008-03-12}}</ref>
** 23 may 2005 : ejabberd 0.9.1 released<ref>{{cite web | url=http://lists.jabber.ru/pipermail/ejabberd/2005-May/001101.html | title=ejabberd 0.9.1 has been released | work=ejabberd mailing list | first=Mickaël | last=Rémond | date=May 24 2005 | publisher=Jabber.ru | accessdate=2008-03-12}}</ref>
** [[1 august]] [[2005]] : ejabberd 0.9.8 released<ref>{{cite web | url=http://lists.jabber.ru/pipermail/ejabberd/2005-August/001278.html | title=ejabberd 0.9.8 released | work=ejabberd mailing list | first=Mickael | last=Remond | date=[[August 2]] [[2005]] | publisher=Jabber.ru | accessdate=2008-03-12}}</ref>
** 1 august 2005 : ejabberd 0.9.8 released<ref>{{cite web | url=http://lists.jabber.ru/pipermail/ejabberd/2005-August/001278.html | title=ejabberd 0.9.8 released | work=ejabberd mailing list | first=Mickael | last=Remond | date=August 2 2005 | publisher=Jabber.ru | accessdate=2008-03-12}}</ref>
* [[14 december]] [[2005]] : ejabberd 1.0.0 released<ref>{{ cite web | url=http://lists.jabber.ru/pipermail/ejabberd/2005-December/001481.html | title=ejabberd 1.0.0 released: 'the XMPP compliancy release' | work=ejabberd mailing list | first=Mickael | last=Remond | date=[[december 15]] [[2005]] | publisher=Jabber.ru | accessdate=2008-03-12}}</ref>
* 14 december 2005 : ejabberd 1.0.0 released<ref>{{ cite web | url=http://lists.jabber.ru/pipermail/ejabberd/2005-December/001481.html | title=ejabberd 1.0.0 released: 'the XMPP compliancy release' | work=ejabberd mailing list | first=Mickael | last=Remond | date=december 15 2005 | publisher=Jabber.ru | accessdate=2008-03-12}}</ref>
** [[24 april]] [[2006]] : ejabberd 1.1.0 released<ref>{{cite web | url=http://lists.jabber.ru/pipermail/ejabberd/2006-April/001726.html | title=ejabberd 1.1.0 released | work=ejabberd mailing list | first=Mickael | last=Remond | date=[[April 25]] [[2006]] | publisher=Jabber.ru | accessdate=2008-03-12}}</ref>
** 24 april 2006 : ejabberd 1.1.0 released<ref>{{cite web | url=http://lists.jabber.ru/pipermail/ejabberd/2006-April/001726.html | title=ejabberd 1.1.0 released | work=ejabberd mailing list | first=Mickael | last=Remond | date=April 25 2006 | publisher=Jabber.ru | accessdate=2008-03-12}}</ref>
*** [[28 april]] [[2006]] : ejabberd 1.1.1 released<ref>{{cite web | url=http://lists.jabber.ru/pipermail/ejabberd/2006-April/001751.html | title=ejabberd 1.1.1 released | work=ejabberd mailing list | first=Mickael | last=Remond | date=[[April 29]] [[2006]] | publisher=Jabber.ru | accessdate=2008-03-12}}</ref>
*** 28 april 2006 : ejabberd 1.1.1 released<ref>{{cite web | url=http://lists.jabber.ru/pipermail/ejabberd/2006-April/001751.html | title=ejabberd 1.1.1 released | work=ejabberd mailing list | first=Mickael | last=Remond | date=April 29 2006 | publisher=Jabber.ru | accessdate=2008-03-12}}</ref>
*** [[27 september]] [[2006]] : ejabberd 1.1.2 released<ref>{{cite web | url=http://lists.jabber.ru/pipermail/ejabberd/2006-September/002209.html | title=ejabberd 1.1.2 released | work=ejabberd mailing list | first=Mickael | last=Remond | date=[[September 28]] [[2006]] | publisher=Jabber.ru | accessdate=2008-03-12}}</ref>
*** 27 september 2006 : ejabberd 1.1.2 released<ref>{{cite web | url=http://lists.jabber.ru/pipermail/ejabberd/2006-September/002209.html | title=ejabberd 1.1.2 released | work=ejabberd mailing list | first=Mickael | last=Remond | date=September 28 2006 | publisher=Jabber.ru | accessdate=2008-03-12}}</ref>
*** [[2 february]] [[2007]] : ejabberd 1.1.3 released<ref>{{cite web | url=http://lists.jabber.ru/pipermail/ejabberd/2007-February/002440.html | title=ejabberd 1.1.3 released: Security fix | work=ejabberd mailing list | first=Mickaël | last=Rémond | date=[[February 2]] [[2007]] | publisher=Jabber.ru | accessdate=2008-03-12}}</ref>
*** 2 february 2007 : ejabberd 1.1.3 released<ref>{{cite web | url=http://lists.jabber.ru/pipermail/ejabberd/2007-February/002440.html | title=ejabberd 1.1.3 released: Security fix | work=ejabberd mailing list | first=Mickaël | last=Rémond | date=February 2 2007 | publisher=Jabber.ru | accessdate=2008-03-12}}</ref>
*** [[3 september]] [[2007]] : ejabberd 1.1.4 released<ref>{{cite web | url=http://lists.jabber.ru/pipermail/ejabberd/2007-September/003051.html | title=ejabberd 1.1.4 released | work=ejabberd mailing list | first=Jérôme | last=Sautret | date=[[September 17]] [[2007]] | publisher=Jabber.ru | accessdate=2008-03-12}}</ref>
*** 3 september 2007 : ejabberd 1.1.4 released<ref>{{cite web | url=http://lists.jabber.ru/pipermail/ejabberd/2007-September/003051.html | title=ejabberd 1.1.4 released | work=ejabberd mailing list | first=Jérôme | last=Sautret | date=September 17 2007 | publisher=Jabber.ru | accessdate=2008-03-12}}</ref>
* [[21 february]] [[2008]] : ejabberd 2.0.0 released<ref>{{cite web | url=http://lists.jabber.ru/pipermail/ejabberd/2008-February/003520.html | title=ejabberd 2.0.0 has been released | work=ejabberd mailing list | first=Mickaël | last=Rémond | date=[[February 21]] [[2008]] | publisher=Jabber.ru | accessdate=2008-03-12}}</ref>
* 21 february 2008 : ejabberd 2.0.0 released<ref>{{cite web | url=http://lists.jabber.ru/pipermail/ejabberd/2008-February/003520.html | title=ejabberd 2.0.0 has been released | work=ejabberd mailing list | first=Mickaël | last=Rémond | date=February 21 2008 | publisher=Jabber.ru | accessdate=2008-03-12}}</ref>
** [[20 may]] [[2008]] : ejabberd 2.0.1 released<ref>{{cite web | url=http://lists.jabber.ru/pipermail/ejabberd/2008-May/003736.html | title=ejabberd 2.0.1 released | work=ejabberd mailing list | first=Mickaël | last=Rémond | date=[[May 22]] [[2008]] | publisher=Jabber.ru | accessdate=2008-06-22}}</ref>
** 20 may 2008 : ejabberd 2.0.1 released<ref>{{cite web | url=http://lists.jabber.ru/pipermail/ejabberd/2008-May/003736.html | title=ejabberd 2.0.1 released | work=ejabberd mailing list | first=Mickaël | last=Rémond | date=May 22 2008 | publisher=Jabber.ru | accessdate=2008-06-22}}</ref>
** [[28 august]] [[2008]] : ejabberd 2.0.2 released<ref>{{cite web | url=http://lists.jabber.ru/pipermail/ejabberd/2008-August/004133.html | title=Release of ejabberd 2.0.2 | work=ejabberd mailing list | first=Jérôme | last=Sautret | date=[[August 28]] [[2008]] | publisher=Jabber.ru | accessdate=2008-08-28}}</ref>
** 28 august 2008 : ejabberd 2.0.2 released<ref>{{cite web | url=http://lists.jabber.ru/pipermail/ejabberd/2008-August/004133.html | title=Release of ejabberd 2.0.2 | work=ejabberd mailing list | first=Jérôme | last=Sautret | date=August 28 2008 | publisher=Jabber.ru | accessdate=2008-08-28}}</ref>
** [[15 january]] [[2009]] : ejabberd 2.0.3 released<ref>{{cite web | url=http://lists.jabber.ru/pipermail/ejabberd/2009-January/004593.html | title=Release of ejabberd 2.0.3 | work=ejabberd mailing list | first=Jérôme | last=Sautret | date=[[January 15]] [[2009]] | publisher=Jabber.ru | accessdate=2009-01-15}}</ref>
** 15 january 2009 : ejabberd 2.0.3 released<ref>{{cite web | url=http://lists.jabber.ru/pipermail/ejabberd/2009-January/004593.html | title=Release of ejabberd 2.0.3 | work=ejabberd mailing list | first=Jérôme | last=Sautret | date=January 15 2009 | publisher=Jabber.ru | accessdate=2009-01-15}}</ref>
** [[13 march]] [[2009]] : ejabberd 2.0.4 released<ref>{{cite web | url=http://lists.jabber.ru/pipermail/ejabberd/2009-March/004748.html | title=Release of ejabberd 2.0.4 | work=ejabberd mailing list | first=Jérôme | last=Sautret | date=[[March 13]] [[2009]] | publisher=Jabber.ru | accessdate=2009-08-02}}</ref>
** 13 march 2009 : ejabberd 2.0.4 released<ref>{{cite web | url=http://lists.jabber.ru/pipermail/ejabberd/2009-March/004748.html | title=Release of ejabberd 2.0.4 | work=ejabberd mailing list | first=Jérôme | last=Sautret | date=March 13 2009 | publisher=Jabber.ru | accessdate=2009-08-02}}</ref>
** [[3 april]] [[2009]] : ejabberd 2.0.5 released<ref>{{cite web | url=http://lists.jabber.ru/pipermail/ejabberd/2009-April/004836.html | title=Release of ejabberd 2.0.5 | work=ejabberd mailing list | first=Jérôme | last=Sautret | date=[[April 3]] [[2009]] | publisher=Jabber.ru | accessdate=2009-08-02}}</ref>
** 3 april 2009 : ejabberd 2.0.5 released<ref>{{cite web | url=http://lists.jabber.ru/pipermail/ejabberd/2009-April/004836.html | title=Release of ejabberd 2.0.5 | work=ejabberd mailing list | first=Jérôme | last=Sautret | date=April 3 2009 | publisher=Jabber.ru | accessdate=2009-08-02}}</ref>
* [[13 november]] [[2009]] : ejabberd 2.1.0 released<ref>{{cite web | url=http://lists.jabber.ru/pipermail/ejabberd/2009-November/005470.html | title=ejabberd 2.1.0 finally released | work=ejabberd mailing list | first=Jérôme | last=Sautret | date=[[November 13]] [[2009]] | publisher=Jabber.ru | accessdate=2009-11-13}}</ref>
* 13 november 2009 : ejabberd 2.1.0 released<ref>{{cite web | url=http://lists.jabber.ru/pipermail/ejabberd/2009-November/005470.html | title=ejabberd 2.1.0 finally released | work=ejabberd mailing list | first=Jérôme | last=Sautret | date=November 13 2009 | publisher=Jabber.ru | accessdate=2009-11-13}}</ref>


== Publications ==
== Publications ==
Line 86: Line 86:
"Démarrer avec ejabberd" in the french magazine PROgrammez! <ref>[http://www.programmez.com/magazine_articles.php?titre=Demarrer-avec-ejabberd&id_article=996&magazine=105 "Démarrer avec ejabberd" at magazine PROgrammez!]</ref>
"Démarrer avec ejabberd" in the french magazine PROgrammez! <ref>[http://www.programmez.com/magazine_articles.php?titre=Demarrer-avec-ejabberd&id_article=996&magazine=105 "Démarrer avec ejabberd" at magazine PROgrammez!]</ref>
and
and
"Passing notes in class" in [[Free Software Magazine]] <ref>[http://www.freesoftwaremagazine.com/node/1746 "Passing notes in class" at Free Software Magazine]</ref>
"Passing notes in class" in Free Software Magazine <ref>[http://www.freesoftwaremagazine.com/node/1746 "Passing notes in class" at Free Software Magazine]</ref>


ejabberd is mentioned in several books related to the XMPP protocol and the Erlang language.
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>[http://oreilly.com/catalog/9780596157197/ Peter Saint-André, Kevin Smith, and Remko Tronçon's XMPP The Definitive Guide]</ref>.
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>[http://oreilly.com/catalog/9780596157197/ Peter Saint-André, Kevin Smith, and Remko Tronçon's XMPP The Definitive Guide]</ref>.
Other published books that mention ejabberd are:
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>
* "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) - [http://www.erlangprogramming.org/ Erlang Programming: A Concurrent Approach to Software Development]</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) - [http://www.erlangprogramming.org/ 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>[http://www.amazon.com/Openfire-Administration-practical-step-step/dp/1847195261 Mayank Sharma's Openfire Administration: A practical step-by-step guide to rolling out a secure Instant Messaging service over your network]</ref>
* "Openfire Administration: A practical step-by-step guide to rolling out a secure Instant Messaging service over your network" (Packt Publishing, 2008)<ref>[http://www.amazon.com/Openfire-Administration-practical-step-step/dp/1847195261 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>[http://www.amazon.com/Java-Power-Tools-Ferguson-Smart/dp/0596527934 John Ferguson Smart's Java Power Tools]</ref>
* "Java Power Tools" (O'Reilly Media, 2008)<ref>[http://www.amazon.com/Java-Power-Tools-Ferguson-Smart/dp/0596527934 John Ferguson Smart's Java Power Tools]</ref>
* "Fedora 11 and Red Hat Enterprise Linux Bible" (Wiley, 2009)<ref>[http://www.amazon.com/Fedora-Red-Enterprise-Linux-Bible/dp/0470485043 Christopher Negus's Fedora 11 and Red Hat Enterprise Linux Bible]</ref>
* "Fedora 11 and Red Hat Enterprise Linux Bible" (Wiley, 2009)<ref>[http://www.amazon.com/Fedora-Red-Enterprise-Linux-Bible/dp/0470485043 Christopher Negus's Fedora 11 and Red Hat Enterprise Linux Bible]</ref>



Latest revision as of 12:44, 5 October 2011

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

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:

See also

References

Template:Reflist

External links

Note: Some content on this page has been copied from Wikipedia in accordance with the CC-BY-SA license.