[Standards] XEP-0198 usage in the wild, July 2018

Matthew Wild mwild1 at gmail.com
Fri Jul 6 21:21:50 UTC 2018


Hi folks,

I'm working on some new code and wondered if I could finally drop
support for the older XEP-0198 namespace. We currently support both
the :2 and :3 namespaces, because clients were predominantly using :2
for a long time.

It looks like things have improved, but it's still a mixed bag. Here
are the stats from several public servers:

yax.im:
| urn:xmpp:sm:2 869
| urn:xmpp:sm:3 260
| none 236

(yax.im is probably a biased sample, as although it's open to users of
all clients, Yaxim itself uses :2)

jabber.hot-chilli.eu
| none 1393
| urn:xmpp:sm:3 734
| urn:xmpp:sm:2 26

jabberfr.org:
| none 362
| urn:xmpp:sm:3 251
| urn:xmpp:sm:2 22

Here are the jabberfr.org stats correlated with client (caps node),
with the :3 clients filtered out:

168    none    http://pidgin.im/
114    none    unknown
17    sm:2    http://gajim.org
14    none    http://jitsi.org
10    none    http://telepathy.freedesktop.org/caps
10    none    http://miranda-ng.org/caps
5    sm:2    http://www.igniterealtime.org/projects/smack
5    none    http://www.igniterealtime.org/projects/smack
3    none    http://slixmpp.com/ver/1.3.0
3    none    http://gajim.org
2    none    https://salut-a-toi.org
1    sm:2    unknown
1    sm:2    http://www.igniterealtime.org/projects/smack/
1    none    http://www.igniterealtime.org/projects/smack/
1    none    http://mcabber.com/caps

Hope someone finds this useful!

Regards,
Matthew

PS. If you run Prosody and want to gather these stats from your own
server, run this in the telnet console:

> local v={};for j,s in pairs(prosody.full_sessions) do local sv=s.smacks or "none";v[sv]=(v[sv] or 0)+1; end for k,v in pairs(v) do print(k,v) end

and if you have mod_caps_cache loaded, you can get client data with this one:

> local v,d={},{attr={node="unknown"}};for j,s in pairs(prosody.full_sessions) do local n=(s.caps_cache or d).attr.node:match("^[^#]+"); local sv=(s.smacks or "none").." @ "..n;v[sv]=(v[sv] or 0)+1; end for k,v in pairs(v) do print(k,v) end


More information about the Standards mailing list