Helix, a market data feed handler for C and C++.
Switch branches/tags
Nothing to show
Clone or download
penberg build: Add debug build mode
This adds a debug build mode, which enables AddressSanitizer.
Latest commit 45b62e6 Oct 18, 2017



Build Status

Helix is an ultra low-latency market data feed handler written in C++. It provides an API to trading applications that normalizes market data updates from multiple feeds.

Helix core does not include networking functionality and expects applications to provide raw packet data.



  • libuv 1.0 or later
  • Boost libraries


brew install boost cmake libuv pkg-config

Building and Installing

To build Helix:

cmake .

To build a debug version of Helix that enables AddressSanitizer:

mkdir -p build/debug
cd build/debug
cmake -DCMAKE_BUILD_TYPE=debug ../..

To install Helix:

make install

Please note that Helix generates a pkg-config file so you can use pkg-config to integrate Helix with your project build system. If you installed Helix in the default location /usr/local/, you need to set the PKG_CONFIG_PATH environment variable as follows:

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/


To convert a NASDAQ TotalView-ITCH 5.0 file to CSV:

./helix-trace -i 07302015.NASDAQ_ITCH50 -s AAPL -c nasdaq-binaryfile-itch50 -f csv -o AAPL.csv

Please note that Helix only works with uncompressed files.



  • C++ API
  • C binding
  • Order book view
  • Data normalization
  • Data filtering
  • Retransmission requests
  • Order book aggregation
  • Synthetic NBBO


    • NASDAQ TotalView-ITCH 5.0
    • Nordic Equity TotalView-ITCH 2.02.2
    • MoldUDP
    • MoldUDP64
    • BinaryFILE
    • SoupFILE
  • Parity
    • PMD


Copyright © 2015 Pekka Enberg

Helix is distributed under the 2-clause BSD license. See LICENSE for the full license text.