[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" 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" }