Well, that's about it for the weekend...

The FIX part seems reasonably robust, but still isn't doing much validation. The network part is fairly basic, but works. The exchange... well... it's OK for a single client, but seems to have some issues with concurrency and can occasionally deadlock.

I've had two clients trading with each other, and I've learned a lot about the protocol - and been surprised by how little documentation is available for some of this. Which is as much as I could have hoped for in a weekend, really.

The biggest tasks still to handle are:

  • * Validation of the FIX messages

  • * The remainder of the FIX4.0 standard

  • * A proper multithreaded exchange

  • * Rearranging the code into subpackages

  • * Implementing the FIX4.1 and 4.2 protocols



As promised, the code - such as it is - is available here. I've decided to call it FIXME as a pun on the protocol and the state of the code. I'm releasing it as public domain, so if - God forbid - anyone wants the code, they can have it without attribution.