MRP Compatibility and Limitations
Supported platforms
- .NET Framework 4.7.2 (desktop, including Mono hosts - validate independently)
- .NET 10
AppleTvControlLibrary.Mrp targets the same net472/net10.0 matrix as the Companion Link
library, using the same Span<T>/Memory<T> polyfills and compiler-attribute shims so a single
C# 13 codebase compiles on both targets with no #if branching in the protocol layer.
Transport
MRP is tunneled over AirPlay 2 only. The library does not implement:
- A raw-TCP MRP transport (retired; see
archive/mrp-tcp-transport/README.md). - AirPlay 2 media/audio/video streaming - only the MRP control channel is tunneled.
- Companion Link (HID input, touch, coarse volume/power control) - pair and connect to the Companion Link library separately for that functionality.
Hardware compatibility
This library has not been independently validated against real Apple TV hardware for MRP in the
same breadth as the Companion Link library's 4K-model test matrix. Treat MRP-over-AirPlay support
as validated primarily against the in-process fake device (tests/AppleTv.Mrp.FakeDevice) and the
pairing integration tests in tests/AppleTv.Mrp.Tests, and please report any issues you hit
against real hardware.
Protocol reference and correctness
AppleTvControlLibrary.Mrp is a from-scratch C# port of pyatv's MRP implementation
(pyatv/protocols/mrp), including its protobuf message definitions. Protocol constants carry
citation comments to the pyatv source file and line they were ported from. See
ATTRIBUTIONS.md
and THIRD-PARTY-NOTICES.txt
for licensing details.