Difference between revisions of "Comparison between ejabberd and Prosody"

From Kosmos Wiki
Jump to navigation Jump to search
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

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