Binary data blobs This same data model can be represented in a binary format to lighten the load on the client. (This format is typically larger than the corresponding text format, but requires less complexity to parse. For large data blobs, the impact of compression on reducing transmission time vs increasing CPU load should be considered.) Every Remote Flutter Widget Binary Data Blob file is a value. Values are represented by a one-byte tag giving their type, followed by the data. The false value is represented by the 0x00 byte, the true value by the 0x01 byte. Integers are represented by 0x02, doubles by 0x03, and strings by 0x04. Finally, maps use 0x07 and lists 0x05. For values other than booleans, the data immediately follows the byte. Integers are represented as the eight bytes giving the little-endian two's-complement representation of the 64 bit integer. Doubles are represented as the IEEE754 binary64 encoding of their value. Strings are represented by an integer giving the number of UTF-8 bytes in the string, followed by the UTF-8 encoding of the string data. Maps are represented by an integer giving the number of entries in the map, followed by that many key/value pairs where the key is a string and the value is as described above. Duplicates are strongly discouraged but allowed; earlier occurrences of a key are discarded in favour of later occurrences. Lists are represented by an integer giving the number of entries in the list, followed by that many values as described above. Example Consider this text data blob: { a: [] } Its binary representation (shown here in hex) would be: 07 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 61 05 00 00 00 00 00 00 00 00