Comparison between ejabberd and Prosody
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
Contents
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