views:

86

answers:

2

can anyone explain the different "extension" ,"component" and "plugin" in xmpp?

+1  A: 

An extension to the protocol, a component for implementing part of the protocol and a plugin piece of software to an implementation of the protocol... at least that's my understanding the last time I put together a plugin to ejabberd.

jldupont
does extension need extra plugin and install on server itself? or client xmpp can use new extension without required install on server?
cometta
jldupont
+3  A: 

I'd like to add a few details to the accepted answer.

  • extension : full name is XMPP Extension Proposal — XEP for short, new features built upon XMPP. XEPs are defined by the XMPP standard body, and available here. They are documents.

This extension may then be implemented in two possible ways.

  • plugin: written directly for the XMPP server, called module in ejabberd and plugin in openfire. They are not portable between XMPP implementations, and are usually written in the implementation language of the server (erlang or java)

  • component : implements new features of the protocol, connected through the network to the server using the Jabber Component Protocol. It means that it is portable between servers. Usually used for transports to other protocols, but some PubSub and MUC implementations are available as components.

The component protocol, XEP-114, is quite rough and limited and is said to be rewritten someday. It is actually a backspec, written from the original jabberd implementation.

cstar