Moonshine: New Rust-based server enables headless game streaming for Moonlight clients
Developer hgaiser releases Moonshine on GitHub, offering a headless backend for the popular Moonlight client that supports AV1, H.264, and H.265 video encoding.
Developer hgaiser has released Moonshine, a headless streaming server written in Rust, on GitHub. The software functions as a backend for the Moonlight client, enabling users to stream games and applications from a PC to any device running the client. By transmitting keyboard, mouse, and controller inputs back to the host, the tool allows for remote play that mimics sitting in front of the machine. The project is available under the repository hgaiser/moonshine.
Moonshine supports AV1, H.264, and H.265 video encoding. However, the developer has issued a warning regarding AV1 encoding on NVIDIA GPUs, noting that it is currently experimental and prone to issues where frame sizes grow over time. This stability problem is expected to be resolved in NVIDIA driver version 595.44.3.0 or later. Until that driver version is widely available, users are advised to utilise H.264 or H.265 encoding.
The software is designed primarily for local networks. Because the underlying GameStream protocol lacks full application-level encryption, Moonshine is not suitable for direct exposure to public networks. For users requiring internet streaming, the developer recommends employing a VPN solution such as Tailscale, WireGuard, or ZeroTier to secure the connection. Direct exposure of Moonshine ports to the internet is explicitly discouraged.
Moonshine includes automatic scanners for installed applications, specifically supporting Steam games and desktop applications via .desktop files. Each application runs in its own isolated streaming session. The tool can be installed via the Arch User Repository (AUR), which facilitates running applications in the user's session even when the user is not logged in. A configuration file, config.toml, is created automatically if the specified path does not exist.
Initial connection requires PIN verification, which can be accessed via a host notification or manually at http://localhost:47989/pin. The project relies on the foundational work of the developers behind the original GameStream and Moonlight projects. Moonshine aims to provide a robust, headless solution for users looking to stream their PC library without requiring the host to remain in an active desktop session.
