AirDisplay Client
Cross-platform desktop screen mirroring client for AirDisplay Android app.
Overview
AirDisplay Client streams your PC screen to an Android device using the AirDisplay Protocol (ADP), a lightweight custom protocol over TCP. It supports Windows, macOS, and Linux.
Architecture
┌─────────────────────┐ ADP (TCP:7935) ┌──────────────────┐
│ AirDisplay Client │ ──────────────────────────► │ AirDisplay App │
│ (Desktop: Rust+ │ mDNS discovery │ (Android) │
│ Tauri+React) │ ◄────────────────────────── │ │
└─────────────────────┘ └──────────────────┘
Technology Stack
| Layer | Technology |
|---|---|
| Desktop Framework | Tauri v2 (Rust) |
| Frontend UI | React + TypeScript + Vite |
| Screen Capture | DXGI (Win) / CGDisplay (macOS) / PipeWire (Linux) |
| Video Encoding | x264 software (ffmpeg-next) / HW encoders (NVENC, QSV, VideoToolbox) |
| Protocol | ADP v1 (8-byte frame header + H.264 NAL over TCP) |
| Discovery | mDNS (_airdisplay._tcp) via mdns-sd |
Build
Prerequisites
- Rust 1.75+
- Node.js 18+
- Platform-specific system deps (see Tauri docs)
Build Steps
# Install dependencies
npm install
# Development mode
npm run tauri dev
# Production build
npm run tauri build
Protocol Support
| Protocol | Status | Description |
|---|---|---|
| ADP v1 | ✅ Planned | Custom lightweight frame protocol |
| Miracast | ❌ Not supported | Use Android app's built-in Miracast support |
| AirPlay | ❌ Not supported | Use macOS native screen mirroring to Android |
License
MIT
Description
Languages
Rust
64.5%
Shell
16.8%
TypeScript
12.5%
CSS
5.8%
HTML
0.4%