8个版本
0.2.0-beta.5 | 2022年3月10日 |
---|---|
0.2.0-beta.4 | 2021年11月6日 |
0.2.0-beta.1 | 2021年10月31日 |
0.1.2 | 2021年11月6日 |
0.1.0 | 2021年9月25日 |
在异步分类中排名1408
每月下载量41次
69KB
1.5K SLoC
bililive-rs
一个简单的基于流的bilibili直播客户端库,由async-tungstenite支持。
要在项目中使用,请将以下内容添加到您的Cargo.toml中
bililive = "0.2.0-beta.1"
最低支持的Rust版本:1.56.0
运行时支持
此crate支持tokio
和async-std
运行时。
tokio
支持默认启用。当在async-std
运行时使用,将Cargo.toml中的相应依赖项更改如下
bililive = { version = "0.2.0-beta.1", default-features = false, features = ["async-native-tls"] }
有关更多信息,请参阅Crates Features
部分。
特性
- 易于使用的
Stream
/Sink
接口。 - 通过提供的直播房间ID轻松建立连接。
- 自动处理心跳数据包。
- 连接失败时自动重试(可选)。
- 自动解压缩
Zlib
有效负载。
示例
use bililive::connect::tokio::connect_with_retry;
use bililive::{ConfigBuilder, RetryConfig};
use futures::StreamExt;
use log::info;
use serde_json::Value;
let config = ConfigBuilder::new()
.by_uid(1602085)
.await
.unwrap()
.fetch_conf()
.await
.unwrap()
.build();
let mut stream = connect_with_retry(config, RetryConfig::default()).await.unwrap();
while let Some(e) = stream.next().await {
match e {
Ok(packet) => {
info!("raw: {:?}", packet);
if let Ok(json) = packet.json::<Value>() {
info!("json: {:?}", json);
}
}
Err(e) => {
info!("err: {:?}", e);
}
}
}
crate特性
tokio-native-tls
(默认): 启用通过tokio-native-tls实现的tokio
支持。tokio-rustls-native-certs
:启用通过tokio-rustls实现的tokio
支持,并使用通过rustls-native-certs找到的本地系统证书。tokio-rustls-webpki-roots
:启用通过tokio-rustls实现的tokio
支持,并使用webpki-roots提供的证书。async-native-tls
:启用通过async-native-tls实现的async_std
支持。
依赖项
~5–22MB
~369K SLoC