SackFix is a Scala Fix Engine (also using Akka). It is not low latency or zero GC - message processing taking about 500 micro seconds to 3ms depending on the log levels you have enabled.
Originally created in 2017 to learn Scala and Akka, it was updated in 2021 to Scala 2.13 and Akka.typed. At some point a Scala 3 migration seems likely.
Doing a full Fix implementation creates a lot of projects, the ones below are all part of the SackFix family, but you will find yourself using sackfixexamples and nothing else, unless you want to edit the code that makes up sackfix.
An independent implementation of the test suite published by the Fix folks. It uses a very simple couple of classes to implement the Fix client and tests that the Session level protocol obeys the fix spec.
You have to check this out. You can start up the acceptor, run the tests against it. Then start up the initiator, and send millions of NOS and Exec reports back and forth, look at Diving In for the actor you will implement when using SackFix.
The common package is a full implementation of an acceptor, initiator and all of the state machines needed to support the session level protocol.
Purely code generated code for every version of fix. You should import the version of fix which you want to use. Sackfix does not have a classloader for different fix versions within a single JVM.
The code generator, and the common project holding fields and common utilities
Show me the code
Look at Diving In to quickly get a look at the business object you will code, and how to embed SackFix in your own projects.
See the LICENSE file