PlantUML Text Encoding

Introduction

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).

Compression

Compression is done using Deflate algorithm. We will add new compression algorithm in some future.

Principle

For example, the following uml text description:

Alice -> Bob: Authentication Request
Bob --> Alice: Authentication Response

is encoded as:

Syp9J4vLqBLJSCfFib9mB2t9ICqhoKnEBCdCprC8IYqiJIqkuGBAAUW2rJY256DHLLoGdrUS2W00

To achieve such an encoding, the text diagram is:

  1. Encoded in UTF-8
  2. Compressed using Deflate algorithm
  3. Reencoded in ASCII using a transformation close to base64

Compression result

The following diagram:

is compressed to a 428 string length using Deflate

Running

You can use -encodeurl or -decodeurl in the command line flags to encode or decode the text.

You will find here some implementation of this encoder:


You can contribute on this page by clicking here
EnglishLocal