Wayland
Waylandプロトコルはクライアントサーバモデルである。クライアントはピクセルバッファを画面上へ表示するよう要求するグラフィカルアプリケーションであり、サーバ(コンポジタ)はこれらのバッファの表示を制御するサービスプロバイダである。
Waylandリファレンス実装は、2層のプロトコルとして設計された。すなわち、
下位レイヤあるいはワイヤプロトコル: 関係する2つのプロセス—クライアントとコンポジタ—の間のプロセス間通信と、それらが内部で変えるデータのマーシャリング (英語版) を扱う。
その上の高位レイヤ: クライアントとコンポジタがウィンドウシステムの基本機能を実現するために交換する情報を扱う。このレイヤは、"非同期オブジェクト指向プロトコル"として実装された。
下位レイヤはCで手作業で書かれたが、高位レイヤはXMLフォーマットで書かれたプロトコルの記述から自動生成された。 このXMLで書かれたプロトコルの記述が変更されたときは、いつでもプロトコルを実装したCのソースコードを再生成できる。これによって、非常にフレキシブルで、拡張性が高く、エラーを防止したプロトコルになる。
Waylandプロトコルのリファレンス実装は、2つのライブラリ、すなわち、Waylandクライアントによって使われるlibwayland-clientライブラリと、Waylandコンポジタによって使われるlibwayland-serverライブラリである。
コンポジット型ウィンドウマネージャは、Xとは分離しており、追加機能である。一方、Waylandはディスプレイサーバとコンポジタを単一の機能として統合している。また、Waylandは、ウィンドウマネージャの仕事のいくつかを組み込んでいる。一方、Xは、クライアント側の仕事として分離されている。
Waylandディスプレイサーバプロトコルを実装したディスプレイサーバは、Waylandコンポジタとも呼ばれる。なぜなら、それらはコンポジット型ウィンドウマネージャの仕事もこなすからである。
Weston – Waylandコンポジタのリファレンス実装である。Westonは、クライアントサイド・デコレーションを実現する。
Lipstick – Waylandコンポジタを実装したモバイルグラフィカルシェルフレームワークである。これは、Sailfish OS(英語版), Nemo Mobile(英語版), AsteroidOSで使われる。
Enlightenment は、バージョン0.20から、完全にWaylandをサポートしている。しかし、完全なWaylandコンポジタになるための作業は続けられている。
KWin は、2021年現在、ほとんど完全にWaylandサポートを完了した。
Mutter は、(2013年9月に)GNOME 3.9にWaylandを統合するためのブランチを切った状態である。
Clayland(英語版) – Clutterを用いたWaylandコンポジタのシンプルな例である。
Westeros – Waylandコンポジタライブラリである。Westerosによって、アプリケーションが自身のWayland表示を作ることを可能になる。それによりサードパーティアプリケーションのネストと埋め込みを可能にする。
wlroots – モジュラWayland実装である。wlrootsは、他のコンポジタ、とくにSwayのためのベースとして関数である。
Sway – タイル型Waylandコンポジタである。また、X11のためのi3ウィンドウマネージャの置き換えである。
gamescope – SteamOSの一部である。初期のsteamcompmgrの置き換えである。