rairplay is a Rust library for receiving and processing audio and video streams from Apple’s AirPlay2 protocol.
- RTSP server for handling AirPlay2 commands (e.g. changing volume, setting up streams)
- Decrypting audio streams (both real-time and buffered is supported)
- Decrypting video streams
- Legacy pairing (using X25519, ED25519 and DH)
- FairPlay (v3) using shairplay
- HomeKit pairing (WIP)
- "DJ mode" for managing many devices at once
- Example implementation using GStreamer library to pipe stream data into a file
- GStreamer plugin creating streams according to rairplay's API.
# Clone it locally
git clone https://github.com/r4v3n6101/rairplay.git
cd rairplay
# Set up dev environment via `nix`
nix develop .
# Run or `cargo build` if you need
cargo run- Old AirPlay1 protocol specification
- airplay2-receiver
- emmanuelecozzi blog
- AirPlay2 Protocol
- AirPlay2 Analysis
- A lot of my nerves, patience and time spent with my friend
rairplay is distributed under the GNU General Public License, version 3 (GPL-3.0).
You may use, modify, and redistribute the software under the terms of this license.
A full copy of the license text is available in the LICENSE file included with the project.