8 releases
0.1.0-beta.8 | Mar 10, 2022 |
---|---|
0.1.0-beta.7 | Dec 24, 2021 |
0.1.0-beta.5 | Nov 23, 2021 |
0.1.0-beta.1 | Oct 31, 2021 |
#4 in #danmaku
61KB
1.5K
SLoC
actix-bililive
A simple stream-based bilibili live client library for the Actix ecosystem.
Minimum supported rust version: 1.56.0
Runtime Support
This crate supports actix-rt
(single-threaded tokio
) runtime.
Features
- Ergonomic
Stream
/Sink
interface. - Easy establishment of connection via given live room id.
- Handles heartbeat packets automatically.
- Auto retry when connection fails (optional).
- Decompresses
Zlib
payloads automatically.
Example
use actix_bililive::{ConfigBuilder, RetryConfig, connect_with_retry};
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);
}
}
}
Dependencies
~15–26MB
~465K SLoC