[package]
edition = "2024"
rust-version = "1.88"
name = "snapcast-client"
version = "0.7.0"
authors = ["Fabian Schmieder"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Snapcast client library — embeddable synchronized multiroom audio"
readme = "README.md"
license = "GPL-3.0-only"
repository = "https://github.com/metaneutrons/snapcast-rs"
[package.metadata.docs.rs]
all-features = false
features = [
"f32lz4",
"custom-protocol",
"encryption",
]
[features]
custom-protocol = ["snapcast-proto/custom-protocol"]
default = ["mdns"]
encryption = [
"f32lz4",
"dep:chacha20poly1305",
"dep:hkdf",
"dep:sha2",
]
f32lz4 = ["dep:lz4_flex"]
mdns = ["dep:mdns-sd"]
resampler = ["dep:rubato"]
tls = [
"websocket",
"dep:tokio-rustls",
"dep:rustls",
"dep:rustls-native-certs",
]
websocket = [
"dep:tokio-tungstenite",
"dep:futures-util",
]
[lib]
name = "snapcast_client"
path = "src/lib.rs"
[[test]]
name = "integration"
path = "tests/integration.rs"
[dependencies.anyhow]
version = "1"
[dependencies.chacha20poly1305]
version = "0.10"
optional = true
[dependencies.futures-util]
version = "0.3"
optional = true
[dependencies.hkdf]
version = "0.12"
optional = true
[dependencies.hostname]
version = "0.4"
[dependencies.libc]
version = "0.2"
[dependencies.lz4_flex]
version = "0.13.0"
optional = true
[dependencies.mac_address]
version = "1"
[dependencies.mdns-sd]
version = "0.12"
optional = true
[dependencies.opus-decoder]
version = "0.1"
[dependencies.rubato]
version = "0.16"
optional = true
[dependencies.rustls]
version = "0.23"
features = ["ring"]
optional = true
[dependencies.rustls-native-certs]
version = "0.8"
optional = true
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.sha2]
version = "0.10"
optional = true
[dependencies.snapcast-proto]
version = "0.7.0"
[dependencies.symphonia]
version = "0.5"
features = [
"flac",
"pcm",
"ogg",
"vorbis",
]
[dependencies.tokio]
version = "1"
features = ["full"]
[dependencies.tokio-rustls]
version = "0.26"
optional = true
[dependencies.tokio-tungstenite]
version = "0.26"
features = [
"connect",
"__rustls-tls",
]
optional = true
[dependencies.tracing]
version = "0.1"