Skip to content
 
 

Latest commit

 

History

3,030 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

QuickFIX

Build Status License

QuickFIX is a free, open-source implementation of the FIX protocol (Financial Information eXchange). It is a full-featured messaging engine that supports FIX versions 4.0 through 5.0 SP2, including FIXT 1.1.

Features

  • FIX Protocol Support: FIX 4.0, 4.1, 4.2, 4.3, 4.4, 5.0, 5.0 SP1, 5.0 SP2, and FIXT 1.1
  • Multiple Language Bindings: C++ and Python (via SWIG)
  • Database Support: MySQL, PostgreSQL, ODBC
  • SSL/TLS Support: Native OpenSSL integration
  • Flexible Architecture: Pluggable message stores and logging
  • Cross-Platform: Windows, Linux, macOS
  • Production Ready: Used by banks, brokers, and trading firms worldwide

Supported Platforms

QuickFIX is built and tested in CI on:

  • Library (build_test_cmake.yml, Debug/Release x SSL on/off): windows-2022, ubuntu-latest, macos-latest
  • Wheels (wheels.yml, native runners only -- no emulation): manylinux x86_64/aarch64, win_amd64/arm64, macOS x86_64/arm64

Quick Start

Prerequisites

  • C++17 compatible compiler (GCC, Clang, MSVC)
  • CMake 3.12+ (the Windows commands below use cmake -B, which needs 3.13+; ctest --no-tests=error needs 3.19+)
  • Optional: OpenSSL (for SSL/TLS support)
  • Optional: MySQL, PostgreSQL, or ODBC (for database message stores)

Building on Windows? See BUILD.md first. Smart App Control blocks locally built binaries from running, and the OpenSSL DLLs must be on PATH at launch.

Building with CMake (Recommended)

Linux / macOS

cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .
make -j$(nproc)
sudo make install

Linux / macOS with SSL Support

cmake -DCMAKE_BUILD_TYPE=Release -DHAVE_SSL=ON -DCMAKE_INSTALL_PREFIX=/usr/local .
make -j$(nproc)
sudo make install

Windows

cmake -B build -G "Visual Studio 17 2022" -A x64 -DCMAKE_INSTALL_PREFIX=C:\quickfix
cmake --build build --config Release
cmake --install build --config Release

Windows with SSL Support

cmake -B build -G "Visual Studio 17 2022" -A x64 -DHAVE_SSL=ON -DOPENSSL_ROOT_DIR="C:\path\to\openssl" -DCMAKE_INSTALL_PREFIX=C:\quickfix
cmake --build build --config Release
cmake --install build --config Release

cmake -B build creates the build directory if it is missing and reuses it if it already exists, so these commands are safe to re-run. The generator and platform (-G / -A) are fixed the first time a build directory is configured; to change them, delete build\ and configure again.

CMake Build Options

  • -DHAVE_SSL=ON - Enable SSL/TLS support (requires OpenSSL)
  • -DHAVE_MYSQL=ON - Enable MySQL support
  • -DHAVE_POSTGRESQL=ON - Enable PostgreSQL support
  • -DHAVE_ODBC=ON - Enable ODBC support
  • -DHAVE_PYTHON3=ON - Build Python 3 bindings
  • -DQUICKFIX_SHARED_LIBS=ON - Build shared libraries (default: ON)
  • -DQUICKFIX_EXAMPLES=ON - Build example applications (default: ON)
  • -DQUICKFIX_TESTS=ON - Build tests (default: ON)

Using vcpkg

git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh  # or bootstrap-vcpkg.bat on Windows
./vcpkg integrate install
./vcpkg install quickfix

Documentation

Example Applications

QuickFIX includes several example applications:

  • executor: A simple order execution simulator
  • ordermatch: A matching engine example
  • tradeclient: An interactive trading client

These examples demonstrate how to build FIX applications using QuickFIX.

Language Bindings

Python

# Build with Python 3 support
cmake -DHAVE_PYTHON3=ON .
make

Prebuilt wheels for this fork, compiled with TLS enabled, are published as quickfix-tls:

pip install quickfix-tls

The import name stays quickfix, so it is a drop-in replacement for the official quickfix distribution - which means the two install the same module and must not both be installed. See README-PyPI.md for the full package page.

Why this exists

This fork fills two gaps in the official quickfix distribution:

  1. Prebuilt wheels. The official distribution ships as a source archive only, so installing it means compiling the full C++ engine locally - which on Windows needs MSVC and, for TLS, an OpenSSL development installation.
  2. TLS transports, ready to use. These wheels are compiled with HAVE_SSL enabled and ship the OpenSSL runtime, so SSLSocketInitiator / SSLSocketAcceptor and the threaded variants work out of the box.

It also exposes ThreadedSSLSocketInitiator and ThreadedSSLSocketAcceptor, which the QuickFIX C++ library implements but has never exposed through its Python bindings - these are the transports QuickFIX's own C++ examples use for TLS by default.

Both changes are being offered upstream. If they are accepted and the project starts publishing wheels, this package becomes unnecessary.

To build a wheel yourself, pyproject.toml drives the CMake build above via scikit-build-core:

pip wheel . -C cmake.define.OPENSSL_ROOT_DIR=<openssl-root>

See Building a Python wheel in AGENTS.md for prerequisites, the Windows delvewheel step, and testing against another Python version.

Testing

Run the test suite:

# Everything is registered with CTest; run it from the build directory
ctest --output-on-failure
ctest -L unit               # labels: unit, perf, acceptance, python
ctest -LE network           # skip anything that binds a socket

# Or drive the suites directly from test/
cd test
./runut.sh            # unit
./runpt.sh            # performance
./runat.sh 6666       # acceptance (needs the port free, and Ruby)

Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines on:

  • Reporting bugs
  • Suggesting features
  • Submitting pull requests
  • Code style guidelines

Security

For security-related issues, please see our Security Policy.

License

QuickFIX is licensed under the QuickFIX Software License. See the LICENSE file for details.

Support and Community

Acknowledgments

QuickFIX is maintained by the open-source community. Special thanks to all contributors who have helped make this project possible.

About

QuickFIX C++ Fix Engine Library with Python Binding

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages