Skip to content
Stirling, an open source electronic trading library for the JVM
Scala Java Other
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Stirling is an open source electronic trading library for the JVM. It currently comprises of a FIX Engine and an ITCH implementation.


Open a FIX console:

sbt one-jar
java -jar stirling.jar

Run all unit tests:

sbt test

Run the performance test:

sbt make-perftest


FIX Engine

The FIX Engine requires MongoDB 1.4.3 or newer. It uses a database called fixengine.

FIX Protocol Profiles

In order to support messages of various FIX protocol profiles, Stirling allows definition of message classes that are profile specific. In most cases, a profile specific FIX message comprises of fields, which can be categorized by their value as follows: (a) the values of a field is fully specified by the standard, (b) the values of a field is a subset of the standard, or (c) the values of a field is not defined in the standard and may assign another meaning for a value that is specified in the standard.

If the field is defined as it is defined in the standard, then the standard field type is used. The fields following the standard are placed under the stirling.fix.tags package.

A profile specific enumeration is introduced when the standard defines a string field and the profile specifies an enumeration of possible values. A profile specific enumeration is also introduced when the profile uses non-standard values in the enumeration. However, if the profile uses a subset of an enumeration, Stirling uses the standard field type.

In cases where a field is a combination of multiple characters, a field is based on the string field type and the validation of such fields is left for the user.


The ITCH implementation supports the following profiles:

It currently comprises of a message parser. SoupTCP, the transport protocol used by ITCH, is yet to be implemented.

Something went wrong with that request. Please try again.