crabidy/crabidy-server/src
Test User a03e3de84e build: put every provider, opus, and the spectrum behind cargo features
All on by default, so a plain build is unchanged (verified: the default
dependency set for crabidy-server is byte-identical to before). Tailor a
smaller binary with --no-default-features --features …
(architecture/build-features.md).

Compile-time features draw dependency boundaries; the existing
crabidy-server.toml providers list keeps doing per-mount runtime
toggling. The compile-time set bounds the runtime one: a provider built
out cannot be enabled from the config, and naming it earns one startup
warning rather than silence.

- crabidy-server: tidal · youtube · fyyd · abs · soundcloud · jamendo ·
  fs · opus · spectrum · web-ui, plus the all-providers group.
- fs is local files *and* persistent state (D5): the /fs mount, the
  content store behind /crabidy and /orphans, bookmarks/captures, queue
  persistence, and scan. Without it Capture/SaveQueue answer
  Unimplemented and scan says which feature is missing — never a panic.
- opus drops symphonia + symphonia-adapter-libopus, and with them the
  bundled libopus C build (no more cmake requirement). It also decides
  whether scan indexes .opus at all, so scan never indexes what this
  build cannot play. An Ogg-Opus file in an opus-less build reports the
  missing feature and is skipped like any undecodable file.
- spectrum drops realfft and the FFT task; clients just never receive a
  frame. cbd-tui gains notifications (notify-rust, a D-Bus stack).
- crabidy-server/cbd features print the compiled set, and startup logs
  it, so a tailored binary is self-describing.

Not gated, deliberately: [auth]/argon2 (a build ignoring configured
hashes would run open — fail-open security hole), and hls.rs /
spectrum_tap.rs / windowed_http.rs (no dependency of their own, so
gating them buys cfg noise and nothing else).

devenv gains check-features: the curated matrix (defaults, nothing, each
provider alone, each axis dropped, both worked examples, the client
crates) all clippy-clean under -D warnings.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-25 03:15:32 +02:00
..
auth.rs Auth: anonymous callers inherit the highest unguarded role 2026-07-23 16:06:01 +02:00
capture.rs Implement the crabidy content store and single /crabidy provider 2026-07-22 11:34:40 +02:00
cli.rs build: put every provider, opus, and the spectrum behind cargo features 2026-07-25 03:15:32 +02:00
crabidy_store.rs Add the /orphans provider: a store garbage-collection view 2026-07-22 22:47:23 +02:00
lib.rs build: put every provider, opus, and the spectrum behind cargo features 2026-07-25 03:15:32 +02:00
main.rs build: put every provider, opus, and the spectrum behind cargo features 2026-07-25 03:15:32 +02:00
orphans.rs Add the /orphans provider: a store garbage-collection view 2026-07-22 22:47:23 +02:00
playback.rs build: put every provider, opus, and the spectrum behind cargo features 2026-07-25 03:15:32 +02:00
provider.rs build: put every provider, opus, and the spectrum behind cargo features 2026-07-25 03:15:32 +02:00
rpc.rs build: put every provider, opus, and the spectrum behind cargo features 2026-07-25 03:15:32 +02:00
settings.rs build: put every provider, opus, and the spectrum behind cargo features 2026-07-25 03:15:32 +02:00
spectrum.rs Make the spectrum bars actually visible 2026-07-22 00:00:58 +02:00
web.rs Add a Leptos web client served by the server 2026-07-21 22:43:06 +02:00