refactor(cast): extract qbz-cast crate

Extract casting functionality (Chromecast, AirPlay, DLNA) to standalone
qbz-cast crate. This crate is Tauri-agnostic and can be used by TUI/CLI
clients.

- Move device connection, discovery, threading, and media server to crate
- Keep only Tauri commands in src-tauri/src/cast/
- Thin re-exports in src-tauri for backwards compatibility
- Remove duplicate dependencies from src-tauri Cargo.toml
This commit is contained in:
vicrodh committed 2026-02-15 14:51:06 -06:00
1 parent deece54bcb
commit 63994c0a20
26 files changed
+1481 -1326

No files matched your search

+5 -5
View File
@@ -22,6 +22,7 @@ qbz-core = { path = "../crates/qbz-core" }
qbz-integrations = { path = "../crates/qbz-integrations" }
qbz-cache = { path = "../crates/qbz-cache" }
qbz-library = { path = "../crates/qbz-library" }
qbz-cast = { path = "../crates/qbz-cast" }
# Tauri
tauri = { version = "2", features = ["protocol-asset", "tray-icon"] }
@@ -117,11 +118,10 @@ keyring = "3"
# Clipboard
tauri-plugin-clipboard-manager = "2"
# Casting (Chromecast, AirPlay, DLNA)
rust_cast = "0.18.1"
mdns-sd = "0.11"
tiny_http = "0.12"
rupnp = { version = "3", features = ["full_device_spec"] }
# Casting: qbz-cast crate provides all casting functionality
# (Chromecast via rust_cast, AirPlay discovery, DLNA via rupnp)
# Async utilities (used across codebase)
futures-util = "0.3"
# Platform-specific dependencies