mirror of
https://github.com/librespot-org/librespot.git
synced 2024-12-18 17:11:53 +00:00
94d174c33d
* discovery: use opaque error type for DnsSdError This helps to decouple discovery and core by not leaking implementation details of the zeroconf backend into Error conversion impls in core. * discovery: map all MDNS/DNS-SD errors to DiscoveryError::DnsSdError previously, libmdns errors would use a generic conversion from std::io::Error to core::Error * discovery: use an opaque type for the handle to the DNS-SD service * discovery: make features additive i.e. add with-libmdns instead of using not(with-dns-sd). The logic is such that enabling with-dns-sd in addition to the default with-libmdns will still end up using dns-sd, as before. If only with-libmdns is enabled, that will be the default. If none of the features is enabled, attempting to build a `Discovery` will yield an error. * discovery: add --zeroconf-backend CLI flag * discovery: Add minimal Avahi zeroconf backend * bump MSRV to 1.75 required by zbus >= 4 * discovery: ensure that server and dns-sd backend shutdown gracefully Previously, on drop the the shutdown_tx/close_tx, it wasn't guaranteed the corresponding tasks would continue to be polled until they actually completed their shutdown. Since dns_sd::Service is not Send and non-async, and because libmdns is non-async, put them on their own threads. * discovery: use a shared channel for server and zeroconf status messages * discovery: add Avahi reconnection logic This deals gracefully with the case where the Avahi daemon is restarted or not running initially. * discovery: allow running when compiled without zeroconf backend... ...but exit with an error if there's no way to authenticate * better error messages for invalid options with no short flag
106 lines
2.9 KiB
TOML
106 lines
2.9 KiB
TOML
[package]
|
|
name = "librespot"
|
|
version = "0.5.0"
|
|
rust-version = "1.75"
|
|
authors = ["Librespot Org"]
|
|
license = "MIT"
|
|
description = "An open source client library for Spotify, with support for Spotify Connect"
|
|
keywords = ["spotify"]
|
|
repository = "https://github.com/librespot-org/librespot"
|
|
readme = "README.md"
|
|
edition = "2021"
|
|
|
|
[workspace]
|
|
|
|
[lib]
|
|
name = "librespot"
|
|
path = "src/lib.rs"
|
|
|
|
[[bin]]
|
|
name = "librespot"
|
|
path = "src/main.rs"
|
|
doc = false
|
|
|
|
[dependencies.librespot-audio]
|
|
path = "audio"
|
|
version = "0.5.0"
|
|
|
|
[dependencies.librespot-connect]
|
|
path = "connect"
|
|
version = "0.5.0"
|
|
|
|
[dependencies.librespot-core]
|
|
path = "core"
|
|
version = "0.5.0"
|
|
|
|
[dependencies.librespot-discovery]
|
|
path = "discovery"
|
|
version = "0.5.0"
|
|
default-features = false
|
|
|
|
[dependencies.librespot-metadata]
|
|
path = "metadata"
|
|
version = "0.5.0"
|
|
|
|
[dependencies.librespot-playback]
|
|
path = "playback"
|
|
version = "0.5.0"
|
|
|
|
[dependencies.librespot-protocol]
|
|
path = "protocol"
|
|
version = "0.5.0"
|
|
|
|
[dependencies.librespot-oauth]
|
|
path = "oauth"
|
|
version = "0.5.0"
|
|
|
|
[dependencies]
|
|
data-encoding = "2.5"
|
|
env_logger = { version = "0.11.2", default-features = false, features = ["color", "humantime", "auto-color"] }
|
|
futures-util = { version = "0.3", default-features = false }
|
|
getopts = "0.2"
|
|
log = "0.4"
|
|
sha1 = "0.10"
|
|
sysinfo = { version = "0.31.3", default-features = false, features = ["system"] }
|
|
thiserror = "1.0"
|
|
tokio = { version = "1.40", features = ["rt", "macros", "signal", "sync", "parking_lot", "process"] }
|
|
url = "2.2"
|
|
|
|
[features]
|
|
alsa-backend = ["librespot-playback/alsa-backend"]
|
|
portaudio-backend = ["librespot-playback/portaudio-backend"]
|
|
pulseaudio-backend = ["librespot-playback/pulseaudio-backend"]
|
|
jackaudio-backend = ["librespot-playback/jackaudio-backend"]
|
|
rodio-backend = ["librespot-playback/rodio-backend"]
|
|
rodiojack-backend = ["librespot-playback/rodiojack-backend"]
|
|
sdl-backend = ["librespot-playback/sdl-backend"]
|
|
gstreamer-backend = ["librespot-playback/gstreamer-backend"]
|
|
|
|
with-avahi = ["librespot-discovery/with-avahi"]
|
|
with-dns-sd = ["librespot-discovery/with-dns-sd"]
|
|
with-libmdns = ["librespot-discovery/with-libmdns"]
|
|
|
|
passthrough-decoder = ["librespot-playback/passthrough-decoder"]
|
|
|
|
default = ["rodio-backend", "with-libmdns"]
|
|
|
|
[package.metadata.deb]
|
|
maintainer = "librespot-org"
|
|
copyright = "2018 Paul Liétar"
|
|
license-file = ["LICENSE", "4"]
|
|
depends = "$auto"
|
|
extended-description = """\
|
|
librespot is an open source client library for Spotify. It enables applications \
|
|
to use Spotify's service, without using the official but closed-source \
|
|
libspotify. Additionally, it will provide extra features which are not \
|
|
available in the official library."""
|
|
section = "sound"
|
|
priority = "optional"
|
|
assets = [
|
|
["target/release/librespot", "usr/bin/", "755"],
|
|
["contrib/librespot.service", "lib/systemd/system/", "644"],
|
|
["contrib/librespot.user.service", "lib/systemd/user/", "644"]
|
|
]
|
|
|
|
[workspace.package]
|
|
rust-version = "1.74"
|