Ejabberd
# Ejabberd

ejabberd ist ein weit verbreiteter freier XMPP-Server und MQTT Broker, der sich die Techniken des Verteilten Rechnens und der Fehlertoleranz zu Nutze macht. Die Software ist unter Microsoft Windows und vielen Unix-ähnlichen Betriebssystemen, wie macOS, GNU/Linux, FreeBSD und NetBSD, lauffähig.

ejabberd ist sowohl für den professionellen Einsatz, als auch für den privaten Gebrauch geeignet. So nutzen beispielsweise Facebook, Nintendo, der deutsche Freemail-Anbieter GMX und die XMPP Standards Foundation (früher Jabber Software Foundation) die Server-Software, da diese auch unter ihren hohen Anforderungen zuverlässig arbeitet.

Das Projekt wurde 2002 von Alexey Shchepin unter den Bedingungen der GNU General Public License (GPL) veröffentlicht und wird noch immer von ihm betreut. Die Bezeichnung „ejabberd“ steht für „Erlang Jabber Daemon“, was auf die Programmiersprache Erlang verweist, in der ejabberd geschrieben wurde. Der Programmname wird – wie bei Daemon-Programmen üblich – nur in Kleinbuchstaben geschrieben.

## Besonderheiten

Neben Clustering hat ejabberd noch eine Reihe weiterer Fähigkeiten, wie eine Webschnittstelle für Administratoren. Der Server unterstützt PostgreSQL, MySQL und ODBC. Auch virtuelles Hosting ist möglich. ejabberd wirbt mit der Einhaltung der XMPP-Richtlinien, bietet eine mehrsprachige grafische Oberfläche, Authentifizierung mittels SASL mit Benutzerverwaltung via LDAP oder PAM, und das verschlüsselte Verbinden via SSL/TLS oder STARTTLS.

Außerdem unterstützt ejabberd Module. Viele von diesen bieten einfache Funktionen, wie das Speichern von Offline-Nachrichten. Allerdings gibt es auch Module, die die Funktionsvielfalt entscheidend erweitern:

* Ein IRC-Transport, um zu IRC-Channels zu verbinden,
* Multi-User-Chat-Fähigkeiten,
* HTTP-Polling,
* ein Benutzerdatenbank-Modul, das vCards unterstützt (das Speichern von vCards in LDAP oder einer ODBC kompatiblen Datenbank ist mit anderen Modulen möglich),
* ein Modul für Publish-Subscribe sowie
* ein Modul, um XMPP-Statistiken zu generieren.
