Comparison between ejabberd and Prosody

From Kosmos Wiki
Jump to navigation Jump to search
Name Written in License Initial release 1.0 release Stable release XEP Notable deployments Built-in support for Let's Encrypt
ejabberd Erlang GPL November 2002 December 2005 18.12 on 2018-12-06 Protocols Supported by ejabberd Notable deployments Yes, PR merged: https://github.com/processone/ejabberd/pull/1959
Prosody Lua MIT December 2008 Not yet 0.11.1 on 2018-11-28 Prosody modules and Community Modules Notable deployments Using the import command: https://prosody.im/doc/letsencrypt

Wikipedia page comparing the RFC and XEP support of XMPP servers, including ejabberd and Prosody

Extending XMPP servers for Kosmos

The Ad-hoc commands XEP could be useful for Kosmos: https://xmpp.org/extensions/xep-0050.html

ejabberd

Logging message to remoteStorage

There are two modules writing logs to text files as examples:

https://github.com/processone/ejabberd-contrib/blob/master/mod_log_chat/src/mod_log_chat.erl and https://github.com/processone/ejabberd-contrib/blob/master/mod_message_log/src/mod_message_log.erl

Ad-hoc commands

Ad-hoc commands are mentioned here in the docs: https://docs.ejabberd.im/admin/guide/managing/#ad-hoc-commands


prosody

Logging message to remoteStorage

"Prosody is powered by events". It's easy to write extensions using Lua that use hooks

For example:

-- mod_hello.lua
function on_message(event)
    module:log("info", "Received a message! Look: %s", tostring(event.stanza));
end

module:hook("message/bare", on_message);

https://prosody.im/doc/developers/modules and https://prosody.im/doc/developers/events

Ad-hoc commands

Docs for writing plugins for ad-hoc commands: https://prosody.im/doc/developers/modules/mod_adhoc

And an example: https://hg.prosody.im/trunk/file/tip/plugins/mod_ping.lua


Multi User Chat management

  • ejabberd has a mod_muc_admin module offering creating rooms, changing room options, inviting users, etc, using the ejabberdctl executable