Moonshine: servidor de streaming headless para clientes Moonlight, escrito en Rust

Fuentes: Moonshine: headless streaming server for Moonlight clients, written in Rust

Moonshine es un servidor de streaming de código abierto, escrito en Rust, que permite retransmitir videojuegos desde un PC Linux a cualquier dispositivo que ejecute el cliente Moonlight. El teclado, el ratón y el gamepad del cliente envían sus entradas de vuelta al equipo anfitrión, de forma que el usuario puede jugar de forma remota como si estuviera sentado delante de él.

Funcionamiento y características principales: cada sesión de streaming corre en un compositor propio, completamente aislado del entorno de escritorio, por lo que el PC anfitrión puede seguir usándose con normalidad mientras se retransmite. El servidor está pensado para correr sin monitor ni sesión gráfica activa y no necesita un emulador de HDMI. La codificación de vídeo por hardware aprovecha la GPU con Vulkan y es compatible con H.264, H.265 y AV1; el códec AV1 se considera experimental y presenta problemas en GPUs NVIDIA por un crecimiento del tamaño de cuadro, con arreglo previsto en el driver 595.44.3.0. Incluye HDR de 10 bits, audio estéreo y envolvente 5.1/7.1 con Opus de baja latencia, y soporta teclado, ratón y gamepad con movimiento, panel táctil y respuesta háptica.

Requisitos e instalación: solo Linux (probado en Arch Linux, aunque funciona en otras distribuciones). Necesita systemd, una GPU con codificación Vulkan (NVIDIA RTX, AMD RDNA2+ o Intel Arc) y Moonlight 6.0.0 o superior. Se puede instalar fácilmente desde el AUR con yay -S moonshine. El emparejamiento inicial se realiza mediante un PIN mostrado en Moonlight y una página local en el puerto 47989. La configuración, en formato TOML, permite definir las aplicaciones a retransmitir con parámetros como título, carátula, comando, pre_comando y post_comando. Incorpora escáneres automáticos para juegos de Steam y entradas .desktop. La seguridad recuerda que GameStream no cifra totalmente el tráfico, por lo que recomienda usar VPN como Tailscale, WireGuard o ZeroTier y no exponer los puertos directamente a Internet.

Comparado con Sunshine, Moonshine sacrifica compatibilidad multiplataforma a cambio del aislamiento real de cada sesión sobre Linux, lo que lo hace especialmente útil para servidores sin cabeza y hogares donde el equipo principal debe quedar libre para otros usos.