Fixyl
FIXYL is a tool for testing and verifying software that uses the FIX protocol.
Install / Use
/learn @yaalalabs/FixylREADME
FIXYL
![]()
FIXYL is a tool for testing and verifying software that uses the FIX protocol. It allows establishing FIX sessions and exchanging (and manipulating) FIX messages. As this tool can act as a FIX client or a FIX server.
The tool is based on the message definition format used in QuickFix and the tool provides support for all standard and custom FIX dictionaries across version 4.x and 5.x of the FIX protocol. It features a wide variety of options to support the testing and debugging of FIX gateways. You can find a sample definition here.
This tool is created using React, is based on Electron and supports cross-platform builds.
Installation
Installing from binaries
Pre-built binaries can be downloaded from the Releases Page. Make sure to use the installer for your operating system.
|OS |Instructions | |-----------|-----------------------------| |Windows | Download the .exe file | |Mac | Download the .dmg file | |Linux | Download the .AppImage file |
Building from source
Building from source requires NodeJS 12 or higher. Note that this step can be initiated from all major operating systems (Linux, Windows, MacOS) and produces an installer for that operating system.
For production:
npm install
or
npm install --legacy-peer-deps
npm run build
Once the build is complete, the installer can be found inside the dist directory.

For development:
npm install
or
npm install --legacy-peer-deps
npm run start
This launches a React development server on localhost:3000, and starts an Electron application instance pointing to it. Make sure that port 3000 is not already occupied by some other program.
Usage
First start-up
Once you start the application for the first time, it will ask for a working directory to store configuration files. Set this to a valid directory.
This directory is used for storing user configurations such as profiles and favorites. Deleting this directory manually would remove such configurations and would cause the application to prompt for a working directory the next time it is launched.

1. Fix client mode
Adding a new client profile
A profile contains all of the information required for creating a new FIX session. You may open the profile creation form by clicking on the Profile menu item and clicking the + button on the top of the opened panel.
Once this form is opened, you should enter the following information of the target FIX server:
|Field |Description | |--------------------|--------------------------------------------------------| |Name |Name of the profile | |IP Address |IP address of the target server | |Port |Port address of the target server | |HB Interval |Heartbeat interval for the session | |SenderCompId |Username to use for the login and sender identification | |Password |Password of the above user to use for login | |TargetCompId |Target system/firm identification | |Dictionary Location |Location of the FIX dictionary definition XML file | |SSL Enabled |Whether SSL is enabled or not | |SSL Server Name |SSL Server Name (for SNI) if different from host | |SSL CA Certificate |CA certificate to be used for the handshake (.pem) | |SSL Certificate |Self-signed certificate if not using a public one (.pfx)| |Certificate Password|Password to decipher self-signed certificate |
Pressing Save will create a new profile with the entered information.

The profile information will be saved in a configuration file inside the working directory set for the application.
Starting a FIX session
Open the Profile menu and click the connect button of the profile that you have previously created. This will open a TCP connection to the FIX server mentioned in the profile, A new tab will be opened in the main window for the established session.
If the connection is successful, the connection indicator will turn green and the state will be presented as CONNECTED.

FIX Session Management
Each FIX session tab consists of the following 3 sections:
- Session management
- Message streams
- Message preview
Session Management
This section provides an overview of the session and tools required to interact with the active session. The following tabs are available in this section.
|Section |Description |Screenshot |
|------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------|
|General |Provides basic information on the FIX session, such as connection details and the status. It also provides the functionality to connect and disconnect the session. |
|
|New Message |Use this to send a new message through your FIX session. A message definition can be found using the dropdown menu (which supports auto complete). Selecting a message definition will prompt a form to fill the relevant fields before sending the message. You can also add the message you have saved to your favorites for later use. Refer FIX Message Form for more information. | |
|Raw Data |This is another way of sending a message. If you have a raw FIX message with printable field separators, use this tab to send it. |
|
|Favorites |All the favorites that you have saved previously are listed here. You can select a saved favorite message and send it. |
|
|Scenarios |[EXPERIMATAL] This section gives users the ability to add automated testing for a message flow to cover a scenario. Refer Scenario Configuration section for more information. | |
Message Stream
This section shows all incoming and outgoing messages of the session. You can filter by Heartbeat , In-coming and Out-going messages.
You can select a message to get a preview of it. You can also select two messages (by selecting while pressing Ctrl) and click View Diff to compare the selected two messages in the message stream.

Message Preview
This section visualizes a message selected in the message stream.

Each message is shown in two formats.
- Decoded format where fields are shown in a tabular manner.
- Raw format where raw data of the message is shown. Raw data of the message can be copied by clicking on this section.
FIX Message Form
This form is used for editing messages before they are sent on the session. It can also be used for adding a configured message to the list of favorites for later use.
Following are some noteworthy features of this form:
- If you press
Ctrl + Fyou will get a search panel for searching through message fields. - The form also supports auto-generated fields. In order to use this, set the value of the field to
{auto-gen}. Currently, auto generation of values are only supported on FIX field
