Headless Rust gRPC daemon to drive Bluetooth, HLS/DASH playback, and snapcast/shairport-sync/squeezelite on Raspberry Pi audio rigs.
2.5 kB
Changelog#
All notable changes to zerod are documented in this file.
The format follows Keep a Changelog, and this project adheres to Semantic Versioning. Pre-1.0, breaking changes may land in any minor release.
Unreleased#
0.2.0 - 2026-06-11#
Added#
- mDNS / zeroconf discovery. The server advertises itself as
_zerod._tcp.local.via a newzerod-discoverycrate (pure-Rustmdns-sd, no Avahi / Bonjour). The instance name defaults to the machine hostname and the published TXT records include the daemon version. zerod discoversubcommand — lists every responder on the LAN with name, host, port, and advertised version.--name/ZEROD_NAMEflag — when multiple servers respond, pick one by its mDNS instance name.--discover-timeout-ms/ZEROD_DISCOVER_TIMEOUT_MSflag — override the default 1500 ms browse window.[mdns]section inzerod.toml—enabled(defaulttrue) andname(empty → hostname).
Changed#
--hostis now optional. Omitting it (andZEROD_HOST) triggers mDNS discovery and connects to the only responder. Previously it defaulted tolocalhost.- IPv4 address selection during discovery skips loopback and Docker's
172.17.0.0/16default bridge, sozerodrunning inside Docker or next to adocker0interface no longer leaks the bridge IP to clients. zerod service installpost-install hint now reflects the discovery-first UX (zerod system healthinstead ofzerod --host <pi> system health).
0.1.0#
Initial public release.
- gRPC server (
tonic) with bearer-token auth andtonic-reflection. - Subcommand clients in the same binary:
bluetooth,stream,systemd,config,volume,system,service. - HLS / MPEG-DASH player with
cpal/stdout/pipesinks. - BlueZ wrapper, systemd D-Bus client, ALSA mixer, atomic config writes.
zerod service installwrites a--usersystemd unit pinned with a random bearer token.- Cross-compile setup for
arm-unknown-linux-gnueabihf,aarch64-unknown-linux-gnu, andx86_64-unknown-linux-gnu. - GitHub Actions release workflow + Homebrew tap.