Difference between revisions of "Comparison between ejabberd and Prosody"

From Kosmos Wiki
Jump to navigation Jump to search
(Add initial section about extending XMPP servers for Kosmos)
 
(2 intermediate revisions by the same user not shown)
Line 16: Line 16:
 
| November 2002
 
| November 2002
 
| December 2005
 
| December 2005
| [https://blog.process-one.net/ejabberd-17-09/ 17.09 on 2017-09-29]
+
| [https://blog.process-one.net/ejabberd-18-12/ 18.12 on 2018-12-06]
 
| [https://www.process-one.net/en/ejabberd/protocols/ Protocols Supported by ejabberd]
 
| [https://www.process-one.net/en/ejabberd/protocols/ Protocols Supported by ejabberd]
 
| [https://en.wikipedia.org/wiki/Prosody_(software)#Notable_deployments Notable deployments]
 
| [https://en.wikipedia.org/wiki/Prosody_(software)#Notable_deployments Notable deployments]
| WIP: https://github.com/processone/ejabberd/pull/1959
+
| Yes, PR merged: https://github.com/processone/ejabberd/pull/1959
 
|-
 
|-
 
| [https://prosody.im/ Prosody]
 
| [https://prosody.im/ Prosody]
Line 26: Line 26:
 
| December 2008
 
| December 2008
 
| Not yet
 
| Not yet
| [http://blog.prosody.im/prosody-0-10-0-released/ 0.10.0 on 2017-10-02]
+
| [https://blog.prosody.im/prosody-0-11-1-released/ 0.11.1 on 2018-11-28]
 
| [https://prosody.im/doc/modules Prosody modules] and [http://modules.prosody.im/ Community Modules]
 
| [https://prosody.im/doc/modules Prosody modules] and [http://modules.prosody.im/ Community Modules]
 
| [https://en.wikipedia.org/wiki/Ejabberd#Notable_deployments Notable deployments]
 
| [https://en.wikipedia.org/wiki/Ejabberd#Notable_deployments Notable deployments]
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
 +
 +
 +
== Multi User Chat management ==
 +
 +
* ejabberd has a [https://docs.ejabberd.im/admin/ejabberdctl/muc-admin/ mod_muc_admin] module offering creating rooms, changing room options, inviting users, etc, using the <code>ejabberdctl</code> executable

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