Pabldi08/AirSend

AirSend an app that uses Airplay2 conexion in Windows

Rust

50

37 commits

updated Sep 27, 2026

See the code

See what people are saying

SourceMessageScoreDate

I built a free Windows app to send system audio to HomePod — looking for multi-device testers (r/SideProject)

I wanted to play audio from any Windows app on my HomePod, so I built AirSend, a free and open-source AirPlay 2 sender. I’ve just released v0.1.7. **It works with HomePod software 27.0 on the setup I’ve tested.** You can adjust the requested audio buffer, switch receivers with a confirmation step,…

1

Sep 27, 2026

README

AirSend

English · Español

Windows desktop app that captures system audio and sends it to a HomePod over AirPlay 2 with low latency.

⚠️ Status: pre-alpha.

Installation

Download the latest release:

Download latest release

SmartScreen warning: the app is not signed with an EV code-signing certificate (~€200/year), so the first run shows a warning. Workaround: "More info" → "Run anyway". EV signing is under consideration post-MVP.

Comparison with alternatives

This table summarizes the main differences between AirSend and some popular alternatives. AirSend prioritizes being free, auditable and compatible with HomePod over AirPlay 2 — it is still a young project and does not aim to cover screen mirroring. Multi-device playback is experimental and does not synchronize receiver clocks.

FeatureAirSendTuneBladeAirParrot
PlatformWindowsWindowsWindows + macOS
License / priceGPL-3.0-or-later, freeFreeware, closed-sourceCommercial (~€15)
AirPlay 2 with HomePod✅⚠️ Unstable / often fails to pair✅
Pair-setup transient + verify✅❌, reliable only on AirPlay 1✅
CodecALAC + ChaCha20-Poly1305ALACALAC
CaptureWASAPI loopback (system audio)WASAPI loopbackWASAPI loopback + per-app picker
Tray + close-to-tray✅✅✅
Auto-reconnect to last device✅✅✅
Manual IP when mDNS fails✅❌⚠️ Limited
AirPlay buffer control0–3000 ms requested upper bound; receiver may add delayVariableHigh, occasional desync
Windows jitter in release builds✅ MMCSS Pro Audio + HIGH_PRIORITY❌✅
Active development✅❌, stalled for years✅
Auditable source✅❌❌
Tested on hardware⚠️ 1 setup (HomePod gen 2)✅ Years, broad hw✅ Years, broad hw

Project status

AirSend is in an early stage. The current version already streams system audio from Windows to a HomePod over AirPlay 2, but does not yet aim to fully replace more mature commercial solutions.

The main goal of the project is to offer a free, open and auditable alternative for users who want to stream audio from Windows to AirPlay-compatible devices.

Roadmap

Current version: 0.1.7

  • System audio capture via WASAPI loopback
  • AirPlay 2 streaming (ALAC + ChaCha20-Poly1305 + RTSP/RTP)
  • HomePod pair-setup transient + pair-verify
  • RTSP heartbeat to keep the session alive (~10 s without it, the HomePod drops it)
  • mDNS discovery with cache replay on rescan
  • Add device by manual IP (networks with broken mDNS: Movistar HGU routers, VLANs)
  • Auto-reconnect to the last device on startup
  • Persistent volume across sessions
  • Confirmed latency slider (0–3000 ms requested buffer limit), with a 10-second cooldown and saved setting; 0 ms is experimental
  • System tray + close-to-tray (app keeps running in the background)
  • Daily-rotated log files + UI toast for async errors
  • Manual releases through GitHub Releases
  • Windows jitter fix: HIGH_PRIORITY_CLASS + MMCSS "Pro Audio" + THREAD_PRIORITY_TIME_CRITICAL

Next improvements

  • Auto-generated release notes from git log in the workflow
  • Minimal unit tests in crates/airplay-core (probe parser, stream config builder, pump-loop smoke)
  • Validation on more hardware (HomePod gen 1, mini, Apple TV, AirPort Express)
  • Technical docs on AirPlay 2 and pairing under /docs
  • EV code-signing certificate to drop the SmartScreen warning (~€200/year, budget decision)

Future

  • Validate experimental multi-device playback on multiple receivers and add clock synchronization
  • Per-application audio capture (WASAPI process-loopback, Win10 1903+)
  • Upstream PR to lmcgartland/airplay2-rs with the two Windows patches
  • Stable support for other AirPlay 2 receivers (Apple TV, AirPort Express, third-party speakers)

Stack

  • Rust + Tauri v2 (native Windows webview UI, no Electron)
  • mdns-sd for AirPlay device discovery on the local network
  • WASAPI loopback for system audio capture (Windows only)
  • ALAC + encrypted RTP (ChaCha20-Poly1305) for HomePod streaming
  • NSIS installer distributed through GitHub Releases; updates are installed manually

Contributing

Release instructions and maintainer notes live in CONTRIBUTING.md.

License

AirSend is free software licensed under the GNU General Public License v3.0 or later.

The project incorporates and modifies code from lmcgartland/airplay2-rs, which is also licensed under GPL-3.0-or-later. See the LICENSE file for the complete terms.

Support the project

If you find AirSend useful, you can support the project here:

Buy Me a Coffee

Contributors

Pabldi08

36 commits

guxigua

1 commits

Pabldi08/AirSend

AirSend an app that uses Airplay2 conexion in Windows

