crabidy/Cargo.toml

137 lines
4.0 KiB
TOML

[workspace]
resolver = "2"
members = [
"absdy",
"audio-player",
"cbd",
"cbd-cli",
"cbd-tui",
"cbd-web",
"crabidy-core",
"crabidy-server",
"fsdy",
"fyyd",
"jamendody",
"rssdy",
"soundclouddy",
"tidaldy",
"ytdy",
]
[workspace.package]
version = "0.1.0"
edition = "2021"
# This root manifest is a pure workspace, so crane finds no `[package].name` to
# name its derivations after and warns that it is using a placeholder
# ("cargo-package-0.1.0.drv" in the build log). Name it here instead.
[workspace.metadata.crane]
name = "crabidy"
[workspace.dependencies]
anyhow = "1"
argon2 = { version = "0.5", features = ["std"] }
async-trait = "0.1"
base64 = "0.22"
blake3 = "1"
bytes = "1"
chrono = { version = "0.4", default-features = false, features = ["clock"] }
axum = "0.8"
clap = { version = "4", features = ["derive"] }
clap-serde-derive = "0.2"
clap_complete = "4"
clap_mangen = "0.2"
console_error_panic_hook = "0.1"
crossterm = "0.29"
dirs = "6"
flume = "0.12"
futures = "0.3"
gloo-timers = { version = "0.3", features = ["futures"] }
http = "1"
include_dir = "0.7"
# `dup2` only: the TUI points stderr at a file so C-library writes (ALSA
# underrun messages) cannot scribble on the interface (cbd-tui/src/stderr.rs).
libc = "0.2"
leptos = { version = "0.8", default-features = false, features = ["csr"] }
notify-rust = "4"
# The MPRIS D-Bus surface of cbd-tui. Built on zbus, which speaks the
# protocol in pure Rust — no libdbus, so nothing to install or link.
mpris-server = "0.10"
feed-rs = "2"
percent-encoding = "2"
prost = "0.14"
rand = "0.10"
realfft = "3"
ratatui = "0.30"
reqwest = { version = "0.13", default-features = false, features = [
"json",
"query",
"rustls",
"webpki-roots",
"http2",
"hickory-dns",
"stream",
] }
rodio = { version = "0.22", default-features = false, features = [
"playback",
"symphonia-all",
] }
rustypipe = { version = "0.11", default-features = false, features = [
"rustls-tls-webpki-roots",
"userdata",
] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
serde_urlencoded = "0.7"
# Opus decoding: symphonia has no Opus decoder, so we demux Ogg-Opus with
# symphonia's Ogg reader and decode via the libopus adapter (matches
# rodio's symphonia 0.5). default-features = false drops the adapter's own
# `bundled`, so audio-player's `opus-bundled` decides whether libopus is
# compiled from source (cmake) or linked from the system.
symphonia = { version = "0.5", default-features = false, features = ["ogg"] }
symphonia-adapter-libopus = { version = "0.2", default-features = false }
stream-download = { version = "0.24", default-features = false, features = [
"reqwest",
"reqwest-rustls",
"temp-storage",
] }
tempfile = "3"
thiserror = "2"
tokio = "1"
tokio-stream = "0.1"
toml = "1"
# default-features = false so crabidy-core can select codegen-only for
# wasm builds (a member cannot *drop* workspace-inherited default
# features); native binaries re-enable what they need.
tonic = { version = "0.14", default-features = false }
tonic-prost = "0.14"
tonic-prost-build = "0.14"
tonic-web = "0.14"
tonic-web-wasm-client = "0.9"
tower = "0.5"
wasm-bindgen = "0.2"
wasm-bindgen-futures = "0.4"
web-sys = "0.3"
tracing = "0.1"
tracing-appender = "0.2"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
url = "2"
# Local crates. `default-features = false` on the three feature-carrying
# crates: their dependents select what they want (a member cannot *drop* a
# workspace-inherited default), which is how a tailored build stays tailored —
# see architecture/build-features.md D1.
absdy = { path = "absdy" }
audio-player = { path = "audio-player", default-features = false }
cbd-cli = { path = "cbd-cli" }
cbd-tui = { path = "cbd-tui", default-features = false }
crabidy-core = { path = "crabidy-core" }
crabidy-server = { path = "crabidy-server", default-features = false }
fsdy = { path = "fsdy" }
fyyd = { path = "fyyd" }
jamendody = { path = "jamendody" }
rssdy = { path = "rssdy" }
soundclouddy = { path = "soundclouddy" }
tidaldy = { path = "tidaldy" }
ytdy = { path = "ytdy" }