Crate actix_bililive

Crate actix_bililive 

Source
Expand description

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);
        }
    }
}

Re-exports§

pub use bililive_core as core;

Modules§

errors
Error types.
stream
Bilibili live stream.

Structs§

Packet
Bililive packet.
RetryConfig
The configuration for retry behavior.

Enums§

Operation
Live event types.
Protocol
Protocol types.

Functions§

connect
Connect to bilibili live room.
connect_with_retry
Connect to bilibili live room with auto retry.

Type Aliases§

ConfigBuilder
bililive stream config builder.