Research ยท Encoding for constrained networks

EXI vs gzip on small messages: why general compression fails on tactical traffic

On our test messages, gzip cut 328 bytes to 202. Schema-informed Efficient XML Interchange (EXI) cut them to 19. The difference comes from what each method knows before it sees the message.

The problem

Extensible Markup Language (XML) repeats itself. Every value sits inside a named element, and the names travel with it. That is a fair price on a fibre link and a heavy one on High Frequency (HF) radio, where a byte costs airtime. MTF-XML gives coalition partners a shared, checkable format. Getting it across a narrow link is a separate problem.

Why gzip struggles with short messages

gzip works by finding strings that repeat inside the data it is compressing, and by spending fewer bits on the symbols that occur most. A short message gives it little to work with. Each element name appears only a few times, and the first occurrence of everything is paid at full price. On top of that, a gzip file carries a fixed header and trailer, which weighs on a message this short. In our evaluation gzip reduced the mean size from 328 bytes to 202.

What EXI does differently

EXI is a W3C standard that reads XML as a stream of events (an element starts, a value appears, an element ends) and encodes each event with a short code taken from a grammar. Values are stored as their real types, so a number is a number, not a run of characters.

Without a schema, the grammar is learned as the document is read, and the result is modest. With a schema, in schema-informed mode, the grammar is built in advance from the schema that sender and receiver both hold. If the schema says a grid reference always follows a call sign, the code for "the next element is the grid reference" takes a few bits, and the element name is never sent. The receiver rebuilds it from the shared schema.

Mean message size in the laboratory evaluation
EncodingBytes
Plain XML text328
gzip202
EXI without the schema190
Schema-informed EXI19
Means over the test set described on the results page. Individual messages vary. Every EXI message decoded back without loss.

Most of the gain, then, comes from the schema and not from EXI alone: schemaless EXI at 190 bytes is close to gzip. The DDIL page covers what size means on a narrow link.

What to watch for

  • Both ends must hold the same schema version. The encoded message is meaningless without it. A version mismatch is an operational risk, and it needs a process for distributing and confirming schemas, not just code.
  • Free text compresses badly. Element names and typed values shrink a great deal. Narrative remarks do not. A message with a long free-text field will show a smaller gain than ours.
  • EXI is not encryption. The schema is not secret, so anyone holding it can decode the message. Protect the link separately.

Limits of this measurement

The schemas are stand-ins for three message types built on public formats, not APP-11 definitions, and the messages are synthetic. Modem overhead is left out. We have not yet sent anything over a radio link. Expect the ratio to change on real schemas.

Sources

The format is specified in the W3C EXI recommendation, with a readable introduction in the EXI Primer. We used EXIficient, an open-source implementation, built from source at pinned versions.

Last reviewed September 29, 2026