XMPP/Jabber components which use non-viral licenses, or which allow dynamic linking from.
A lot of other p5 Perl components are dual licensed between GPL1 and ART10, which ART10 is considered to not have clearly defined rules for linking.
Pidgin/libpurple libraries are under GPL, and not under LGPL or to another non-viral license, which makes them complicated to link to.
As for client end programs, GPL is fine to use. The importance is that the libraries and other components allow wider use of them through dynamic linking. LGPL, other file-based license, and permissive licenses allow that type of dynamic linking for client end programs to use.
It seems that libraries not using LGPL2, Apache2.0 (with GPL2 linking exceptions or dual licensed with LGPL2), or permissive licenses hinders compatibility to other clients or other components which depend on them.
Aside from licensing, different programs for XML parsing are used. There could be more standardization here, but this is a minor detail, and makes no difference in performance, because XML is an open standard with one implementation.
Prosody under MIT gives more freedom of use of the server.
More: Thread xmpp-basics-security-constrained-networks.77220
| XMPP libraries | License | About | Framework |
|---|---|---|---|
| net-im/loudmouth | LGPL2.1+ | extensible, lightweight; client library; console clients net-im/freetalk & net-im/mcabber rely on it; also used by irc/irssi-xmpp & net-im/telepathy-gabble; doesn't come with OMEMO | C |
| net-im/qxmpp | LGPL2.1+ | client & server library; used by net-im/kaidan; has Jingle support; installs security/libomemo-c by default | QT & C++ |
| net-im/libstrophe | MIT | minimal, uses minimal XML parsing library; choice of libxml2 or expat; net-im/profanity depends on this | C |
| net-im/libmesode | MIT | previous fork of libstrophe; version depreciated upstream; suggests to use libstrophe; had removed MS Windows support, didn't need gmake, only had expat; provided extra TLS functionality; profanity once worked on this | C |
| net-im/py-slixmpp | MIT | fork of sleekxmpp | Python |
| XMPP Clients | License | Comment | Framework |
|---|---|---|---|
| net-im/xmpp-client | BSD 3-Clause | has OTR support | Go |
| net-im/jsxc | MIT | has: video calls, file transfers, encrypted communication | Browser based; Javascript |
| XMPP server | License | Comment | Framework |
|---|---|---|---|
| net-im/prosody | MIT | flexible, light, expandable, modern | Lua |
| net-im/openfire | Apache 2.0 | security and performance focused; Real time Collaboration (RTC); uses plugins for expansion | Java; OpenJDK |
| XMPP misc | License | Comment | Framework |
|---|---|---|---|
| net-im/biboumi | ZLIB | XMPP gateway to IRC; depreciated port; relied on deleted botan2 | Python; used SQLite3 or PostgreSQL |
| net-im/matterbridge | Apache 2.0 | bridge to multiple protocols including hipchat which uses XMPP; used in gaming messaging too | Go |
| net-im/telepathy-gabble | LGPL2.1+ | Jabber connection manager | |
| net-im/telepathy-salut | LGPL2.1+ | Link-local connection manager | |
| net-im/telepathy-* | LGPL2.1+ | Telepathy framework, lets people know presence settings | QT |
| textproc/iksemel | LGPL2.1 | XML parser library; used by Asterisk | XML |
| net-im/prosody-modules | MIT | module components for prosody server | |
| net-im/jitsi-prosody-plugins | Apache 2.0 | prosody plugins for Jitsi | |
| net-im/p5-Net-Jabber | LGPL2.0+ | Perl access from Jabber to IRC or other services | Perl |
| net-im/p5-Net-XMPP | LGPL2.1 | Perl access to XMPP | Perl |
Pidgin/libpurple libraries are under GPL, and not under LGPL or to another non-viral license, which makes them complicated to link to.
As for client end programs, GPL is fine to use. The importance is that the libraries and other components allow wider use of them through dynamic linking. LGPL, other file-based license, and permissive licenses allow that type of dynamic linking for client end programs to use.
It seems that libraries not using LGPL2, Apache2.0 (with GPL2 linking exceptions or dual licensed with LGPL2), or permissive licenses hinders compatibility to other clients or other components which depend on them.
Aside from licensing, different programs for XML parsing are used. There could be more standardization here, but this is a minor detail, and makes no difference in performance, because XML is an open standard with one implementation.
Prosody under MIT gives more freedom of use of the server.
More: Thread xmpp-basics-security-constrained-networks.77220