[package] name = "spielab" version = "0.1.0" edition = "2024" license = "GPL-2.0-only" description = "A native Wayland AirPlay sender built with Rust and GPUI" [features] default = ["gui"] gui = ["dep:gpui"] [dependencies] anyhow = "1" async-channel = "2" tokio = { version = "1", features = ["rt-multi-thread", "sync", "time", "net", "macros", "io-util", "process"] } gpui = { version = "=0.2.2", default-features = false, features = ["wayland"], optional = true } airplay-core = { git = "https://github.com/lmcgartland/airplay2-rs", rev = "a7f019fe6246ebd9701201a8a5c31e9a15243956" } airplay-discovery = { git = "https://github.com/lmcgartland/airplay2-rs", rev = "a7f019fe6246ebd9701201a8a5c31e9a15243956" } airplay-rtsp = { git = "https://github.com/lmcgartland/airplay2-rs", rev = "a7f019fe6246ebd9701201a8a5c31e9a15243956" } ashpd = { version = "0.12.3", default-features = false, features = ["async-std"] } serde = { version = "1", features = ["derive"] } serde_json = "1" uuid = { version = "1", features = ["v4"] } airplay-pairing = { git = "https://github.com/lmcgartland/airplay2-rs", rev = "a7f019fe6246ebd9701201a8a5c31e9a15243956" } airplay-crypto = { git = "https://github.com/lmcgartland/airplay2-rs", rev = "a7f019fe6246ebd9701201a8a5c31e9a15243956" } plist = "1" hkdf = "0.12" sha2 = "0.10" chacha20poly1305 = "0.10" rand = "0.8" libc = "0.2" [dev-dependencies] symphonia-codec-alac = "0.5.5" symphonia-core = "0.5.5" tempfile = "3" [profile.dev] debug = 0 # The development runner is also used for live streaming. Keep per-frame # packet parsing and encryption optimized without rebuilding all GPUI deps. [profile.dev.package.spielab] opt-level = 2 [profile.dev.package.chacha20poly1305] opt-level = 3 [profile.dev.package.chacha20] opt-level = 3 [profile.dev.package.poly1305] opt-level = 3 [[bin]] name = "spielab" path = "src/main.rs" required-features = ["gui"]