Difference between revisions of "Comparison between ejabberd and Prosody"
(Initial page) |
(Add initial section about extending XMPP servers for Kosmos) |
||
(3 intermediate revisions by the same user not shown) | |||
Line 9: | Line 9: | ||
! XEP | ! XEP | ||
! Notable deployments | ! Notable deployments | ||
+ | ! Built-in support for Let's Encrypt | ||
|- | |- | ||
| [https://www.process-one.net/en/ejabberd/ ejabberd] | | [https://www.process-one.net/en/ejabberd/ ejabberd] | ||
Line 15: | Line 16: | ||
| November 2002 | | November 2002 | ||
| December 2005 | | December 2005 | ||
− | | [https://blog.process-one.net/ejabberd- | + | | [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] | ||
+ | | Yes, PR merged: https://github.com/processone/ejabberd/pull/1959 | ||
|- | |- | ||
| [https://prosody.im/ Prosody] | | [https://prosody.im/ Prosody] | ||
Line 24: | Line 26: | ||
| December 2008 | | December 2008 | ||
| Not yet | | Not yet | ||
− | | [ | + | | [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] | ||
+ | | Using the import command: https://prosody.im/doc/letsencrypt | ||
|- | |- | ||
|} | |} | ||
[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
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