Cargo.toml
Rama main · réplica de lectura del repositorio original.
[workspace]
members = [
"crates/api_models",
"crates/server",
"crates/config",
"crates/dsp",
"crates/hardware",
"crates/metadata",
"crates/playback",
"crates/sync",
"crates/wire",
"crates/mount_helper",
"crates/podcast",
"web-ui", "crates/desktop",
]
default-members = [
# "web-ui",
"crates/api_models",
"crates/server",
"crates/config",
"crates/dsp",
"crates/hardware",
"crates/metadata",
"crates/playback",
"crates/sync",
"crates/wire",
"crates/mount_helper",
"crates/podcast",
]
resolver = "2"
[workspace.package]
# Single source of truth for the release version.
# Read by: build scripts (CARGO_PKG_VERSION), cargo-deb, cargo-generate-rpm,
# cargo-packager and Makefile.toml (RELEASE_VERSION env derives from it).
version = "5.7.0"
[workspace.dependencies]
anyhow = "1"
cfg-if = "1"
env_logger = "0.11"
fjall = "3"
serde_json = "1"
tokio-stream = "0.1"
ureq = "3"
feed-rs = "2"
sha1 = "0.11"
[workspace.dependencies.chrono]
version = "0.4"
features = ["serde"]
[workspace.dependencies.futures]
version = "0.3"
default-features = false
[workspace.dependencies.log]
version = "0.4"
[workspace.dependencies.serde]
version = "1"
features = ["derive"]
[workspace.dependencies.cpal]
git = "https://github.com/ljufa/cpal.git"
branch = "v_0.18.1_patched"
[workspace.dependencies.symphonia]
git = "https://github.com/ljufa/Symphonia.git"
branch = "break_infinite_loop"
features = ["all"]
[workspace.dependencies.symphonia-metadata]
git = "https://github.com/ljufa/Symphonia.git"
branch = "break_infinite_loop"
[workspace.dependencies.tokio]
version = "1"
features = [
"full",
"tracing",
]
[workspace.dependencies.uuid]
version = "1"
features = [
"serde",
"v4",
]
[profile.release]
opt-level = 3
# Thin LTO + single codegen unit per crate: near fat-LTO size at a fraction
# of its build time (crates still compile in parallel across the graph).
codegen-units = 1
debug = 0
debug-assertions = false
strip = true
lto = "thin"
[profile.release.package.rsplayer_web_ui]
opt-level = "s"
debug = false
# The profile `dx build --release` uses for the web UI. Without one here dx
# derives it from [profile.release], strip = true included, and since LLVM
# 23 (rustc 1.99) stripping a .wasm removes every custom section, among them
# the one wasm-bindgen reads ("the `__wasm_bindgen_unstable` custom section
# is missing"). dx runs wasm-opt on the wasm-bindgen output, which drops
# what isn't needed.
[profile.wasm-release]
inherits = "release"
strip = false
# Cold multiroom transport plumbing: iroh 1.0 unconditionally links its relay
# and DNS clients, but rsplayer runs LAN-only (RelayMode::Disabled) so these
# never execute — optimize them for size.
[profile.release.package.iroh-relay]
opt-level = "s"
[profile.release.package.iroh-dns]
opt-level = "s"
[profile.release.package.hickory-resolver]
opt-level = "s"
[profile.release.package.hickory-proto]
opt-level = "s"
[profile.release.package.hickory-net]
opt-level = "s"
[profile.release.package.reqwest]
opt-level = "s"
[profile.release.package.hyper]
opt-level = "s"
[profile.release.package.hyper-util]
opt-level = "s"
[profile.release.package.h2]
opt-level = "s"
[profile.release.package.tokio-websockets]
opt-level = "s"
[profile.release.package.tokio-tungstenite]
opt-level = "s"
[profile.release.package.tungstenite]
opt-level = "s"
# fjall fork (3.1.10 + Database::rotate_journal) so db_maintenance::flush_all
# can drop the fully flushed journal instead of replaying up to 64 MB of it
# on every start.
[patch.crates-io]
fjall = { git = "https://github.com/ljufa/fjall.git", branch = "v_3.1.10_patched" }