You can use a headless client called softsqueeze (eg raspberry pi). The source media is actually streamed and the clients have to decode it. The protocol handles multi-room sync which I haven't seen elsewhere.
There's also an abandoned implementation of the server in python (LMS is perl) on sourceforge somewhere.
1 Airport Express for each zone - I have 3 currently - Patio, 1st floor, 2nd floor. (installed 6 in my friends house)
Each "zone" is a named Airplay point on each Airport Express
Airport Express connects to the multi channel amp via headphone > RCA left / right > RCA left right to 1 RCA
Then the amp is hard wired to each in wall speaker.
iOS devices can only stream to 1 Airplay point at a time but iTunes / OS X can stream to multiple at a time.
So the wife or I could be cooking in the kitchen, listening to 1 stream and the party can be outside on the patio listening to another stream
Not cheap at $100 (ish) per Airport Express + amp + speakers but by far cheaper then Sonos and their in wall speakers - not book shelf so theres no clutter.
It's cool to stream from iTunes and fill the entire house with 1 synced stream.
I've only got a single CC Audio at the moment (and one of the original video ones) but I was waiting for them to add this feature before buying more. I've actually wanted this feature since the original CC came out and when they announced the CC Audio I was worried that it would take forever to add the multi-cast capabilities.
Now instead of investing hundreds in a Sonos system I can grab a few $35 receivers and turn every set of random powered PC speakers and shelf system/boom box with an aux-input into an endpoint for audio. And if I want better sound I can always pick up a nicer set of powered speakers and do the same but as cheap as PC speakers can be (I often see them for $5-10 at Goodwill) it's got the potential to add audio to any room for very little cost.
The default sound server for most distros (PulseAudio) supports TCP or RTP streaming. RTP supports multicast (and multiple multicast groups so you can break down your endpoints into multiple groups).
If you want airplay streaming, then there's shairport-sync ( https://github.com/mikebrady/shairport-sync ) that also has multi-room support; each room can map to an ALSA target (which could be a virtual PulseAudio device pointing to a network target). Reportedly (at least when I last checked a few years back) there were some issues experienced compiling with PulseAudio - alternatively you could just run shairport-sync and native ALSA on each of your targets.
Just add a few Raspberry Pis, (and maybe some dedicated DAC boards if you're bothered about sound quality) and you're good to go.