FAST uses the following approaches to compact data messages:
Implicit Tagging: The order of fields within the FAST message is fixed, so the field meaning is defined by its position in the message and there is no need to transfer the field tag to describe the field value. For example:
Part of the FIX message:
The corresponding part of the FAST message:
Information about the previous field value as well as about the initial value is used to reduce the amount of redundant information sent with each successive message.
Field Encoding: Field Encoding Operator defines the actions that need to be taken on the received field value, the previous field value and the initial value in order to obtain the final value.
For example, if the Default Field Operator with the initial value "FUT" is defined for SecurityDesc <107> field in the FAST template and this field is empty in the received message then the "FUT" is used as the final field value.
Field Encoding Operators are specified in the FAST Template.
Presence Map: A presence map is a sequence of bits that starts each FAST message. Each bit in the presence map can signal the presence or absence of a particular field value in the binary streams that follow.
Stop Bit: The most significant bit in each byte is used as an indicator of the field delimiter instead of a dedicated 8-bit field delimiter value.
Binary Encoding: Field values are represented as bit sequences (contrary to the character (text) representation that is used in the FIX protocol).
The OnixS FIX Engines include out-of-the-box fully standard FAST 1.1/1.2 implementations for C#, C++ and Java.
They include versatile diagnostics and a comprehensive suite of sample applications (with the source code) designed to significantly reduce the time and cost of FIX FAST development and implementation.