Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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++.
- Host: GitHub
- URL: https://github.com/libtrading/libtrading
- Owner: libtrading
- License: other
- Created: 2010-10-30T08:40:39.000Z (about 14 years ago)
- Default Branch: master
- Last Pushed: 2020-12-16T18:53:25.000Z (almost 4 years ago)
- Last Synced: 2024-07-31T22:54:30.667Z (3 months ago)
- Language: C
- Homepage: http://libtrading.org
- Size: 1.29 MB
- Stars: 695
- Watchers: 96
- Forks: 240
- Open Issues: 32
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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 | 6The 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