FIX Antenna™ .NET Core 1.0.2


Open source release

Source code and documentation are available on GitHub under an Apache 2.0 license

Breaking changes

API of the version 1.0 does not compatible with versions 0.9.x.

  • All namespaces reorganized and renamed with 'Epam.' prefix
  • Many methods converted to properties
  • Number of binaries reduced

Features and improvements

  • QuickFIX dictionaries support
    Dictionaries in QuickFIX format can be used to start FIX sessions 
  • Assigning an individual dictionary to a specific FIX session
    An individual dictionary can be assigned to a specific FIX session in the property file
  • Using environment variables for configuration
    Configuration parameters can be defined in environment variables. Environment variables have the highest priority
  • Tag generation tool
    The tag generation tool generates a set of FIX-dictionary tags as a set of constants inside a DLL file. Thus, the human-readable names of the tags and tag values can be used instead of their numbers and numeric values (for standard values)
  • Asynchronous connection
    API supports the asynchronous session connection. ConnectAsync() method was introduced to the IFixSession interface

FIX Antenna™ .NET Core 0.9.4


Features and improvements.

  • Added configuration option seqNumLength to configure the minimal length of SeqNum fields
    If configured length is more than the actual length, the value will be prepended with leading zeroes.
    For the details see FA .NET Core Programmer's Guide - Configuration.
  • Added API method FixMessage.TryGetLongByIndex(int index, out long value)
    The method returns true if a tag exists and a value could be parsed as long, and returns the parsed value as out long value. If no tag exists or a value cannot be parsed as long, it returns false

FIX Antenna™ .NET Core 0.9.3


Features and improvements.

Hide passwords in FIX logs and application logs

A new configuration parameter maskedTags was introduced in this version. A user can specify tags which values will be masked with asterisks in the FIX session and application log files. This is done to obfuscate sensitive information (such as logins and passwords) by applying masks. The tag values are obfuscated with asterisks. The number of asterisks depends on the field length.

NOTE: Session logins are not obfuscated by default, but this option can be configured.

The placeholder "<masked value>" from any text block "Password=<masked value>" is obfuscated with three asterisks in the application logs.

When a message in the application log includes a FIX message, the Engine obfuscates sensitive field values in the FIX message with the corresponding number of asterisks.

Make hints with a description of public methods/parameters visible for FA .NET Core

Developer gets information about public properties and methods while working with FIX Antenna .NET Core in Visual Studio:

Include runClientRoundTripLatencyBM and runServerRoundTripLatencyBM samples to the package

Examples folder in the distribution package now includes two additional samples:

  • \Examples\Latency\Sender
  • \Examples\Latency\Server

How to measure FA .NET Core performance using the roundtrip latency benchmark samples

Implement compatibility with Log Replicator

FIX log index files from FileSystemStorageFactory and MmfStorageFactory now compatible with the Log Replication tool.

Fixed bugs

  • FIX Antenna .Net Core sends SendingTime tag in the message body for Sequence Reset (4) message
  • MmfStorageFactory could not initialize the index file after application restart in rare conditions

FIX Antenna™ .NET Core 0.9.2


FIX Antenna™ .NET Core 0.9.2 brings compatibility with the latest version of .NET Framework - 4.8.

The Engine was tested under .NET Core 3.1 and under .NET Framework 4.8 and is intended to be used under these platforms.
The Engine itself is based on .NET Standard 2.0 and shares the same set of features under both platforms.

User should manually clean 'obj' and 'build' folders inside sample application's folder in case if it is needed to sequentially run the same sample for the different target platform (for example, EchoServer for .NET Core after .NET Framework 4.8)

Features and improvements.

  • Optimized memory allocation on message receiving.
  • Added ability to choose the IP protocol version between IPv4 or IPv6. Dual mode is used by default.

    Please note: IPv4 should be specified for OpenOnload

Bug fixes.

  • FixServer does not shutdown on calling the Stop() function in case FixSessionManager was not explicitly stopped.

FIX Antenna™ .NET Core 0.9.0

FIX Antenna™ .NET Core is a high-performance low latency .NET FIX Engine.

The engine is based on .NET Standard 2.0 and is compatible with any platform that supports .NET Standard 2.0 and further.

The Engine is intended to be used under .NET Core starting from version 3.1 and further and was tested under this platform.

One of the key benefits of using .NET Standard and .NET Core is the ability to use Engine under different OS: Windows, Linux, Mac.

