Crate ribbit_client

Source
Expand description

Ribbit protocol client for Cascette

This crate provides an async TCP client for Blizzard’s Ribbit protocol, which is used to retrieve version information, CDN configurations, and other metadata for Blizzard games.

§Example

use ribbit_client::{RibbitClient, Region, Endpoint};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Create a client for the US region
    let client = RibbitClient::new(Region::US);

    // Request WoW version information
    let endpoint = Endpoint::ProductVersions("wow".to_string());
    let response = client.request(&endpoint).await?;

    Ok(())
}

Re-exports§

pub use client::Response;
pub use client::RibbitClient;
pub use error::Error;
pub use error::Result;
pub use response_types::BgdlEntry;
pub use response_types::CdnEntry;
pub use response_types::ProductBgdlResponse;
pub use response_types::ProductCdnsResponse;
pub use response_types::ProductSummary;
pub use response_types::ProductVersionsResponse;
pub use response_types::SummaryResponse;
pub use response_types::TypedResponse;
pub use response_types::VersionEntry;
pub use types::Endpoint;
pub use types::ProtocolVersion;
pub use types::Region;

Modules§

certificate_fetcher
Certificate fetcher for retrieving signer certificates by SKI
client
Ribbit TCP client implementation
cms_parser
CMS/PKCS#7 parser for extracting signer certificates and public keys
dns_cache
DNS caching for Ribbit client connections
error
Error types for the Ribbit client
response_types
Strongly-typed response definitions for all Ribbit endpoints
signature
ASN.1 signature parsing for Ribbit V1 responses
signature_verify
Enhanced signature verification for Ribbit V1 responses
types
Type definitions for the Ribbit client