10个版本
0.1.9 | 2024年4月13日 |
---|---|
0.1.8 | 2024年4月13日 |
0.1.0 | 2024年3月23日 |
#90 in WebSocket
每月487次下载
用于 ig_trading_api
250KB
2K SLoC
Lightstreamer Rust客户端SDK
本项目是Lightstreamer TLCP(基于文本的实时连接协议)在Rust中的部分实现。它提供了一个客户端SDK来与Lightstreamer服务器交互,专注于满足ig_trading_api项目的特定需求。
功能
- 全双工基于WebSocket的连接模式。
- 对项目和项目组的订阅。
- MERGE订阅模式。
- 监听连接事件和消息。
- 配置连接选项和连接详细信息。
- 订阅生命周期管理。
- 检索实时项目更新。
请注意,此SDK目前不支持Lightstreamer协议的所有功能和功能。它已被开发来满足上述ig_trading_api项目的需求。其他连接模式、订阅模式(DISTINCT、RAW、COMMAND)和一些其他高级选项目前尚未实现。
安装
要在您的Rust项目中使用此SDK,请将以下依赖项添加到您的Cargo.toml
[dependencies]
lightstreamer-client = "0.1.9"
使用
以下是如何使用Lightstreamer Rust客户端SDK的简单示例
use lightstreamer_client::ls_client::LightstreamerClient;
use lightstreamer_client::subscription::{Subscription, SubscriptionMode};
#[tokio::main]
async fn main() {
// Create a Lightstreamer client
let client = LightstreamerClient::new(
Some("http://push.lightstreamer.com/lightstreamer"), // Lightstreamer server
Some("DEMO"), // adapter set
None, // username
None, // password
).unwrap();
// Create a subscription
let mut subscription = Subscription::new(
SubscriptionMode::Merge,
Some(vec!["item1".to_string(), "item2".to_string()]),
Some(vec!["field1".to_string(), "field2".to_string()]),
).unwrap();
// Subscribe and connect
client.subscribe(subscription);
client.connect(None).await.unwrap();
}
有关如何使用SDK订阅项目更新的更高级示例,请参阅项目源代码中的main.rs文件。它演示了创建Lightstreamer客户端、设置订阅、处理项目更新以及使用可配置的连接尝试次数管理连接生命周期。
有关使用SDK的更多详细信息,请参阅参考文档。
文档
完整的SDK文档可在docs.rs上找到。
项目结构
尽管此SDK没有完全实现Lightstreamer协议,但它采用了稳固的结构和框架,类似于官方的Lightstreamer库。代码有文档说明,项目旨在便于社区贡献以添加对缺失特性的支持。
许可证
本项目采用GPL-3.0许可证。有关详细信息,请参阅许可证文件。
贡献
欢迎贡献。请提出问题或提交拉取请求以提出更改,并帮助SDK通过添加额外的Lightstreamer功能来完善。
依赖项
~8–24MB
~333K SLoC