Punktfunk vs Sunshine + Moonlight: where they differ
Sunshine + Moonlight is the open-source default for streaming your PC. Where Punktfunk differs, and where Sunshine + Moonlight is still the better pick.
Sunshine (the host) and Moonlight (the client) are the open-source default for streaming games from your own PC. Here is where Punktfunk differs, and where Sunshine + Moonlight is still the better pick. Every claim, with its source, is in the comparison matrix.
Where Punktfunk differs
A display for each device, on Linux too
When a device connects, Punktfunk creates a virtual display at that device's resolution and refresh rate. On Linux the compositor makes it: KDE Plasma, GNOME, gamescope, sway or Hyprland. Sunshine has no virtual display on Linux. Several devices can stream at once, each on its own display, on Linux and on Windows. See virtual displays on Linux.
Its own display driver on Windows
The Windows host ships its own signed display driver and takes finished frames from it instead of capturing the desktop. You get a display at the client's exact mode with no dummy plug, HDR on a headless box, and a stream that keeps working on UAC prompts and the lock screen. The installer also brings its own virtual gamepad drivers. Details: IDD push vs Desktop Duplication and WGC.
On Linux, HDR needs gamescope; KDE, GNOME, sway and Hyprland displays are SDR.
A dropped connection doesn't end the evening
You choose what happens after a device drops: remove its display, keep it for a set time (up to 24 hours), or keep it until you release it. Reconnect inside it and you are back where you left off. On gamescope the game lives as long as its display. Presets cover the common setups: Default, Shared desktop, Hot-desk, Workstation and Headless box. Sunshine keeps the app running but reverts its display changes.
Its own protocol, with Moonlight as a fallback
Punktfunk's apps use their own protocol: QUIC for control, and video that is always encrypted, with error correction sized to the loss your link shows. Automatic bitrate measures the link before the first frame. Sunshine's video encryption on the LAN is opt-in. For devices without a Punktfunk app, the host can speak GameStream, so Moonlight connects. That is off until you turn it on, because GameStream pairs over plain HTTP.
Punktfunk is MIT or Apache-2.0 and contains no FFmpeg. Sunshine is GPL-3.0.
Pairing and per-device access
A new device pairs with a SPAKE2 PIN or an approval in the web console, then reconnects on a pinned identity. Each device gets an access level, such as Controller only for a friend, and an optional expiry. Sunshine has no per-device rights.
Native apps
Punktfunk has apps for Mac, iPhone, iPad, Apple TV, Windows, Linux, Android and Android TV, a Decky plugin for the Steam Deck, and a community app for LG TVs. Both stacks do H.264, HEVC, AV1 and 5.1/7.1 sound. The Punktfunk apps add lossless 96 kHz audio, a microphone to the host, and PyroWave, a low-latency codec for wired networks.
Where Sunshine + Moonlight still win
- Reach. Moonlight runs on far more devices than Punktfunk has apps for. Turn on GameStream and those devices can use a Punktfunk host too.
- Maturity. Years of use in a large community. Whatever you hit, someone has likely reported it.
- Host platforms. Sunshine hosts on macOS, FreeBSD, Docker, X11 desktops and Windows on ARM. Punktfunk hosts on Windows 11 22H2 or newer (x64) and on Wayland Linux.
- Your real monitor on Windows. Sunshine streams the desktop you see. A Windows Punktfunk host streams only its own virtual display; streaming a physical monitor is Linux-only.
- Opening the router. Sunshine can open its ports with UPnP if you turn it on. Punktfunk has no UPnP: you share the host through Porthole or Tailscale, or forward ports by hand.
Want to try it without giving anything up? Switching from Sunshine shows how to run both side by side. Other options are in the best self-hosted game streaming setups.