a Jellyfin & Subsonic client for the terminal — powered by mpv, Chromecast and UPnP MediaRenderer
mpv chromecast mpris navidrome jellyfin upnp tui
0

Configure Feed

Select the types of activity you want to include in your feed.

fin / Cargo.toml
1.6 kB 55 lines
1[workspace] 2members = ["crates/*"] 3resolver = "2" 4 5[workspace.package] 6version = "0.5.0" 7authors = ["Tsiry Sandratraina <tsiry.sndr@rocksky.app>"] 8edition = "2021" 9license = "MPL-2.0" 10repository = "https://github.com/tsirysndr/fin" 11 12[workspace.dependencies] 13anyhow = "1" 14thiserror = "1" 15serde = { version = "1", features = ["derive"] } 16serde_json = "1" 17toml = "0.8" 18tokio = { version = "1", features = ["full"] } 19tokio-util = "0.7" 20futures = "0.3" 21async-trait = "0.1" 22reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls"] } 23rustls = { version = "0.23", default-features = false, features = ["aws_lc_rs"] } 24url = "2" 25uuid = { version = "1", features = ["v4"] } 26chrono = { version = "0.4", features = ["serde"] } 27tracing = "0.1" 28tracing-subscriber = { version = "0.3", features = ["env-filter"] } 29directories = "5" 30ratatui = "0.29" 31crossterm = { version = "0.28", features = ["event-stream"] } 32clap = { version = "4", features = ["derive", "env"] } 33mdns-sd = "0.11" 34mpris-server = { version = "0.10", features = ["tokio"] } 35rust_cast = "0.20" 36parking_lot = "0.12" 37socket2 = "0.5" 38unicode-width = "0.2" 39percent-encoding = "2" 40whoami = "1" 41rpassword = "7" 42 43fin-config = { path = "crates/fin-config" } 44fin-jellyfin = { path = "crates/fin-jellyfin" } 45fin-media = { path = "crates/fin-media" } 46fin-mediarenderer = { path = "crates/fin-mediarenderer" } 47fin-mpris = { path = "crates/fin-mpris" } 48fin-player = { path = "crates/fin-player" } 49fin-subsonic = { path = "crates/fin-subsonic" } 50fin-tui = { path = "crates/fin-tui" } 51 52[profile.release] 53opt-level = 3 54lto = "thin" 55strip = true