#订阅 #连接 #服务器 #事件 #实时 #lightstreamer

bin+lib lightstreamer-client

Lightstreamer的Rust客户端,旨在简化与Lightstreamer服务器的实时通信

10个版本

0.1.9 2024年4月13日
0.1.8 2024年4月13日
0.1.0 2024年3月23日

#90 in WebSocket

Download history 3/week @ 2024-05-18 1/week @ 2024-05-25 2/week @ 2024-06-08 1/week @ 2024-06-15

每月487次下载
用于 ig_trading_api

GPL-3.0-only

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