4 个版本 (2 个破坏性更新)
0.3.0 | 2024 年 2 月 3 日 |
---|---|
0.2.0 | 2020 年 5 月 10 日 |
0.1.1 | 2020 年 5 月 9 日 |
0.1.0 | 2020 年 5 月 9 日 |
#534 在 网络编程
1MB
688 行
RMonitor for Rust
一个简单的、与 Tokio 兼容的协议解码器,用于 RMonitor,这是一种由不同体育计时软件供应商支持的基于行的计时协议。
解码器支持两种协议
- 原始的 RMonitor 计时协议
- IMSA 增强版 协议,增加了两种扩展记录类型。
示例
您需要在依赖项中包含 rmonitor
、tokio
和 tokio-util
。
rmonitor = "0.2"
tokio-util = { version = "0.3", features = ["codec"] }
tokio = { version = "0.2", features = ["full"] }
然后创建您的 main.rs
use rmonitor::RMonitorDecoder;
use std::error::Error;
use tokio::net::TcpStream;
use tokio::stream::StreamExt;
use tokio_util::codec::FramedRead;
#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
// Connect to your target RMonitor server
let stream = TcpStream::connect("127.0.0.1:4000").await?;
// Construct a decode with a maximum line length of 2048
let mut reader = FramedRead::new(stream, RMonitorDecoder::new_with_max_length(2048));
while let Ok(Some(Ok(event))) = reader.next().await {
println!("{:?}", event);
}
Ok(())
}
还有一个 同步示例,用于展示在不需要引入 Tokio 运行时的情况下使用解码器的方法。
许可证
许可方式为以下之一
- Apache 许可证 2.0(《LICENSE-APACHE》或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可证(《LICENSE-MIT》或 http://opensource.org/licenses/MIT)
由您选择。
依赖项
~4–12MB
~133K SLoC