Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Libtrading, an ultra low-latency trading connectivity library for C and C++.

License

Notifications You must be signed in to change notification settings

githubCode3a/libtrading

Open more actions menu
 
 

Repository files navigation

Libtrading

Build Status

Libtrading is an open source API for high-performance, low-latency trading applications. It implements network protocols used for communicating with exchanges, dark pools, and other trading venues. The API supports FIX, FIX/FAST, and many proprietary protocols such as ITCH and OUCH used by NASDAQ.

Features

  • C API
  • High performance, low latency
  • FIX dialect support
  • SystemTap/DTrace probes

Install

Install prerequisite packages:

Debian

$ apt-get install pkg-config libxml2-dev libglib2.0-dev libncurses5-dev \
    python-yaml libevent-dev

Fedora

$ yum install zlib-devel libxml2-devel glib2-devel vim-common ncurses-devel \
    python-yaml libevent-devel

Note: on older RHEL versions you'll need to replace libevent-devel with libevent2-devel

OSX

$ brew install libevent glib pkgconfig
$ pip install pyyaml

Then run:

$ make install

You can also run the test harness:

$ make check

Usage

To measure FIX engine performance locally, start a FIX server:

$ ./tools/fix/fix_server -m 1 -p 7070
Server is listening to port 7070...

and then run the FIX client latency tester against it:

$ ./tools/fix/fix_client -n 100000 -m order -p 7070 -h localhost
Client Logon OK
Messages sent: 100000
Round-trip time: min/avg/max = 15.0/16.8/129.0 μs
Client Logout OK

Documentation

Performance

Protocol RTT (μs)
FAST 13
FIX 6

The following above were obtained by running Libtrading messaging ping-pong tests on a 4-way Intel Haswell 3.60 GHz CPU running Fedora 21 with Linux 3.19.7-200. The processes were pinned to separate physical cores and the numbers include time spent in the Linux TCP/IP stack.

FIX engine round-trip time frequency plot for the above looks as follows:

License

Copyright (C) 2011-2014 Pekka Enberg and contributors

Libtrading is distributed under the 2-clause BSD license.

Contributors

  • Denis Ivaykin
  • Marat Stanichenko
  • Jussi Virtanen

About

Libtrading, an ultra low-latency trading connectivity library for C and C++.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 94.1%
  • Makefile 4.3%
  • C++ 1.6%
Morty Proxy This is a proxified and sanitized view of the page, visit original site.