/orderly

A Rust WebSocket client that connects to multiple crypto exchanges and publishes a merged live order book through gRPC stream

Primary LanguageRustMozilla Public License 2.0MPL-2.0

orderly

A Rust CLI WebSocket client for crypto exchanges. Connects to the WebSocket feeds of multiple exchanges. Subscribes to the live order book for the given currency pair. Publishes a merged order book as a gRPC stream.

Currently supports:

  • Bitstamp WebSocket: wss://ws.bitstamp.net
  • Binance WebSocket: wss://stream.binance.com:9443/ws
  • Kraken WebSocket: wss://ws.kraken.com
  • Coinbase WebSocket: wss://ws-feed.exchange.coinbase.com
USAGE:
    orderly-server [OPTIONS]

OPTIONS:
    -h, --help               Print help information
        --no-binance         (Optional) Don't show Binance in gRPC stream. Default: false
        --no-bitstamp        (Optional) Don't show Bitstamp in gRPC stream. Default: false
        --no-kraken          (Optional) Don't show Kraken in gRPC stream. Default: false
        --no-coinbase        (Optional) Don't show Coinbase in gRPC stream. Default: false
    -p, --port <PORT>        (Optional) Port number on which the the gRPC server will be hosted.
                             Default: 50051
    -s, --symbol <SYMBOL>    (Optional) Currency pair to subscribe to. Default: ETH/BTC

Run gRPC server:

cargo run --bin orderly-server

or with logs and options:

env RUST_LOG=info cargo run --bin orderly-server -- --symbol ETH/BTC --port 50051

Exclude certain exchanges:

cargo run --bin orderly-server -- --no-binance --no-bitstamp

Client

Connects to the gRPC server and streams the orderbook summary.

USAGE:
    orderly-client [OPTIONS]

OPTIONS:
    -h, --help           Print help information
    -p, --port <PORT>    (Optional) Port number of the gRPC server. Default: 50051

Run gRPC client:

cargo run --bin orderly-client

or with logs and options:

env RUST_LOG=info cargo run --bin orderly-client -- --port 50051