Expand description

A rock-solid cryprocurrency crawler.

Crawl realtime trades

use crypto_crawler::{crawl_trade, MarketType, Message};

let (tx, rx) = std::sync::mpsc::channel();
std::thread::spawn(move || {
    for msg in rx {
        println!("{}", msg);
    }
});

// Crawl realtime trades for all symbols of binance inverse_swap markets, only run for 5 seconds
crawl_trade("binance", MarketType::InverseSwap, None, tx, Some(5));

Crawl realtime level2 orderbook incremental updates

use crypto_crawler::{crawl_l2_event, MarketType, Message};

let (tx, rx) = std::sync::mpsc::channel();
std::thread::spawn(move || {
    for msg in rx {
        println!("{}", msg);
    }
});

// Crawl realtime level2 incremental updates for all symbols of binance inverse_swap markets, only run for 5 seconds
crawl_l2_event("binance", MarketType::InverseSwap, None, tx, Some(5));

Crawl level2 orderbook full snapshots from RESTful API

use crypto_crawler::{crawl_l2_snapshot, MarketType, Message};

let (tx, rx) = std::sync::mpsc::channel();
std::thread::spawn(move || {
    for msg in rx {
        println!("{}", msg);
    }
});

// Crawl level2 full snapshots for all symbols of binance inverse_swap markets, only run for 5 seconds
crawl_l2_snapshot("binance", MarketType::InverseSwap, None, tx, Some(5));

Crawl realtime level2 orderbook top-K snapshots

use crypto_crawler::{crawl_l2_topk, MarketType, Message};

let (tx, rx) = std::sync::mpsc::channel();
std::thread::spawn(move || {
    for msg in rx {
        println!("{}", msg);
    }
});

// Crawl realtime level2 top-k snapshots for all symbols of binance inverse_swap markets, only run for 5 seconds
crawl_l2_topk("binance", MarketType::InverseSwap, None, tx, Some(5));

Crawl realtime level3 orderbook incremental updates

use crypto_crawler::{crawl_l3_event, MarketType, Message};

let (tx, rx) = std::sync::mpsc::channel();
std::thread::spawn(move || {
    for msg in rx {
        println!("{}", msg);
    }
});

// Crawl realtime level3 updates for all symbols of CoinbasePro spot market, only run for 5 seconds
crawl_l3_event("coinbase_pro", MarketType::Spot, None, tx, Some(5));

Crawl level3 orderbook full snapshots from RESTful API

use crypto_crawler::{crawl_l3_snapshot, MarketType, Message};

let (tx, rx) = std::sync::mpsc::channel();
std::thread::spawn(move || {
    for msg in rx {
        println!("{}", msg);
    }
});

// Crawl level3 orderbook full snapshots for all symbols of CoinbasePro spot markets, only run for 5 seconds
crawl_l3_snapshot("coinbase_pro", MarketType::Spot, None, tx, Some(5));

Crawl realtime BBO

use crypto_crawler::{crawl_bbo, MarketType, Message};

let (tx, rx) = std::sync::mpsc::channel();
std::thread::spawn(move || {
    for msg in rx {
        println!("{}", msg);
    }
});

// Crawl realtime best bid and ask messages for all symbols of binance COIN-margined perpetual markets, only run for 5 seconds
crawl_bbo("binance", MarketType::InverseSwap, None, tx, Some(5));

Crawl 24hr rolling window tickers

use crypto_crawler::{crawl_ticker, MarketType, Message};

let (tx, rx) = std::sync::mpsc::channel();
std::thread::spawn(move || {
    for msg in rx {
        println!("{}", msg);
    }
});

// Crawl 24hr rolling window tickers for all symbols of binance COIN-margined perpetual markets, only run for 5 seconds
crawl_ticker("binance", MarketType::InverseSwap, None, tx, Some(5));

Crawl candlesticks(i.e., OHLCV)

use crypto_crawler::{crawl_candlestick, MarketType, Message};

let (tx, rx) = std::sync::mpsc::channel();
std::thread::spawn(move || {
    for msg in rx {
        println!("{}", msg);
    }
});

// Crawl candlesticks from 1 minute to 3 minutes for all symbols of binance COIN-margined perpetual markets, only run for 5 seconds
crawl_candlestick("binance", MarketType::InverseSwap, None, tx, Some(5));

Crawl funding rates

use crypto_crawler::{crawl_funding_rate, MarketType, Message};

let (tx, rx) = std::sync::mpsc::channel();
std::thread::spawn(move || {
    for msg in rx {
        println!("{}", msg);
    }
});

// Crawl funding rates for all symbols of binance COIN-margined perpetual markets, only run for 5 seconds
crawl_funding_rate("binance", MarketType::InverseSwap, None, tx, Some(5));

Structs

Message represents messages received by crawlers.

Functions

Crawl best bid and ask.

Crawl candlestick(i.e., OHLCV) data.

Crawl perpetual swap funding rates.

Crawl level2 orderbook update events.

Crawl level2 orderbook snapshots through RESTful APIs.

Crawl level2 orderbook top-k snapshots through websocket.

Crawl level3 orderbook update events.

Crawl level3 orderbook snapshots through RESTful APIs.

Crawl all open interest.

Crawl 24hr rolling window ticker.

Crawl realtime trades.

Subscribe to multiple message types of one symbol.