Requirements & Compatibility

  1. Libraries compatibility: any OS with .NET platform which supports .NET Standard 2.0 and further (.NET Core is preferable).
  2. Samples compatibility: any OS with installed .NET Core 3.1 and further.
  3. Samples and libraries were tested with .NET Core under Windows 10 and Linux Ubuntu 16.04.

FIX Engine

  1. Supports FIX 4.0 - FIX 4.4, FIX 5.0, FIX 5.0 SP1, FIX 5.0 SP2
  2. Supports all FIX message types (pre-trade, trade, post-trade, market data, etc.)
  3. Customizable FIX protocol with user-defined tags and message types
  4. Sequence numbers management
  5. Microseconds in FIX tags (MIFID II)
  6. Smart resend request handling
  7. Validation against FIX dictionaries
  8. Unregistered acceptors handling
  9. Standard FIX routing based on DeliverTo and OnBehalfOf fields
  10. Store messages while disconnected
  11. Switch to the backup connection
  12. Round-robin reconnect option to multiple backup destinations for an initiator session
  13. Administrative Plugin for Fix Antenna

Sessions Processing

  1. Session Qualifiers
  2. Multiple FIX sessions
  3. Initiator/Acceptor Sessions
  4. Auto-reconnect Session
  5. Transient Sessions
  6. Restore state after failure (Persistent Session)
  7. Pluggable session level


  1. Supported Storage Types:
    1. Null storage
    2. In-memory storage
    3. Persistent storage
    4. Persistent Memory Mapped based storage
  2. Storage management (get a message by seq. num, get creation time)

Performance Tuning

  1. Ability to enable or disable Nagle's algorithm to minimize latency or maximize throughput
  2. Ability to manipulate the internal outgoing queue size to get maximum throughput (process messages in batch) or lower latency (minimal time in queue)
  3. Ability to use different levels of message validation to balance between reasonable correctness and good performance:
    1. Well formedness validation
    2. Validation of allowed message fields
    3. Validation of required message fields
    4. Validation of message fields order
    5. Validation of duplicated message fields
    6. Validation of field values according to defined data types
    7. Validation of repeating group fields
    8. Conditionally required fields
  4. Ability to choose the sending mode. Synchronous sending gives lower latency, but asynchronous is preferable for getting a better throughput
  5. Ability to configure CPU affinity to enable the binding and unbinding a thread to a CPU, so that the thread will execute only on the designated CPU rather than any CPU
  6. Setting send and receive socket buffer sizes for TCP transport options


  1. Supports configuration in properties file format
  2. Ability to configure default behavior and custom sessions in the same configuration file

Monitoring and administration

  1. Proprietary built-in remote monitoring and administrative interface for sessions monitoring and management
  2. Public API to override and/or extend existing administrative instructions
  3. Rich monitoring and administration GUI (FIXICC) out of the box

Message composition API

  1. Provides the following functionality:
    1. Creating a message from a raw FIX string (parse)
    2. Serializing a FIX object message to raw FIX string
    3. Adding, removing, modifying FIX fields and repeating groups
    4. The ability of internal pooling to reduce memory allocations
    5. FIX flat message model - generic model to work with the abstract FIXMessage class via fields and groups getters and setters, which gives the highest performance
  2. RG API - API for working with repeating groups. Similar to FIX flat message model but allow to work with structures
  3. Prepared messages - message template for the faster sending the messages with the same structure but with different values
  4. Efficient getters and setters for working with values as with primitive type to reduce garbage production


  1. Logon Customization
  2. Standard FIX authorization utilizing username and password fields in FIX Logon message
  3. Strategies for accepting incoming sessions:
    1. Auto-accept incoming sessions (to simplify development and testing)
    2. Auto-decline non-pre-configured sessions
  4. IP range based whitelisting for incoming connections
  5. CME Secure Logon support


  1. Option "disconnectOnLogonHeartbeatMismatch"
  2. "resetThreshold" configuration option (handling of counterparties which ignores sequence reset and continues to send old sequence numbers)
  3. Option "resetQueueOnLowSequence"


  1. Licensing system
  2. Logging to text files
  3. Logging to the socket (Splunk) via NLog
  4. ASCII codes in FIX logs file names
  5. Configuration of session parameters from .XML


  1. A zip archive package is provided
  2. Sample EchoServer
  3. Sample Connect to gateway
  4. User’s guide
  5. Reference Manual (with a description of all classes and methods)


  1. Listen port management (Listen port per session)