Cocoa-Way – macOS용 네이티브 Wayland 컴포지터, Linux 앱을 원활하게 실행

발행: (2026년 3월 28일 PM 07:06 GMT+9)
4 분 소요

Source: Hacker News

🎥 Demo Video

Demo Video

진정한 프로토콜 이식성: Unix 소켓을 통해 OrbStack에서 Linux 앱을 Cocoa‑Way로 렌더링.

✨ Features

FeatureDescription
🍎 Native macOSMetal/OpenGL 렌더링, 매끄러운 데스크톱 통합
🚀 Zero VM Overhead가상화 없이 소켓을 통한 직접 Wayland 프로토콜
📺 HiDPI Ready적절한 스케일링을 지원하는 Retina 디스플레이 최적화
🎨 Polished UI그림자와 포커스 표시기가 포함된 서버‑사이드 데코레이션
Hardware Accelerated효율적인 OpenGL 렌더링 파이프라인

📦 Installation

brew tap J-x-Z/tap
brew install cocoa-way waypipe-darwin

Download Binary

Releases page에서 최신 .dmg 또는 .zip을 다운로드하세요.

Build from Source

# Install dependencies
brew install libxkbcommon pixman pkg-config

# Clone and build
git clone https://github.com/J-x-Z/cocoa-way.git
cd cocoa-way
cargo build --release

🚀 Quick Start

Required: Linux 앱을 연결하려면 waypipe‑darwin을 설치하세요.

brew tap J-x-Z/tap && brew install waypipe-darwin

컴포지터 시작

cocoa-way

SSH를 통해 Linux 앱 연결

./run_waypipe.sh ssh user@linux-host firefox

🏗️ Architecture

graph LR
    subgraph macOS
        CW[Cocoa-Way Compositor]
        WP1[waypipe client]
    end

    subgraph Linux\ VM/Container
        WP2[waypipe server]
        APP[Linux App Firefox, etc.]
    end

    APP -->|Wayland Protocol| WP2
    WP2 |SSH/Socket| WP1
    WP1 -->|Wayland Protocol| CW
    CW -->|Metal/OpenGL| Display[macOS Display]

🆚 Comparison

SolutionLatencyHiDPINative IntegrationSetup Complexity
Cocoa‑Way⚡ Low✅ Yes✅ Native windows🟢 Easy
XQuartz🐢 High⚠️ Partial⚠️ X11 quirks🟡 Medium
VNC🐢 High❌ No❌ Full screen only🟡 Medium
VM GUI🐢 High⚠️ Partial❌ Separate window🔴 Complex

🗺️ Roadmap

  • macOS 백엔드 (Metal/OpenGL)
  • Waypipe 통합
  • HiDPI 스케일링
  • 🚧 Windows 백엔드 (win‑way)
  • 📱 Android NDK 백엔드 (예정)
  • 다중 모니터 지원
  • 클립보드 동기화

📚 Research

이 프로젝트는 “Turbo‑Charged Protocol Virtualization” 연구 이니셔티브의 일환으로, Rust 트레이트 모노모피제이션 + SIMD 가속 픽셀 변환을 통한 무비용 크로스‑플랫폼 Wayland를 탐구합니다.

❓ Troubleshooting

SSH: “remote port forwarding failed”

원격 호스트에 오래된 소켓 파일이 남아 있을 수 있습니다. run_waypipe.sh 스크립트가 -o StreamLocalBindUnlink=yes 옵션을 사용해 이를 자동으로 처리합니다.

수동으로 실행할 경우:

waypipe ssh -o StreamLocalBindUnlink=yes user@host ...

🤝 Contributing

기여를 환영합니다! 주요 변경 사항은 먼저 이슈를 열어 논의해 주세요.

📄 License

GPL‑3.0 – Copyright (c) 2024‑2025 J‑x‑Z

0 조회
Back to Blog

관련 글

더 보기 »

C로 프로그래밍 언어를 만들었습니다

C로 처음부터 프로그래밍 언어를 구축하여 언어가 내부적으로 어떻게 동작하는지 이해했습니다. 여기에는 lexer, parser, AST, bytecode compiler, 그리고 stack이 포함됩니다.

ISBN 시각화

ISBN 시각화 https://annas-archive.gd/isbn-visualization? 토론: Hacker News 스레드 https://news.ycombinator.com/item?id=47547508 – 68점, 10댓글