Skip to content

cybotrade/tardis-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tardis-rs

API Clients (REST, WebSocket) for Tardis.dev.

tardis-rs allows you to easily replay historical market data and stream live market data through Tardis.dev's API.

Warning

NOTE: The feature machine must be enabled in order to interact with Tardis Machine Server.

Table of contents

Quickstart

Cargo.toml

[package]
name = "example"
version = "0.1.0"
edition = "2021"

[dependencies]
tokio = { version = "1", features = ["macros", "rt-multi-thread"] }
tardis-rs = { version = "0.1", features = ["machine"] }

main.rs

use tardis_rs::{Exchange, machine::{Client, Message}};
use chrono::NaiveDate;

#[tokio::main]
async function main() {
    let client = Client::new(std::env::var("TARDIS_MACHINE_WS_URL").unwrap());

    let stream = client
    .replay_normalized(vec![ReplayNormalizedRequestOptions {
        exchange: Exchange::Bybit,
        symbols: Some(vec!["BTCUSDT".to_string()]),
        from: NaiveDate::from_ymd_opt(2022, 10, 1).unwrap(),
        to: NaiveDate::from_ymd_opt(2022, 10, 2).unwrap(),
        data_types: vec!["trade_bar_60m".to_string()],
        with_disconnect_messages: None,
    }])
    .await
    .unwrap();

    pin_mut!(stream);

    while let Some(msg) = stream.next().await {
        println!("Received trade bar: {:?}", message);
    }
}

Crate features

To avoid compiling unused dependencies, tardis-rs gates certain features, some of which are disabled by default:

Feature Description
machine Enables the client for Tardis Machine Server.