/fix8

Fix8 is an open source FIX engine written in C++ (released under the Lesser GPL license).

Primary LanguageShellGNU Lesser General Public License v3.0LGPL-3.0

Fix8 Open Source C++ FIX Engine

A modern open source C++ FIX framework featuring complete schema driven customisation, high performance and fast application development.

The system is comprised of a compiler for generating C++ message and field encoders, decoders and instantiation tables; a runtime library to support the generated code and framework; and a set of complete client/server test applications.

Features

  • Fix8 helps you get your FIX protocol client or server up and running quickly. Using one of the standard FIX schemas you can have a FIX client or server up and running in next to no time.

  • Statically compile your FIX xml schema and quickly build your FIX application on top. If you need to add customised messages or fields, simply update the schema and recompile.

  • Fix8 is the fastest C++ Open Source FIX framework. Our testing shows that Fix8 is on average 29% faster encoding/decoding the same message than Quickfix. See Performance to see how we substantiate this shameless bragging.

  • Fix8 supports standard FIX4.X to FIX5.X and FIXT1.X. If you have a custom FIX variant Fix8 can use that too. New FIX versions will be supported.

  • Fix8 offers run-time custom fields, message recycling and a meta-data aware test harness. Incorporates lock free queues, atomics and many other modern techniques.

  • Fix8 is a complete C++ FIX framework, including client/server session and connection classes; support for the standard FIX field types; FIX printer, async logger, async message persister and XML configuration classes.

  • Fix8 statically supports nested components and groups. The Fix8 compiler and runtime library takes the pain out of using repeating groups.

  • The code generated by Fix8 is compiled by your compiler offering the best opportunity for optimisation. Fix8 applications are fast. Typical client encode latency is now 9.8µs, and decode 11.6µs. This is being improved further.

  • Fix8 has been designed to be extended, customised or enhanced. If you have special requirements, Fix8 provides a flexible platform to develop your application on.

  • Fix8 supports field and value domain validation, mandatory/optional field assertion, field ordering, well-formedness testing, retransmission and standard session semantics.

  • Fix8 runs on industry standard Linux. Other *NIX variants may work too.

Directory Layout

Directory Description
./ root directory with configure
compiler/ the f8c compiler source
doc/ doxygen documentation (optionally generated when built)
include/ header files for the runtime library and compiler
runtime/ runtime library source
schema/ quickfix FIX xml schemas
test/ test applications client/server source

Documentation

Documentation is available at API Documentation. All the source code is self-documenting using doxygen.

External Dependencies

Fix8 requires the following third-party software (header files and libraries) being installed to build properly:

Optional Dependencies

If you wish to build the html documentation, you will need:

Building on Linux/UNIX/OSX

The build system is based on automake/autoconf/libtool. You must have libtool installed to build.

% tar xvzf fix8-0.6.7.tar.gz
% cd fix8-0.6.7
% ./configure
% make
% make install

More Information

For more information, see the Fix8 website.