Rust

50

37 commits

updated Sep 27, 2026

See the code

See what people are saying

SourceMessageScoreDate

I built a free Windows app to send system audio to HomePod — looking for multi-device testers (r/SideProject)

I wanted to play audio from any Windows app on my HomePod, so I built AirSend, a free and open-source AirPlay 2 sender. I’ve just released v0.1.7. **It works with HomePod software 27.0 on the setup I’ve tested.** You can adjust the requested audio buffer, switch receivers with a confirmation step,…

1

Sep 27, 2026

README

AirSend

English · Español

Windows desktop app that captures system audio and sends it to a HomePod over AirPlay 2 with low latency.

⚠️ Status: pre-alpha.

Installation

Download the latest release:

Download latest release

SmartScreen warning: the app is not signed with an EV code-signing certificate (~€200/year), so the first run shows a warning. Workaround: "More info" → "Run anyway". EV signing is under consideration post-MVP.

Comparison with alternatives

This table summarizes the main differences between AirSend and some popular alternatives. AirSend prioritizes being free, auditable and compatible with HomePod over AirPlay 2 — it is still a young project and does not aim to cover screen mirroring. Multi-device playback is experimental and does not synchronize receiver clocks.

FeatureAirSendTuneBladeAirParrot
PlatformWindowsWindowsWindows + macOS
License / priceGPL-3.0-or-later, freeFreeware, closed-sourceCommercial (~€15)
AirPlay 2 with HomePod✅⚠️ Unstable / often fails to pair✅
Pair-setup transient + verify✅❌, reliable only on AirPlay 1✅
CodecALAC + ChaCha20-Poly1305ALACALAC
CaptureWASAPI loopback (system audio)WASAPI loopbackWASAPI loopback + per-app picker
Tray + close-to-tray✅✅✅
Auto-reconnect to last device✅✅✅
Manual IP when mDNS fails✅❌⚠️ Limited
AirPlay buffer control0–3000 ms requested upper bound; receiver may add delayVariableHigh, occasional desync
Windows jitter in release builds✅ MMCSS Pro Audio + HIGH_PRIORITY❌✅
Active development✅❌, stalled for years✅
Auditable source✅❌❌
Tested on hardware⚠️ 1 setup (HomePod gen 2)✅ Years, broad hw✅ Years, broad hw

Project status

AirSend is in an early stage. The current version already streams system audio from Windows to a HomePod over AirPlay 2, but does not yet aim to fully replace more mature commercial solutions.

The main goal of the project is to offer a free, open and auditable alternative for users who want to stream audio from Windows to AirPlay-compatible devices.

Roadmap

Current version: 0.1.7

  • System audio capture via WASAPI loopback
  • AirPlay 2 streaming (ALAC + ChaCha20-Poly1305 + RTSP/RTP)
  • HomePod pair-setup transient + pair-verify
  • RTSP heartbeat to keep the session alive (~10 s without it, the HomePod drops it)
  • mDNS discovery with cache replay on rescan
  • Add device by manual IP (networks with broken mDNS: Movistar HGU routers, VLANs)
  • Auto-reconnect to the last device on startup
  • Persistent volume across sessions
  • Confirmed latency slider (0–3000 ms requested buffer limit), with a 10-second cooldown and saved setting; 0 ms is experimental
  • System tray + close-to-tray (app keeps running in the background)
  • Daily-rotated log files + UI toast for async errors
  • Manual releases through GitHub Releases
  • Windows jitter fix: HIGH_PRIORITY_CLASS + MMCSS "Pro Audio" + THREAD_PRIORITY_TIME_CRITICAL

Next improvements

  • Auto-generated release notes from git log in the workflow
  • Minimal unit tests in crates/airplay-core (probe parser, stream config builder, pump-loop smoke)
  • Validation on more hardware (HomePod gen 1, mini, Apple TV, AirPort Express)
  • Technical docs on AirPlay 2 and pairing under /docs
  • EV code-signing certificate to drop the SmartScreen warning (~€200/year, budget decision)

Future

  • Validate experimental multi-device playback on multiple receivers and add clock synchronization
  • Per-application audio capture (WASAPI process-loopback, Win10 1903+)
  • Upstream PR to lmcgartland/airplay2-rs with the two Windows patches
  • Stable support for other AirPlay 2 receivers (Apple TV, AirPort Express, third-party speakers)

Stack

  • Rust + Tauri v2 (native Windows webview UI, no Electron)
  • mdns-sd for AirPlay device discovery on the local network
  • WASAPI loopback for system audio capture (Windows only)
  • ALAC + encrypted RTP (ChaCha20-Poly1305) for HomePod streaming
  • NSIS installer distributed through GitHub Releases; updates are installed manually

Contributing

Release instructions and maintainer notes live in CONTRIBUTING.md.

License

AirSend is free software licensed under the GNU General Public License v3.0 or later.

The project incorporates and modifies code from lmcgartland/airplay2-rs, which is also licensed under GPL-3.0-or-later. See the LICENSE file for the complete terms.

Support the project

If you find AirSend useful, you can support the project here:

Buy Me a Coffee

Contributors

Pabldi08

36 commits

guxigua

1 commits

Languages

Rust

73.0%

TypeScript

19.3%

CSS

3.5%

HTML

2.7%

JavaScript

1.6%