9个版本 (5个重大变更)
0.6.3 | 2022年3月7日 |
---|---|
0.6.2 | 2022年3月7日 |
0.6.1 | 2021年4月28日 |
0.5.0 | 2021年4月1日 |
0.1.0 | 2020年6月25日 |
#185 in 视频
每月28次下载
5MB
91K SLoC
librist-rust
librist的Rust包装器,允许您在Rust应用程序中使用RIST协议。
功能支持
此包装器处于非常初级的阶段,目前不支持librist的一些功能
- 发送 - 不支持
- 接收 - 基本支持
- 自定义身份验证钩子 - 不支持
- 带外数据 - 不支持
- 支持librist日志配置
- 统计报告 - 不支持
- 数据回调 - 不支持
- NAK控制 - 不支持
示例
接收并十六进制转储RIST数据包,
use librist_rust::{LoggingSettings, LogLevel, ReceiverContext, Profile, PeerConfig, RistError, DataReadResponse};
use std::io::stderr;
fn main() {
let url = std::env::args().skip(1).next()
.expect("Please supply one URL argument");
let peer_config = PeerConfig::parse_address(&url)
.expect(&format!("Unable to parse {:?}",url));
let logging_settings = LoggingSettings::file(LogLevel::Info, stderr())
.expect("LoggingSettings::file() failed");
let mut ctx = ReceiverContext::create(Profile::Main, logging_settings)
.expect("Context::receiver_create failed");
ctx.peer_create(peer_config)
.expect("peer_create() failed");
// Have to call these or the connection with the librist 'ristsender' tool will not be
// established
ctx.auth_handler_set().expect("auth_handler_set() failed");
ctx.oob_callback_set().expect("oob_callback_set() failed");
ctx.start();
loop {
match ctx.data_read(std::time::Duration::from_secs(1)) {
Ok(DataReadResponse::NoData) => {
println!("No data received within timeout window")
},
Ok(DataReadResponse::Data { block, queue_size }) => {
println!("Got a data block; queue now at {} items", queue_size);
hexdump::hexdump(block.payload())
},
Err(e) => {
println!("data_read() failed {:?}", e);
return;
},
}
}
}
上述示例位于此项目中,因此从已检出副本中,您可以通过以下命令转储发送到本地主机12344端口的RIST数据包的有效负载,
cargo run --release --example receiver rist://@127.0.0.1:12344