This plugin encodes XMPP as JSON. This is an implementation of XEP-0295: JSON Encodings for XMPP.

Simply loading this module makes Prosody accept JSON on C2S streams (legacy XML clients are still supported).

For BOSH, it requires mod_bosh be loaded, and JSON should be directed at the /jsonstreams HTTP path.

JSON for S2S isn’t supported due to the lack of a discovery mechanism, so we have left that disabled to stay compatible with legacy XML servers.


Just add "json_streams" in your config’s global modules_enabled list, for example:

modules_enabled = {

Strophe.js plugin

We also developed a JSON streams plugin for the popular strophe.js library.

Just include it like this after including the strophe library, and your strophe-based client will be speaking JSON:

<script type="text/javascript" src="strophe.jsonstreams.js"></script>

Be sure to set the HTTP path to /jsonstreams. No other changes are required.


0.8 Works
trunk Works



With the plugin installer in Prosody 0.12 you can use:

sudo prosodyctl install --server= mod_json_streams

For earlier versions see the documentation for installing 3rd party modules