API for algorithmic and high-frequency trading (HFT).
Note! This project does not contain the implementation of the C++ interfaces. This is due to the ultra low latency communication protocol being closed source.
- Open source interface (no need to sign an NDA to access or use).
- Permissive license (anyone is free to copy and use for whatever purpose).
- Unified interface for all markets.
- Design is strongly inspired by standards and specific implementations used by major exchanges.
- Allocation-free message decoding.
- Auto-generated code based on schemas.
- Strongly typed messages (events).
- Asynchronous interfaces and implementations.
- C++ for ultra low latency.
- FlatBuffers as an optional interface when latency is not a concern.
- Linux (x86-64, AArch64)
- macOS (x86-64)
- FlatBuffers (Apache 2.0 License)
- fmt (MIT License)
- range-v3 (BSL 1.0 License)
- span-lite (BSL 1.0 License)
Optional
- Google Test (BSD 3-Clause License)
The project is primarily designed to be compatible with the conda package manager.
wget -N https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh
bash Miniforge3-Linux-x86_64.sh -b -u -p ~/conda
~/conda/bin/conda install -y \
gxx_linux-64
wget -N https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-aarch64.sh
bash Miniforge3-Linux-aarch64.sh -b -u -p ~/conda
~/conda/bin/conda install -y \
gxx_linux-aarch64
wget -N https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-MacOSX-x86_64.sh
bash Miniforge3-MacOSX-x86_64.sh -b -u -p ~/conda
~/conda/bin/conda install -y \
clang_osx-64
source ~/conda/bin/activate
conda install -y \
git \
cmake \
flatbuffers \
fmt
conda install -y --channel https://roq-trading.com/conda/stable \
roq-oss-range-v3 \
roq-oss-span-lite
In addition, your system should provide clang-format
(at least version 10).
git submodule update --init --recursive
cmake .
make -j4
make test
Documentation can be found here.
Although the API is open source, certain solutions are closed source.
You can download the client library like this
conda install -y --channel https://roq-trading.com/conda/stable \
roq-client
Samples can be found here.
FlatBuffers is primarily used for the event-log storage format.
The project is released under the terms of the MIT license.