MirageKit — Appleプラットフォーム向けピアツーピア画面共有フレームワーク

Library

概要

MirageKitは、Appleプラットフォーム間でウィンドウやデスクトップをピアツーピアで共有するための軽量フレームワークです。macOS側にホストサービスを立ち上げてウィンドウ/仮想ディスプレイをキャプチャし、クライアントはホスト探索→低遅延UDPで映像受信→入力イベントの逆送信を行います。SwiftUIビューとMetal描画パイプラインを備え、macOS、iPadOS、visionOSでのストリーム描画をサポートします。現状はアクティブ開発中でAPIや仕様が変わる可能性があります。

GitHub

リポジトリの統計情報

  • スター数: 5
  • フォーク数: 1
  • ウォッチャー数: 5
  • コミット数: 4
  • ファイル数: 7
  • メインの言語: Swift

主な特徴

  • macOSホストによるウィンドウ/アプリ/フルデスクトップのキャプチャ機能
  • UDPベースの低遅延ビデオ配信と入力(マウス/キーボード)フォワーディング
  • SwiftUIコンポーネント+Metalレンダラーでクロスプラットフォーム表示を実現
  • サービス発見(ローカルネットワークのピア探索)を備えたピアツーピア設計

技術的なポイント

MirageKitは、低遅延の画面共有を実現するためにP2PアーキテクチャとUDP転送を採用している点が肝です。ホスト側はmacOSのウィンドウや仮想ディスプレイからフレームをキャプチャし、フレーム単位でパケット化してネットワークに流します。クライアント側はディスカバリ(ローカルのサービス発見機構を想定)でホストを検出して接続し、受信したデータをデコード(ネイティブのビデオAPIや軽量フォーマットを利用する想定)してMetalを用いて高速にレンダリングします。レンダリング用にSwiftUIラッパーが提供されるため、アプリ側は宣言的にストリームを埋め込めます。入力フォワーディングも備えており、クライアントで発生したタッチ/ポインタ/キーイベントをホストへ送り、リモートでの操作性を確保します。設計上は低遅延優先でUDPを選択しているため、パケットロス対策や順序制御、再送戦略をどう扱うかが実用面でのキーポイントになります。また、Swift Package Managerで配布される構成は、複数のAppleプラットフォーム(macOS、iPadOS、visionOS)へ容易に組み込み可能です。READMEとArchitecture.mdに今後の拡張や注意事項が記載されている点にも留意してください。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .gitignore: file
  • Architecture.md: file
  • LICENSE: file
  • Package.swift: file
  • README.md: file

…他 2 ファイル

まとめ

軽量で低遅延なApple向けP2P画面共有のプロトタイプ。

リポジトリ情報:

READMEの抜粋:

MirageKit

MirageKit is a window and desktop streaming framework for Apple platforms. It provides a macOS host service for capturing windows or virtual displays and a client service for discovering hosts, receiving low‑latency video over UDP, and forwarding input back to the host. SwiftUI views are included for rendering streams with Metal on macOS, iOS, and visionOS.

⚠️ MirageKit is still in active development and may introduce breaking changes.

Features

  • Window, app, and full deskto…