PlantUML defines a standardized way to encode diagram text description to a simple string of characters that contains only digits, letters, underscore and minus character.
The goal of such an encoding is to facilitate communication of diagrams through URL (see Server).
This encoding includes compression to keep encoded strings as short as possible.
The encoded metadata is stored in the generated PNG, so the diagram source can be extracted from the diagram itself!! (see Server#metadata).
Two possible algorithms are available.
The first one is the Deflate algorithm. This compression gives good results for short diagrams. This was initially the only compression algorithm available.
Starting from version 1.2017.20, PlantUML supports also Brotli algorithm which gives usually better results than Deflate for larger diagrams. An initial 0 character is added to the encoded String to indicate that Brotli has to be used for decoding (Deflated data never starts by a 0).
For example, the following uml text description:
Alice -> Bob: Authentication Request
Bob --> Alice: Authentication Response
is encoded as:
To achieve such an encoding, the text diagram is: