Difference between revisions of "Comparison between ejabberd and Prosody"
m (Update the page with the latest releases) |
(Add initial section about extending XMPP servers for Kosmos) |
||
Line 34: | Line 34: | ||
[https://en.wikipedia.org/wiki/Comparison_of_XMPP_server_software Wikipedia page comparing the RFC and XEP support of XMPP servers, including ejabberd and Prosody] | [https://en.wikipedia.org/wiki/Comparison_of_XMPP_server_software 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 | ||
Latest revision as of 16:41, 10 December 2018
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