- Un compositeur Wayland qui permet d’exécuter des applications Linux sans machine virtuelle sur macOS, avec un rendu basé sur Metal/OpenGL pour une intégration naturelle à l’environnement de fenêtres de macOS
- Communication directe via le protocole Wayland à travers des sockets Unix afin de minimiser la perte de performances, avec prise en charge de l’optimisation HiDPI et des décorations côté serveur
- Écrit en Rust, il offre une accélération matérielle du rendu pour une faible latence et une haute efficacité
- Avec SSH et
waypipe-darwin, il est possible d’afficher les applications d’un hôte Linux dans des fenêtres macOS
- Distribué sous licence GPLv3, avec une feuille de route en cours incluant des extensions backend pour Windows et Android
Vue d’ensemble
- Cocoa-Way est un compositeur Wayland qui permet d’exécuter des applications Linux sur macOS comme si elles étaient natives
- Grâce au rendu Metal/OpenGL, il s’intègre naturellement au bureau macOS et prend en charge une connexion directe au protocole Wayland via des sockets, sans machine virtuelle
- Comprend des fonctions d’optimisation pour les écrans HiDPI, de décorations côté serveur et de rendu accéléré matériellement
- Écrit en Rust et distribué sous licence GPLv3
Fonctionnalités principales
- Intégration native à macOS : rendu basé sur Metal/OpenGL maintenant une compatibilité complète avec la gestion des fenêtres et les effets visuels de macOS
- Zero VM Overhead : communication directe via le protocole Wayland à travers des sockets Unix sans virtualisation afin de minimiser la perte de performances
- Prise en charge HiDPI : mise à l’échelle et précision au pixel adaptées aux écrans Retina
- Interface plus aboutie : inclut des fonctions de décoration côté serveur comme les ombres et les indicateurs de focus
- Accélération matérielle : pipeline de rendu OpenGL efficace pour obtenir une faible latence et de hautes performances
Méthode d’installation
-
Installation via Homebrew (recommandée)
brew tap J-x-Z/tap
brew install cocoa-way waypipe-darwin
-
Téléchargement du binaire
- Les fichiers
.dmg ou .zip peuvent être téléchargés depuis la page GitHub Releases
-
Compilation depuis les sources
Démarrage rapide
Architecture
- Côté macOS se trouvent le compositeur Cocoa-Way et le client waypipe
- Côté VM Linux ou conteneur se trouvent le serveur waypipe et les applications Linux
- Application Linux → protocole Wayland → serveur waypipe → SSH/socket → client waypipe → Cocoa-Way → Metal/OpenGL → affichage macOS
- L’ensemble du chemin est directement connecté sans virtualisation, pour une faible latence et une haute efficacité
Comparaison
| Solution |
Latence |
HiDPI |
Intégration native |
Complexité de configuration |
| Cocoa-Way |
⚡ faible |
✅ prise en charge complète |
✅ fenêtres natives |
🟢 facile |
| XQuartz |
🐢 élevée |
⚠️ prise en charge partielle |
⚠️ particularités de X11 |
🟡 moyenne |
| VNC |
🐢 élevée |
❌ non pris en charge |
❌ plein écran uniquement |
🟡 moyenne |
| VM GUI |
🐢 élevée |
⚠️ prise en charge partielle |
❌ fenêtre séparée |
🔴 complexe |
Feuille de route
- ✅ backend macOS (Metal/OpenGL)
- ✅ intégration Waypipe
- ✅ mise à l’échelle HiDPI
- 🚧 backend Windows (win-way)
- 📱 backend Android NDK (prévu)
- ⏳ prise en charge multi-écran
- ⏳ synchronisation du presse-papiers
Contexte de recherche
- Fait partie du projet de recherche « Turbo-Charged Protocol Virtualization »,
qui explore une virtualisation Wayland multiplateforme à coût nul en s’appuyant sur la monomorphisation des traits Rust et la conversion de pixels basée sur SIMD
Résolution de problèmes
- En cas d’erreur SSH « remote port forwarding failed », la cause peut être un fichier socket restant sur l’hôte distant
Contribution
- Il est recommandé d’ouvrir une issue et d’en discuter avant d’ajouter ou de modifier une fonctionnalité
- Les contributions via Pull Request sont bienvenues
Licence
- GPL-3.0
- Copyright © 2024–2025 J-x-Z
Aucun commentaire pour le moment.