crabidy/audio-player/Cargo.toml

40 lines
1.5 KiB
TOML

[package]
name = "audio-player"
version.workspace = true
edition.workspace = true
# The one axis worth a flag: Ogg-Opus decoding pulls symphonia *and*
# `symphonia-adapter-libopus`. Everything else in this crate (HLS, the
# windowed-HTTP source, the spectrum tap) shares its dependencies with
# code that always ships, so gating it would buy nothing
# (architecture/build-features.md D6/D7/D8).
[features]
default = ["opus", "opus-bundled"]
opus = ["dep:symphonia", "dep:symphonia-adapter-libopus"]
# Where libopus comes from (architecture/build-features.md D12). On (the
# default) compiles it from the vendored source, which needs cmake and a C
# compiler but nothing installed. Off links the system libopus instead, so a
# packaged build can use the distribution's copy: `--no-default-features
# --features opus`. The weak `?/` is load-bearing — it must not pull the
# optional adapter in by itself, or `opus-bundled` would silently re-enable
# `opus`.
opus-bundled = ["symphonia-adapter-libopus?/bundled"]
[dependencies]
anyhow.workspace = true
bytes.workspace = true
flume.workspace = true
futures.workspace = true
reqwest.workspace = true
rodio.workspace = true
stream-download.workspace = true
symphonia = { workspace = true, optional = true }
symphonia-adapter-libopus = { workspace = true, optional = true }
thiserror.workspace = true
tokio = { workspace = true, features = ["rt", "rt-multi-thread"] }
tracing.workspace = true
url.workspace = true
[dev-dependencies]
tokio = { workspace = true, features = ["full"] }