Tarnyko's website
Tarnyko's website
about

waypipe, affichage distant natif pour Wayland

2020-02-16

Je viens de découvrir un projet GSoC qui n'a pas eu assez d'écho : waypipe.

Si un reproche a fréquemment été fait à Wayland - comparativement à l'ancêtre X11 - depuis le départ, c'est bien qu'il ne prend pas en charge la « transparence réseau » chère à nos cours d'université (et si peu utilisée en vrai ; non non, ne pas se lancer là-dessus...).

En effet, le protocole Wayland ne fournit pas de socket réseau, mais uniquement un socket UNIX local permettant d’initier un canal de négociation de mémoire partagée.
Il existe bien des solutions basées sur des protocoles dédiés au bureau distant comme RDP (voir ici 😉) ou VNC, mais le reproche restait qu’il s’agissait de protocoles sans rapport et surtout que la visualisation se faisait au niveau « bureau » — pas « fenêtre ».

Voyons donc ce que donne waypipe :

waypipe

J'utilise ici le compositeur Weston, où j'exécute 2 applications Wayland "pures" :

à distance à travers SSH.

Concrètement, c’est aussi simple que de lancer :
waypipe ssh (utilisateur)@(mdp) monprog
entre deux machines équipées du binaire waypipe dans leur $PATH.

Le fonctionnement est un peu technique ; alors, en résumé : sur la machine distante, waypipe prétend être un compositeur et « sérialise » le protocole Wayland vers un socket réseau établi en collaboration avec le waypipe de la machine locale.

Sont gérés :

L’auteur fournit même une métrique : en désactivant la compression LZ4 et activant toutes les autres accélérations, un SuperTuxKart distant tourne à 40 images/seconde en consommant ~130 Mo/s de bande passante.

(si l’on considère que la partie réseau « sérialisation/compression » qui est le vrai spécifique de waypipe fonctionne au niveau « buffer Wayland » plutôt que « compositeur complet » comme VNC/RDP, qu’elle est « auto-contenue » et que les autres dépendances — GBM, DRM, libVA — sont déjà tirées dans les compositeurs tels Weston, on peut sans trop de problèmes dire que c’est natif)

Je vous encourage vivement à tester 😃 !