Developing Openfire Efficient XML Interchange (EXI) functionality

We am excited to announce that a new plugin for the Openfire real time collaboration server is in the works! This plugin implements Efficient XML Interchange (EXI) functionality and provides an XMPP implementation of EXI as defined in XEP-0322.

Efficient XML Interchange (EXI) is a binary XML format for exchange of data on a computer network. It is one of the most prominent efforts to encode XML documents in a binary data format, rather than plain text. Using EXI format reduces the verbosity of XML documents as well as the cost of parsing.

EXI is useful for:

  • a complete range of XML document sizes, from dozens of bytes to terabytes
  • reducing computational overhead to speed up parsing of compressed documents
  • increasing endurance of small devices by utilizing efficient decompression

Read more about EXI in its Wikipedia article (where the above definition was taken from).

The plugin that we’re developing today was first created by Javier Placencio, in 2013 and 2014. In 2023, that now dormant project was forked by the Ignite Realtime community.

Work on the plugin is progressing steadily. Most of the core functionality is believed to be ready. In preparation for the official release of the plugin, we are looking for opportunities to perform interoperability testing. So far, testing has been done with our own mock client implementations. To be able to release a fully functional plugin, we’d like to test against implementations of other authors. Development builds of the plugin can be downloaded from the Openfire EXI plugin archive page.

Are you interested in this? Please reach out to us on the Ignite Realtime Community, or stop by the open chat! We would love to hear from you!

For other release announcements and news follow us on Twitter and Mastodon.

1 Like