#market-data #trading #cryptocurrency #data-stream #api-client #websocket #tardis

tardis-rs

一个 Rust 包,允许您通过 Tardis.dev 的 API 轻松回放历史市场数据和流式传输实时市场数据。

5 个版本

0.1.4 2023年11月1日
0.1.3 2023年10月22日
0.1.2 2023年9月23日
0.1.1 2023年9月22日
0.1.0 2023年9月22日

#17 in #market-data

每月 42 次下载

LGPL-3.0-only

42KB
662

Tardis-rs

Tardis.dev 的 API 客户端(REST,WebSocket)。

tardis-rs 允许您通过 Tardis.dev 的 API 轻松回放历史市场数据和流式传输实时市场数据。

[!警告]
注意:要与 Tardis Machine 服务器 交互,必须启用 machine 功能。

目录

快速入门

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);
    }
}

包功能

为了防止编译未使用的依赖项,tardis-rs 禁用了一些功能,其中一些默认禁用

功能 描述
machine 启用 Tardis Machine 服务器 的客户端。

依赖项

~7–19MB
~283K SLoC