Skip to main content

Rithmic R|API+ MBO & Trade Data Bridge - ZeroMQ PUB/SUB bridge system

Project description

Rithmic MBO & Trade Data Bridge

PyPI version License: MIT

A high-performance market data bridge that connects to Rithmic via R|API+ (.NET) and publishes MBO (Market-by-Order) and Trade data over ZeroMQ. Designed for low-latency algorithmic trading and RL (Reinforcement Learning) environments.

日本語版はこちら (Japanese version)

Architecture

sequenceDiagram
    participant Client as Client Application (WSL2/Linux/Python)
    participant Publisher as Rithmic Bridge Publisher (Windows)
    participant Rithmic as Rithmic Infrastructure (R|API+)

    Note over Publisher, Rithmic: Connects via Plugin Mode (Port 56000)
    Publisher->>Rithmic: Subscribe(Symbol, Exchange)
    Rithmic-->>Publisher: Market Data (MBO/Trade)
    Publisher-->>Client: ZeroMQ PUB (Stream Data)
    Client->>Publisher: ZeroMQ REQ (Dynamic Subscription)

Features

  • Dynamic Subscription: Subscribe to symbols on-the-fly without restarting the server.
  • MBO Support: Real-time Order Book reconstruction (Level 3 data).
  • ZeroMQ Distribution: Publish data to multiple clients over the network (e.g., from Windows to WSL2).
  • Python Library: Ready-to-use RithmicClient class for easy integration.
  • Low Latency: Optimized queue management and data serialization.

Prerequisites

  • Windows 10/11 (for the Publisher)
  • R | API+ (.NET) from Rithmic
  • R | Trader Pro (for Plugin Mode connection)
  • Python 3.10+

Installation

1. R | API+ (.NET) Setup

This project requires the Rithmic API library rapiplus.dll. Redistribution of this DLL is prohibited.

  1. Request the API: Visit https://www.rithmic.com/api-request and request the R | API (.NET).
  2. Installation: Place the rapiplus.dll from the downloaded package into the standard Rithmic path: C:\Program Files (x86)\Rithmic\Rithmic Trader Pro\rapiplus.dll

2. Install the Bridge

pip install rithmic-bridge

# Recommended for local editable CLI usage
uv tool install --editable .

Quick Start

1. Launch the Publisher (Windows)

Launch the publisher in R|API mode. You can provide credentials via command-line arguments:

uvx rithmic-bridge publish --mode rapi --user YOUR_USER --password YOUR_PASS --symbol GCJ6 --exchange COMEX

Note: Use --mode dummy for testing without a Rithmic account.

2. Use the Client Library (Client/WSL2)

from rithmic_bridge.client.library import RithmicClient

# Connect to the publisher on Windows
client = RithmicClient(host="192.168.x.x")

# Define callbacks
def on_mbo(event):
    print(f"MBO: {event.price} x {event.size}")

def on_trade(event):
    print(f"TRADE: {event.price} @ {event.size}")

client.on_mbo(on_mbo)
client.on_trade(on_trade)

client.connect()
client.subscribe("GCJ6", "COMEX")

# Keep the script running
import time
while True:
    time.sleep(1)

3. CLI Client

You can also use the built-in CLI client for quick monitoring:

uvx rithmic-bridge client --host 192.168.x.x --symbol GCJ6 --exchange COMEX

Configuration

The system can be configured via command-line arguments (recommended) or a .env file.

Argument Description Default
--mode rapi or dummy dummy
--user Rithmic username -
--password Rithmic password -
--symbol Default symbol GCJ6
--exchange Exchange COMEX
--bind ZMQ bind address tcp://*:5555
--dll-dir Path to rapiplus.dll (Standard paths)

Development

We use uv for dependency management.

git clone https://github.com/akivajp/rithmic-bridge
cd rithmic-bridge
uv sync

License

MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rithmic_bridge-1.0.1.tar.gz (128.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rithmic_bridge-1.0.1-py3-none-any.whl (53.9 kB view details)

Uploaded Python 3

File details

Details for the file rithmic_bridge-1.0.1.tar.gz.

File metadata

  • Download URL: rithmic_bridge-1.0.1.tar.gz
  • Upload date:
  • Size: 128.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for rithmic_bridge-1.0.1.tar.gz
Algorithm Hash digest
SHA256 60076d7e3a365cec5636fab614ac31c47823277189859590d4043a8f175d397c
MD5 9b8ba1ca62b20871ee3e5cff1b7e1da3
BLAKE2b-256 b7af4c2277806f5cecca3eb35ffb9ef1b313d4253a1870b308f6059abce6a8e2

See more details on using hashes here.

File details

Details for the file rithmic_bridge-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: rithmic_bridge-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 53.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for rithmic_bridge-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 359bc96dbc018565183e2d6473f6225c4b72cb208772c4990ece595adf6f7520
MD5 3d66133d1e21fc726b2a8a5d4362fbeb
BLAKE2b-256 0914f33178a2eac63c6a5ac08417eab0e464692a8dd51354189769c50971da75

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page