FAST (FIX Adapted for Streaming)
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 diagnostic and a comprehensive suite of sample applications (with the source code) designed to significantly reduces the time and cost of FIX FAST development and implementation.
The OnixS FAST libraries are used within the OnixS directConnect venue specific Market Data Handler solutions for the CME, ICAP EBS, Eurex and NYSE LIFFE.
OnixS has published a series of FAST Encoder/Decoder performance profiles based on real world use cases. These are available as Technical Information Notes and available on the links below:
FIX FAST (FIX Adapted for Streaming) Decoder and Encoder
FAST (an acronym for FIX Adapted for Streaming) is a binary compression algorithm optimised for real-time distribution of high-volume market data. It was developed by FIX Protocol Ltd (FPL) to reduce the bandwidth requirements and the latency of message oriented data feeds. This protocol has gained recognition and adoption among major exchanges and ECNs (Chicago Mercantile Exchange (CME), ICAP, Eurex, the International Securities Exchange (ISE), NYSE, OM Exchanges (OMX), to date).
One of the key features of FAST is the ability to avoid sending data that has been sent before.
The major advantage of FAST is reduced bandwidth requirements and reduced latency, but they are achieved at the expense of increased processing time/load and more complex processing algorithms.
FAST does not define any requirements to the business structure of the messages; it only addresses the data representation. Therefore FAST can be used to compact not only FIX messages, but also non-FIX proprietary messages structures.
The FAST Protocol assumes that the structures of the transferred messages as well as encoding rules are agreed between the counterparties. This is usually done via the exchange of machine readable XML-based FAST templates.
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.
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 follows.
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).