tardis-rs

Crates.iotardis-rs
lib.rstardis-rs
version0.1.4
sourcesrc
created_at2023-09-22 12:51:58.650612
updated_at2023-11-01 18:03:41.965925
descriptionA rust crate that allows you to easily replay historical market data and stream live market data through Tardis.dev's API
homepagehttps://github.com/cybotrade/tardis-rs/
repositoryhttps://github.com/cybotrade/tardis-rs/
max_upload_size
id980533
size49,315
(cybotrade)

documentation

README

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.
Commit count: 17

cargo fmt