Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/libtrading/libtrading

Libtrading, an ultra low-latency trading connectivity library for C and C++.
https://github.com/libtrading/libtrading

Last synced: 18 days ago
JSON representation

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

Awesome Lists containing this project

README

        

# Libtrading

[![Build Status](https://secure.travis-ci.org/libtrading/libtrading.png?branch=master)](http://travis-ci.org/libtrading/libtrading)

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

* [Quick Start Guide](docs/quickstart.md)
* [Exchange Coverage](https://github.com/libtrading/libtrading/wiki/Exchange-Coverage)
* [Protocol Coverage](https://github.com/libtrading/libtrading/wiki/Protocol-Coverage)

## 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