#trading #cryptocurrency #bybit #api-bindings

rust-bybit

Bybit的WebSocket V5 API的Rust API连接器

2个不稳定版本

0.2.0 2023年3月12日
0.1.0-alpha.02022年6月15日

#5 in #bybit

每月 24 次下载

MIT 许可证

50KB
985

rust-bybit

Build Status

英语 | 简体中文

Bybit的WebSockets V5 API的非官方Rust API连接器。

免责声明

这是一个Bybit API的非官方Rust API连接器,用户使用此项目应承担所有责任和风险。

安装

将以下内容添加到Cargo.toml

[dependencies]
rust-bybit = "0.2"

基本用法

为特定频道创建WebSocket客户端

use bybit::ws::response::SpotPublicResponse;
use bybit::ws::spot;
use bybit::KlineInterval;
use bybit::WebSocketApiClient;

let mut client = WebSocketApiClient::spot().build();

订阅您感兴趣的主题。以下代码将订阅所有具有symbol=ETHUSDT或symbol=BTC3SUSDT(杠杆代币)的主题(请检查Bybit V5 API以获取所有可用主题)。注意,订阅将在调用client.run之前不会发送

let symbol = "ETHUSDT";
let lt_symbol = "BTC3SUSDT";

client.subscribe_orderbook(symbol, spot::OrderbookDepth::Level1);
client.subscribe_orderbook(symbol, spot::OrderbookDepth::Level50);
client.subscribe_trade(symbol);
client.subscribe_ticker(symbol);
client.subscribe_kline(symbol, KlineInterval::Min1);
client.subscribe_lt_kline(lt_symbol, KlineInterval::Min5);
client.subscribe_lt_ticker(lt_symbol);
client.subscribe_lt_nav(lt_symbol);

将回调函数传递给client.run以启动客户端。回调函数必须接受一个参数:WebSocket响应的Enum。当收到WebSocket响应时,将调用回调函数

let callback = |res: SpotPublicResponse| match res {
    SpotPublicResponse::Orderbook(res) => println!("Orderbook: {:?}", res),
    SpotPublicResponse::Trade(res) => println!("Trade: {:?}", res),
    SpotPublicResponse::Ticker(res) => println!("Ticker: {:?}", res),
    SpotPublicResponse::Kline(res) => println!("Kline: {:?}", res),
    SpotPublicResponse::LtTicker(res) => println!("LtTicker: {:?}", res),
    SpotPublicResponse::LtNav(res) => println!("LtNav: {:?}", res),
    SpotPublicResponse::Op(res) => println!("Op: {:?}", res),
};

match client.run(callback) {
    Ok(_) => {}
    Err(e) => println!("{}", e),
}

这是一个简单的示例,仅打印接收到的WebSocket响应。还有一些更复杂的示例用于实际使用演示,例如维护本地订单簿。您可以通过运行cargo run --example local_orderbook来查看其工作方式。

捐赠

您可以通过以下加密货币钱包地址捐赠以帮助此项目进一步发展。

网络 地址
Ethereum (ERC20) 0x2ef22ed84D6b57496dbb95257C4eb8F02cE9b7A6
BNB Smart Chain (BEP20) 0x869F8F9A78a18818F93061A02B233507b5F64151
Tron (TRC20) TPvqJYHFQ7iqEgtEcYrSLTjpGsAq41dhFt
Bitcoin 3C6o4ADGFXyuf6TUXKL6YyMyRfhek6zxzx

依赖项

~7–19MB
~350K SLoC