1
0
Fork 0
mirror of https://github.com/librespot-org/librespot.git synced 2025-10-03 01:39:28 +02:00
librespot/discovery/Cargo.toml
Roderick van Domburg 0a4969ffe2
feat: add configurable TLS backend selection with native-tls as default (#1541)
Add support for choosing between native-tls and rustls-tls backends
through feature flags, with native-tls as the default for maximum
platform compatibility.

Key changes:
- Add mutually exclusive native-tls and rustls-tls feature flags
- Use conditional compilation to select TLS implementation
- Configure rustls-tls with platform certificate verifier
- Refactor to workspace-based dependency management
- Update CI workflows with improved cross-compilation support
- Add comprehensive TLS backend documentation

The native-tls backend uses system TLS libraries (OpenSSL on Linux,
Secure Transport on macOS, SChannel on Windows) while rustls-tls
provides a pure Rust implementation with platform certificate stores.
2025-08-19 23:06:28 +02:00

61 lines
1.5 KiB
TOML

[package]
name = "librespot-discovery"
version.workspace = true
rust-version.workspace = true
authors = ["Paul Lietar <paul@lietar.net>"]
license.workspace = true
description = "The discovery logic for librespot"
repository.workspace = true
edition.workspace = true
[features]
# Refer to the workspace Cargo.toml for the list of features
default = ["with-libmdns", "native-tls"]
# Discovery backends
with-avahi = ["dep:serde", "dep:zbus"]
with-dns-sd = ["dep:dns-sd"]
with-libmdns = ["dep:libmdns"]
# TLS backend propagation
native-tls = ["librespot-core/native-tls"]
rustls-tls = ["librespot-core/rustls-tls"]
[dependencies]
librespot-core.workspace = true
aes = "0.8"
base64 = "0.22"
bytes = "1"
ctr = "0.9"
dns-sd = { version = "0.1", optional = true }
form_urlencoded = "1.2"
futures-core = "0.3"
futures-util = "0.3"
hmac = "0.12"
http-body-util = "0.1"
hyper = { version = "1.6", features = ["http1"] }
hyper-util = { version = "0.1", features = [
"server-auto",
"server-graceful",
"service",
] }
libmdns = { version = "0.9", optional = true }
log = "0.4"
rand = "0.9"
serde = { version = "1", default-features = false, features = [
"derive",
], optional = true }
serde_repr = "0.1"
serde_json = "1.0"
sha1 = "0.10"
thiserror = "2"
tokio = { version = "1", features = ["parking_lot", "sync", "rt"] }
zbus = { version = "5", default-features = false, features = [
"tokio",
], optional = true }
[dev-dependencies]
futures = "0.3"
hex = "0.4"
tokio = { version = "1", features = ["macros", "parking_lot", "rt"] }