Sobre el proyecto

Deskhub es una aplicación de escritorio remoto de código abierto que te permite ver y controlar tu computadora desde otro dispositivo. Se ejecuta de forma nativa en cinco plataformas: Windows, macOS, Linux, Android y iOS. La aplicación está construida sobre un núcleo compartido en C++20 que gestiona el protocolo en todas las plataformas. **Características principales:** - **Transmisión rápida**: Admite 60 fps en hardware compatible, con captura, codificación, decodificación y renderizado acelerados por GPU cuando están disponibles. - **Instalación sencilla**: Instala mediante gestores de paquetes (winget, Homebrew, apt) o descarga las versiones. No requiere cuenta ni servicio en segundo plano. - **Interfaz simple**: Las mismas cuatro páginas (Host, Client, Devices, Settings) aparecen en todas las plataformas, lo que hace que los controles sean familiares entre dispositivos. - **Seguro**: Las sesiones se cifran de extremo a extremo sobre QUIC/TLS. El acceso funciona como SSH: cada máquina tiene una clave, y los clientes solo son admitidos si el propietario del host los aprueba mediante solicitud de conexión, código QR o clave pública pegada. - **Entrada real**: Ratón relativo y scancodes para juegos con DirectInput; el ratón/teclado del propio host siempre tiene prioridad. - **Sonido incluido**: La mezcla de audio de la propia máquina se transmite mediante Opus a 64 kbps, con una trama de 20 ms por datagrama. - **Compatibilidad con múltiples monitores**: Comparte uno o varios monitores, cada uno como su propia sesión. - **Herramientas de línea de comandos**: `deskhub-cli` puede compartir una pantalla, abrir un shell remoto y ejecutarse desde un script o por SSH. - **Núcleo probado**: Pruebas unitarias sin conexión, ejecuciones de sanitizadores en CI y siete objetivos nocturnos de libFuzzer cubren el formato de transmisión, el análisis de H.264, el reensamblado, los bytes de terminal, el texto de la interfaz y las máquinas de estado de sesión. **Plataformas:** - **Windows**: Implementación de referencia, uso diario en LAN + Tailscale. - **macOS**: Ambos roles funcionando (ScreenCaptureKit + VideoToolbox + CGEvent). - **Android**: Cliente con vídeo + entrada; el host es solo para compartir pantalla en modo visualización (Android 10+). - **iOS**: Cliente con vídeo + entrada; el host es solo para compartir pantalla en modo visualización mediante Broadcast Upload Extension. - **Linux**: Ambos roles funcionando (PipeWire + VA-API + uinput + GTK3) en Ubuntu, Debian, Mint, Fedora, openSUSE, Arch. **Casos de uso:** - Ejecutar cargas de trabajo pesadas (Claude Code, VS Code, compilaciones) desde un portátil débil o un iPad. - Usar aplicaciones exclusivas de escritorio (Chrome, Office) desde otro dispositivo. - Jugar a 60 fps con ratón relativo y bloqueo del puntero. - Compartir varios monitores como sesiones separadas. **Seguridad:** Sin código de acceso, sin descubrimiento, sin interruptor que deje entrar a desconocidos. Usa una red de confianza o una VPN, y nunca redirijas el puerto UDP 47777. El modelo de amenazas completo está documentado en SECURITY.md. **Licencia:** MIT. Los componentes de terceros y los avisos se enumeran en THIRD_PARTY_NOTICES.md. **Documentación:** Disponible en inglés, vietnamita, chino y japonés, y abarca la instalación, la compilación desde el código fuente, la especificación, la arquitectura, la seguridad, la privacidad y los avisos de terceros.