Q:

Using QuickFIX in a C project

QuickFIX is a well-known open-source implementation of the FIX protocol. This library has been ported to numerous languages, though for the moment I am concentrating the on C/C++ implementation.
Unfortunately, I do not know C++ at all but my knowledge in C is rather high (professional level). My goal is to develop an order management system that will be based on QuickFIX. I would be glad to have my system both as fast as possible and well designed. Because I do not want to produce a messy product, I would prefer to implement it in C.
So, my question is pretty simple: Is it possible to use QuickFIX in C project? I have been trying to figure this out with no success. I did not manage to find any information online. I would appreciate it if someone could provide her/his experience or at least point me in the right direction.

A:

The canonical QuickFIX is very C++. It has classes for the message types and uses factory patterns for a lot of the auxiliary components. It requires users to override virtual functions to define the communication callbacks. It even uses exceptions to signal certain desired state changes, whether there is an error or not.
Most other language bindings for QuickFIX are wrappers to the C++ version. (The exception is Java, for which there is a complete rewrite.) There definitely aren't any C bindings that come with the canonical source code. So if you can't find an existing set of bindings online, you'll have to write your own.

A:

It's not exactly QuickFIX but look at libtrading.  Maybe you can tailor it to your needs.
From the README:

libtrading is a library for electronic trading. Its purpose is to support market data and order entry network protocols used by trading venues across the world.

