Original author(s) | Alexey Shchepin |
---|---|
Developer(s) | ProcessOne |
Initial release | February 11, 2003 |
Stable release | |
Repository | |
Written in | Erlang |
Operating system | Cross-platform |
Available in | 28 languages [3] |
List of languages Albanian, Catalan, Chinese (Simplified), Czech, Dutch, Esperanto, French, Galician, German, Greek, Hebrew, Hungarian, Indonesian, Italian, Japanese, Norwegian Bokmal, Polish, Portuguese, Portuguese (Brazil), Russian, Slovak, Spanish, Swedish, Thai, Turkish, Ukrainian, Vietnamese, Walloon | |
Type | XMPP server, MQTT broker, SIP service |
License | GPL-2.0-or-later |
Website | www |
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. As of 2009 [update] , it is one of the most popular open source applications written in Erlang. [4] 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. [5] The software's creator, Alexey Shchepin was awarded the Erlang User of the Year award at the 2006 Erlang user conference. [6]
ejabberd has a number of notable deployments, IETF Groupchat Service, [7] [8] BBC Radio LiveText, [9] Nokia's Ovi, [10] KDE Talk [11] and one in development at Facebook. [12] [13] As of 2009 [update] ejabberd is the most popular server among smaller XMPP-powered sites that register on xmpp.org. [14]
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." [15]
Alexey Shchepin started ejabberd in November 2002 [16] 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. [17] Ejabberd hit version 1.0 in December 2005. [18]
ejabberd has a high level of compliance with XMPP. [19] It provides a web interface which can be translated into other languages. ejabberd supports distributed computing by clustering, supports live upgrades, [20] 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, [21] 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. [22]
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.
In addition to the source code package and binary installers for Linux, macOS, and Windows, [23] 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. [24] [25]
Other methods in which ejabberd is available are the TurnKey Linux Virtual Appliance Library [26] and Comprehensive Erlang Archive Network (CEAN). [27] An old version of ejabberd is included in the Unison unified communications software.
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, [28] that handles between 10,000 and 20,000 concurrent users at any time. [29] Among smaller XMPP-related sites, ejabberd is also the most popular server. [14] 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%. [30]
Among generic instant messaging deployments are ISPs like the Portuguese SAPO, [31] and the German United Internet for services like GMX and Web.de. [32] [33] [34] The Russian search engine Yandex uses a highly modified version of ejabberd, named Yabberd. [35] Nokia's Ovi uses ejabberd with some customizations. [10] Major League Baseball offers instant messaging and chatrooms using a customized ejabberd. [36] [37] Mxit was a large server for mobile instant messaging client that started using ejabberd in 2005, but was replaced with a custom IM engine. [38] Universities known to use ejabberd include: Saint Petersburg State University, [39] Taganrog State University [40] [41] and the Division of Information Technology of the University of Wisconsin–Madison. [42]
In the FOSS world, there is a pair of notable generic deployments of ejabberd, namely the KDE Talk [11] and the Fellowship of the Free Software Foundation Europe. [43] [44]
ejabberd chatroom feature provides the IETF Groupchat Service, used by the various working groups, areas, and BOF sessions during meetings and at other times. [7] [8]
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. [9] sameplace.cc is a Mozilla Firefox extension that integrates Jabber/XMPP in the web browser, and uses ejabberd for the XMPP server. [45] [46] Other deployments include Chesspark (online chess playing site), [47] Collecta (real-time search), [48] and Notifixious (notifications of website subscriptions). [49]
One Laptop per Child's School server uses ejabberd with OLPC-specific patches as the instant messaging server. [50]
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, [12] 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". [13] On Feb 10th 2010, the Facebook blog announced the opening of the XMPP interface to Facebook chat, [51] based on ejabberd.
Another social media and blogging service that uses ejabberd is LiveJournal Talk. [52] [53] The Spanish-focused Tuenti social network uses a modified ejabberd to provide a live chat service. [54]
The worldwide jabber.org XMPP server, with a userbase of 330,000 users [55] and 15,000 users online at any one time in December 2009, [56] have used ejabberd since February 2006 [57] [58] until January 2010. [59] (In 2010 Jabber.org migrated to M-Link XMPP server from Isode Limited. [60] )
Nintendo Switch uses ejabberd in its "Nintendo Switch Push Notification infrastructure" (NPNS) handling 10 million simultaneous connections. [61]
Two articles are published about ejabberd in magazines: "Démarrer avec ejabberd" in the French magazine PROgrammez! [62] and "Passing notes in class", a post in Free Software Magazine. [63]
Computerworld Australia interviewed Erlang creator Joe Armstrong in June 2009, [64] and he referred to ejabberd in this way:
Builder Australia interviewed Andre Pang in September 2007, [65] 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. [66] A 2006 internal review paper in the IT department of Cambridge University found it the best choice amongst Jabber servers. [67] In the same year Alexey Shchepin was awarded the "User of the Year" award at the 12th International Erlang/OTP User Conference. [6]
Other published books that mention ejabberd are:
ejabberd was used in research works of papers published in international conferences proceedings and journals:
There are four patent applications published in the United States Patent and Trademark Office that involve ejabberd:
AIM was an instant messaging and presence computer program created by AOL, which used the proprietary OSCAR instant messaging protocol and the TOC protocol to allow registered users to communicate in real time.
ICQ New is a cross-platform instant messaging (IM) and VoIP client. The name ICQ derives from the English phrase "I Seek You". Originally developed by the Israeli company Mirabilis in 1996, the client was bought by AOL in 1998, and then by Mail.Ru Group in 2010.
Instant messaging (IM) technology is a type of online chat allowing immediate transmission of messages over the Internet or another computer network. Messages are typically transmitted between two or more parties, when each user inputs text and triggers a transmission to the recipient(s), who are all connected on a common network. It differs from email in that conversations over instant messaging happen in real-time. Most modern IM applications use push technology and also add other features such as emojis, file transfer, chatbots, voice over IP, or video chat capabilities.
Trillian is a proprietary multiprotocol instant messaging application created by Cerulean Studios. It is currently available for Microsoft Windows, Mac OS X, Linux, Android, iOS, BlackBerry OS, and the Web. It can connect to multiple IM services, such as AIM, Bonjour, Facebook Messenger, Google Talk (Hangouts), IRC, XMPP (Jabber), VZ, and Yahoo! Messenger networks; as well as social networking sites, such as Facebook, Foursquare, LinkedIn, and Twitter; and email services, such as POP3 and IMAP.
Pidgin is a free and open-source multi-platform instant messaging client, based on a library named libpurple that has support for many instant messaging protocols, allowing the user to simultaneously log in to various services from a single application, with a single interface for both popular and obsolete protocols, thus avoiding the hassle of having to deal with new software for each device and protocol.
Extensible Messaging and Presence Protocol is an open communication protocol designed for instant messaging (IM), presence information, and contact list maintenance. Based on XML, it enables the near-real-time exchange of structured data between two or more network entities. Designed to be extensible, the protocol offers a multitude of applications beyond traditional IM in the broader realm of message-oriented middleware, including signalling for VoIP, video, file transfer, gaming and other uses.
iChat is a discontinued instant messaging software application developed by Apple Inc. for use on its Mac OS X operating system. It supported instant text messaging over XMPP/Jingle or OSCAR (AIM) protocol, audio and video calling, and screen-sharing capabilities. It also allowed for local network discussion with users discovered through Bonjour protocols.
Psi is a free instant messaging client for the XMPP protocol which uses the Qt toolkit. It runs on Linux, Windows, macOS and OS/2.
HCL Sametime Premium is a client–server application and middleware platform that provides real-time, unified communications and collaboration for enterprises. Those capabilities include presence information, enterprise instant messaging, web conferencing, community collaboration, and telephony capabilities and integration. Currently it is developed and sold by HCL Software, a division of Indian company HCL Technologies, until 2019 by the Lotus Software division of IBM.
Google Talk was an instant messaging service that provided both text and voice communication. The instant messaging service was variously referred to colloquially as Gchat, Gtalk, or Gmessage among its users.
The following is a comparison of instant messaging protocols. It contains basic general information about the protocols.
Gajim is an instant messaging client for the XMPP protocol which uses the GTK toolkit. The name Gajim is a recursive acronym for Gajim's a jabber instant messenger. Gajim runs on Linux, BSD, macOS, and Microsoft Windows. Released under the GPL-3.0-only license, Gajim is free software. A 2009 round-up of similar software on Tom's Hardware found version 0.12.1 "the lightest and fastest jabber IM client".
Skype for Business Server is real-time communications server software that provides the infrastructure for enterprise instant messaging, presence, VoIP, ad hoc and structured conferences and PSTN connectivity through a third-party gateway or SIP trunk. These features are available within an organization, between organizations and with external users on the public internet or standard phones.
Jitsi is a collection of free and open-source multiplatform voice (VoIP), video conferencing and instant messaging applications for the Web platform, Windows, Linux, macOS, iOS and Android. The Jitsi project began with the Jitsi Desktop. With the growth of WebRTC, the project team focus shifted to the Jitsi Videobridge for allowing web-based multi-party video calling. Later the team added Jitsi Meet, a full video conferencing application that includes web, Android, and iOS clients. Jitsi also operates meet.jit.si, a version of Jitsi Meet hosted by Jitsi for free community use. Other projects include: Jigasi, lib-jitsi-meet, Jidesha, and Jitsi.
Empathy was an instant messaging (IM) and voice over IP (VoIP) client which supported text, voice, video, file transfers, and inter-application communication over various IM communication protocols.
Jack Moffitt is an American computer scientist, software developer and entrepreneur, living in Eden Prairie, Minnesota.
Tkabber is a GPL instant messaging client for the XMPP protocol which uses the Tk toolkit for the GUI. It runs on anything to which Tcl/Tk is ported: almost any X-based system, Microsoft Windows, and Mac OS X.
Jabber.org is a public, free instant messaging (IM) and presence service, based on XMPP, an open standard for IM.
Comparison of user features of messaging platforms refers to a comparison of all the various user features of various electronic instant messaging platforms. This includes a wide variety of resources; it includes standalone apps, platforms within websites, computer software, and various internal functions available on specific devices, such as iMessage for iPhones.
Conversations is a free software, instant messaging client application software for Android. It is largely based on recognized open standards such as the Extensible Messaging and Presence Protocol (XMPP) and Transport Layer Security (TLS).
{{cite book}}
: |journal=
ignored (help)