How Punktfunk compares
Punktfunk next to Sunshine, three of its forks, Steam Remote Play and Parsec. The short version first, then every feature with a source.
What Punktfunk does differently
- Its own apps for iPhone, iPad, Apple TV, Mac, Android, Windows, Linux and Steam Deck. Moonlight still connects too.
- Every client gets its own virtual display at its exact resolution and refresh rate, on Windows and Linux. Several people can stream at once.
- Every stream is encrypted, with a post-quantum key exchange. Sunshine sends video on your LAN unencrypted by default.
- Lossless 96 kHz audio, and your microphone reaches the host.
- Each device gets its own rights: full control, controller only or view only.
- The bitrate adapts to your network by itself. Sunshine streams at the fixed rate Moonlight asks for.
- No account, no cloud service: your devices pair with a PIN. Steam and Parsec need an account.
Where the others are ahead
- Sunshine, Steam and Parsec also host on macOS, Sunshine and Steam on X11 desktops too. Most of the others run on Windows 10. Punktfunk needs Wayland or Windows 11.
- Sunshine has years of field use, a large community and packages for more distributions.
- Sunshine-Foundation goes further on HDR, with HLG, HDR10+ and Dolby Vision. It also forwards USB devices and shares folders.
- Vibeshine streams to a browser and syncs Playnite, Steam and Lutris without plugins.
- Steam Remote Play and Parsec work away from home without router setup, and a friend joins from an invite link.
- Without a usable GPU, Punktfunk streams H.264 only.
Feature by feature
Pick a project to set against Punktfunk. The small numbers link to the source behind each answer.
YesPartlyNoNot documented
| Punktfunkby unom | Sunshineby LizardByte | |
|---|---|---|
| Platforms | ||
| Windows host | ||
| Windows host | Windows 11 22H2 or later1 | Windows 11 or later2 |
| Linux host | ||
| Linux host | Wayland only: KDE, GNOME, gamescope, Sway, Hyprland3,4 | X11 and Wayland5 |
| macOS host | ||
| macOS host | the Mac is a client, by design6 | without virtual gamepads2 |
| Own client apps | ||
| Own client apps | iPhone, iPad, Apple TV, Mac, Android phone and TV, Windows, Linux, Steam Deck7 | uses Moonlight2 |
| Works with Moonlight | ||
| Works with Moonlight | after one switch in the console8 | 2 |
| Browser client | ||
| Browser client | a preview, off by default9 | 2 |
| Streaming | ||
| Automatic bitrate | ||
| Automatic bitrate | the default: adapts to the link and probes its capacity10 | streams at the rate Moonlight asks for5,11 |
| Error correction | ||
| Error correction | follows the loss the client reports12,13 | fixed at 20 %; skipped on frames over about 800 packets5,14 |
| Codec for minimal latency | ||
| Codec for minimal latency | PyroWave, opt-in, for wired networks15 | 5 |
| Security | ||
| Encrypted stream | ||
| Encrypted stream | always, with a post-quantum key exchange16,17 | optional, off by default on the LAN5 |
| Rights per device | ||
| Rights per device | full control, controller only, view only, or your own mix18 | 5 |
| Works without an account | ||
| Works without an account | your devices pair with a PIN3 | 2 |
| Video | ||
| Codecs | ||
| Codecs | H.264, HEVC, AV1, PyroWave3,15 | H.264, HEVC, AV15 |
| 4:4:4 colour | ||
| 4:4:4 colour | HEVC, Punktfunk apps4 | 5 |
| HDR | ||
| HDR | HDR10 on Windows and gamescope19 | HDR105 |
| Displays | ||
| Virtual display on Windows | ||
| Virtual display on Windows | own signed driver, works on the lock screen3 | changes your real display instead5 |
| Virtual display on Linux | ||
| Virtual display on Linux | KDE, GNOME, gamescope, Sway, Hyprland20 | 5 |
| Matches the client's resolution and refresh | ||
| Matches the client's resolution and refresh | a display per client20 | resizes your real display, if the client asks5 |
| Several clients at once | ||
| Several clients at once | each on its own display, four by default21 | several instances are not advised22 |
| Game keeps running after a disconnect | ||
| Game keeps running after a disconnect | display and game stay up20 | the game does; display settings revert5 |
| Audio | ||
| Surround | ||
| Surround | 5.1 and 7.14,10 | through Steam Streaming Speakers5 |
| Lossless audio | ||
| Lossless audio | 96 kHz, 24-bit4 | Opus only5 |
| Microphone to the host | ||
| Microphone to the host | every app except Apple TV4 | 5 |
| Input | ||
| Virtual gamepads on Windows | ||
| Virtual gamepads on Windows | own drivers, in the installer3 | a paid driver, or the retired ViGEmBus5 |
| Rumble, motion, adaptive triggers | ||
| Rumble, motion, adaptive triggers | DualSense, DualShock 4, Switch Pro, Steam Controller23 | motion and touchpad as a DualShock 45 |
| Pen and touch | ||
| Pen and touch | three touch modes, plus pen24 | 5 |
| Shared clipboard | ||
| Shared clipboard | text and images; not yet in the Linux app25,4 | 5 |
| File transfer | ||
| File transfer | not yet6 | 5 |
| USB devices | ||
| USB devices | through the VirtualHere plugin26 | 5 |
| Library and network | ||
| Game library | ||
| Game library | launcher plugins, plus your own titles26 | added by hand5 |
| Wake-on-LAN | ||
| Wake-on-LAN | the apps wake it; the host checks it is set up27 | a Moonlight feature only5 |
| Away from home | ||
| Away from home | Tailscale, Porthole or port forwarding; no relay28 | UPnP or port forwarding; no relay5 |
| Open source | ||
| Open source | MIT or Apache-2.03 | GPL-3.02 |
No latency figures here yet. Only Parsec publishes one, from its own test setup, and a fair comparison needs every host on the same machine.
Punktfunk runs next to any of these while you try it. Next to a Sunshine host, one port moves.
Sources
Sunshine as read on 2026-09-11. Each answer cites the project's own docs where it publishes any, and a fork never cites docs it copied from Sunshine.
- Docs: Requirements
- Sunshine README
- Punktfunk README
- Docs: Support matrix
- Sunshine docs/configuration.md
- Docs: Roadmap
- Punktfunk data/platforms.json
- Docs: Moonlight
- Docs: The browser client (preview)
- Docs: Client settings
- Moonlight Qt streamingpreferences.cpp
- Docs: Configuration, PUNKTFUNK_FEC_PCT
- Punktfunk GF(2¹⁶) FEC (crates/punktfunk-core/src/fec/gf16.rs)
- Sunshine src/stream.cpp: FEC blocks per frame
- Docs: PyroWave
- Docs: Security
- Punktfunk post-quantum key-exchange test (crates/punktfunk-host/src/gamestream/cert.rs)
- Docs: Access levels
- Docs: HDR
- Docs: Virtual displays
- Docs: Multiple devices at once
- Sunshine docs/getting_started.md
- Punktfunk input injection (crates/pf-inject/src/inject)
- Docs: Mouse, touch and pen
- Docs: Clipboard
- Docs: Plugins
- Docs: Wake-on-LAN
- Docs: Friends over the internet