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

```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

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

[tokio::main]

async function main() { let client = Client::new(std::env::var("TARDISMACHINEWS_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. |