Skip to content

oxicast

Async Google Cast client for Rust. Discover, connect, and control Chromecast devices — powered by tokio.

Async-native

Built on tokio with full async/await. Commands respond instantly — no heartbeat cycle delays.

Auto-reconnect

Exponential backoff with jitter. Heartbeat timeout, writer failure, and reader errors all trigger recovery.

Reactive status

Watch channels for always-fresh media and receiver state. No polling, no draining required.

Thread-safe

Clone + Send + Sync by design. Share the client across tasks freely.


  1. Install oxicast and tokio in your Cargo.toml
  2. Connect to a device by IP or mDNS discovery -> Getting Started
  3. Launch the Default Media Receiver and load media
  4. React to events via next_event() or watch channels
  5. Control playback with play(), pause(), seek(), set_volume()
let client = CastClient::connect("192.168.1.100", 8009).await?;
client.launch_app(&CastApp::DefaultMediaReceiver).await?;
client.load_media(&MediaInfo::new(url, "video/mp4"), true, 0.0).await?;
client.pause().await?;
client.seek(60.0).await?;
client.play().await?;