def parse_message(message, nodata=False):
    """Parse df message from bytearray.

    @message - message data
    @nodata - do not load data
    @return - [binary header, metadata, binary data]

    """
    header = read_machine_header(message)
    h_len = __get_machine_header_length(header)
    meta_raw = message[h_len:h_len + header['meta_len']]
    meta = __parse_meta(meta_raw, header)
    data_start = h_len + header['meta_len']
    data = b''
    if not nodata:
        data = __decompress(
            meta,
            message[data_start:data_start + header['data_len']]
        )
    return header, meta, data
Parse df message from bytearray.

    @message - message data
    @nodata - do not load data
    @return - [binary header, metadata, binary data]