Verglichen, mit Quellen
Punktfunk neben Sunshine und seinen drei bekanntesten Forks. Jede Zelle verweist auf README, Doku oder Release Notes des Projekts. Jede Zahl auf dieser Seite kommt mit dem Befehl, der sie reproduziert.
So liest du diese Seite
Alle fünf Projekte wurden am 2026-09-11 gelesen. Die Forks liefern eine Kopie von Sunshines Doku mit, die Plattformen beschreibt, die sie gar nicht bauen. Eine Fork-Zeile zitiert deshalb README und Release Notes, nie die geerbte Doku. Nichts hier ist eine Latenzzahl von einem privaten Testrechner: die kannst du nicht nachmessen, also steht sie nicht auf dieser Seite.
| Funktion | Punktfunkunom | SunshineLizardByte | ApolloClassicOldSong | VibeshineNonary | Sunshine-FoundationAlkaidLab |
|---|---|---|---|---|---|
| Projekt | |||||
| Herkunft | eigene Codebasis, Rust27 | das Original, C++7 | Fork von Sunshine, C++8 | Fork von Sunshine, C++18 | Fork von Sunshine, C++21 |
| Lizenz | MIT oder Apache-2.0; der Windows-Host bündelt FFmpeg (LGPL)27 | GPL-3.07 | GPL-3.08 | GPL-3.018 | GPL-3.021 |
| Letztes Release | v0.35.0, 08.09.202650 | v2026.906.222525, 06.09.20264 | v0.4.6, 13.07.2025; letzter Commit 21.05.202611 | 1.18.4-stable.4, 10.09.202617 | v2026.911, 11.09.202623 |
| Host-Builds für | Linux (Debian/Ubuntu, Fedora, Arch, Bazzite, NixOS, SteamOS), Windows 11 x6428 | Windows x64 + ARM64, Linux, macOS, FreeBSD, Docker4,3 | nur Windows11 | Windows, Arch/CachyOS, SteamOS17 | nur Windows23,24 |
| Windows-Mindestversion | Windows 11 22H2, x6440 | Windows 113 | Windows 108 | Windows 10; virtuelles Display dort standardmäßig aus16 | Windows 10 22H221 |
| Linux-Host | nur Wayland: KDE, GNOME, gamescope, Sway, Hyprland27,34 | X11 und Wayland2 | im Quellcode, keine Builds8,11 | Arch/CachyOS-Repo; KDE für verwaltete Displays16,17 | 24 |
| macOS-Host | nur Client, bewusst35 | dort keine Gamepad-Emulation1 | im Quellcode, keine Builds11 | 17 | 24 |
| Protokoll und Sicherheit | |||||
| Protokoll | eigenes QUIC-Protokoll; Moonlight/GameStream optional27,30 | Moonlight/GameStream1 | Moonlight, mit geforkter Wire-Bibliothek13,8 | Moonlight, plus WebRTC für den Browser17 | Moonlight, mit geforkter Wire-Bibliothek21 |
| Videoverschlüsselung im LAN | immer, AES-GCM oder ChaCha2027,30 | optional; im LAN standardmäßig aus2 | von Sunshine geerbt12 | von Sunshine geerbt16 | von Sunshine geerbt22 |
| Schlüsselaustausch | TLS 1.3, hybrides X25519MLKEM768 zuerst45 | GameStream-Kopplung: RSA-Zertifikate, AES-Schlüssel aus der PIN31 | von Sunshine geerbt12 | von Sunshine geerbt16 | von Sunshine geerbt22 |
| Kopplung | SPAKE2-PIN oder Freigabe in der Konsole41 | PIN im Web-UI3 | PIN, dann Rechte pro Client9 | PIN16 | PIN oder QR-Code20 |
| Rechte pro Gerät | Vollzugriff, nur Controller, nur Ansehen oder eigene Schalter pro Gerät51 | 2 | Auflisten/Ansehen/Starten, Clipboard, je Eingabeart9 | eingeschränkte API-Tokens15 | Touch- und Gamepad-Profile pro Client23 |
| Web-UI-Anmeldung | Passwort, Konsole auf Port 4799229 | HTTP Basic Auth + CSRF-Token5 | von Sunshine geerbt12 | Session-Tokens, Angemeldet bleiben, API-Tokens15 | Basic Auth, verschärfte Origin-Prüfung23 |
| Video | |||||
| Codecs | H.264, HEVC, AV1, PyroWave27,43 | H.264, HEVC, AV12 | H.264, HEVC, AV112 | H.264, HEVC, AV116 | H.264, HEVC, AV122 |
| 4:4:4-Chroma | HEVC, nur natives Protokoll34 | 6 | 12 | 16 | 22 |
| 10 Bit / HDR | HDR10: Windows; Linux auf gamescope und GNOME 5033,35 | HDR102 | HDR10 am virtuellen Display; README rät von HDR ab8 | HDR10, RTX HDR, Vulkan-HDR-Layer auf Linux16,17 | HDR10 + HLG, HDR10+, HDR Vivid, Dolby Vision 8.1/8.4, Metadaten pro Frame21,23 |
| Encoder unter Windows | NVENC, AMF, QSV, Media Foundation, PyroWave; Software-H.26440,43 | NVENC, AMF, QSV, Media Foundation, Software1 | NVENC, AMF, QSV, Software12 | NVENC, AMF (FFmpeg-Pfad Standard), QSV, Software16,17 | NVENC SDK 13, AMF, QSV, Software; Vulkan experimentell20 |
| Encoder unter Linux | NVENC, VAAPI, Vulkan Video, PyroWave; Software-H.26427 | NVENC, VAAPI, Vulkan Video, Software1 | keine Linux-Builds11 | NVENC, VAAPI, Vulkan Video, Software16 | keine Linux-Builds24 |
| Eigener Low-Latency-Codec | PyroWave, reines Intra-Wavelet, optional43 | 2 | 12 | 16 | 22 |
| Fehlerkorrektur (FEC) | GF(2¹⁶) Reed–Solomon, bis 65535 Shards pro Block, adaptiv44,27 | Reed–Solomon pro Frame, festes fec_percentage2 | von Sunshine geerbt12 | von Sunshine geerbt16 | von Sunshine geerbt22 |
| Aufnahme und Displays | |||||
| Windows-Aufnahme | Frames direkt aus dem eigenen Displaytreiber, kein Screen-Scraping27 | DXGI; WGC Beta, nicht im Dienstmodus1,2 | DXGI; WGC Beta12 | WGC im Dienstmodus, Umschalten bei UAC und Anmeldung15,16 | DXGI/WGC; Zero-Copy aus dem eigenen Displaytreiber20 |
| Linux-Aufnahme | PipeWire und virtuelle Compositor-Ausgänge27 | KMS, X11, wlroots, XDG-Portal, KWin, NvFBC1,2 | keine Linux-Builds11 | eigenes DRM-Modul, KWin, Portal, wlroots, X11, NvFBC16 | keine Linux-Builds24 |
| Virtuelles Display, Windows | eigener signierter Treiber, auch am Sperrbildschirm27 | nur Display-Konfiguration, kein Treiber2 | SudoVDA, mitgeliefert8 | eigener signierter Treiber; SudoVDA als Rückfall15 | ZakoVDD, mitgeliefert20,26 |
| Virtuelles Display, Linux | über den Compositor: KDE, GNOME, gamescope, Sway, Hyprland32,27 | 2 | geplant8 | eigenes Kernelmodul, nur KDE, vier Anschlüsse16 | 24 |
| Display in exakter Client-Auflösung | eines pro Client, Auflösung und Bildrate27,32 | passt ein vorhandenes Display an; braucht „Optimize game settings“2 | feste Identität pro Client8 | standardmäßig pro Client16 | pro Client, per GUID gebunden20 |
| Mehrere Clients gleichzeitig | Linux: jeder auf eigenem Display; Windows: einer nach dem anderen32 | mehrere Instanzen „nicht empfohlen“3 | eine Instanz pro Client10 | bis zu vier Remote-Monitor-Sitzungen17 | Display-Sitzungen pro Client20,23 |
| Spiel überlebt den Verbindungsabbruch | Keep-alive-Regel pro Host, Display und Spiel bleiben32 | App läuft weiter; Display-Konfiguration wird zurückgesetzt2 | virtuelles Display verschwindet mit der App8 | Remote-Monitor-Identität bleibt für Resume16 | Display entsteht und endet mit dem Stream20 |
| Audio und Eingabe | |||||
| Surround-Audio | 5.1/7.1 auf Anfrage, vom Host aufgelöst; verlustfreie Strecke bis 7.134,53 | über den Steam-Streaming-Speakers-Treiber2 | von Sunshine geerbt12 | von Sunshine geerbt16 | bis 7.1.4, Opus DRED20 |
| Verlustfreies Audio | 96 kHz / 24 Bit auf der nativen Strecke34 | Opus, wie es das Moonlight-Protokoll vorgibt34 | Opus34 | Opus34 | Opus, mit DRED-Redundanz20 |
| Mikrofon zum Host | native Clients; nicht tvOS34 | 2 | 12 | 16 | mit ihren Client-Forks; Mischen mehrerer Clients21,22 |
| Gamepad-Emulation, Windows | eigene Gamepad-Treiber im Installer27 | Virtual HID Driver braucht eine kostenpflichtige Lizenz; ViGEmBus ist abgekündigt2 | ViGEmBus13 | ViGEmBus / libvirtualgamepad17 | ViGEmBus + DualSense-Sidecar23 |
| Vibration, Bewegung, adaptive Trigger | DualSense, DualShock 4, Switch Pro, Steam Controller46 | Bewegung und Touchpad als DS42 | Vibration abschaltbar11 | DualSense adaptive Trigger17 | DualSense-Haptik und adaptive Trigger23 |
| Stift und Touch | drei Touch-Modi, Stift in voller Auflösung52 | native_pen_touch2 | 12 | 16 | virtueller USB-HID-Touch, Profile pro Client23 |
| Gemeinsame Zwischenablage | Text; Linux-Client-Seite noch ein Stub36,34 | 2 | mit Rechten pro Client8,9 | 16 | Text und Bild23 |
| Dateiübertragung | Wire-Format vorhanden, noch kein Client bietet Dateien an34,35 | 2 | 12 | 16 | schreibgeschütztes Verzeichnis-Mapping mit ihrem Client-Fork25 |
| USB-Geräte weiterleiten | VirtualHere-Plugin38 | 2 | 12 | 16 | USB/IP-Brücke, standardmäßig aus23 |
| Bibliothek, Clients, Netzwerk | |||||
| Spielebibliothek | Launcher per Plugin aus dem Index, eigene Titel in der Konsole38,49 | manuell, apps.json über das Web-UI2,3 | manuell, plus ein Profil-Manager11 | Playnite, Steam und Lutris automatisch15,16 | manuell, Artwork-Suche21 |
| Eigene native Clients | iOS/iPadOS/tvOS, macOS, Android + TV, Windows, Linux, Steam Deck28 | jeder Moonlight-Client1 | Artemis, nur Android8,14 | ein Moonlight-PC-Fork mit VRR17 | Moonlight-Forks für PC, Android, iOS, HarmonyOS20 |
| Normale Moonlight-Clients | sobald GameStream-Kompatibilität an ist30 | 1 | will sich mit der Zeit abkoppeln8 | 15 | manche Funktionen brauchen ihre Forks21 |
| Browser-Client | eigenes Repo, noch nicht auf der Download-Seite27,28 | Moonlight-Web-Clients1 | 8 | aus dem eigenen Web-UI per WebRTC17 | 21 |
| Wake-on-LAN | Host meldet die MAC und prüft die Netzwerkkarte; Clients wecken ihn37 | nur eine Funktion des Moonlight-Clients2 | von Sunshine geerbt12 | von Sunshine geerbt16 | von Sunshine geerbt22 |
| Unterwegs | Tailscale-Freigabe, Porthole oder Port-Weiterleitung; kein Relay42 | UPnP optional oder Port-Weiterleitung; kein Relay2 | von Sunshine geerbt12 | gleich; WebRTC läuft hinter Traefik/Cloudflare16,17 | von Sunshine geerbt22 |
| Konto oder Cloud nötig | 27 | 1 | 8 | 15 | 21 |
Zahlen, die du nachrechnen kannst
Führe jeden Befehl in einem frischen Checkout des Punktfunk-Monorepos bei Commit 0bbf1e5c aus. Der Wert ist, was er am Tag des Schreibens ausgab; der Befehl ist, was zählt.
Paketverlust, gerettete Frames
Punktfunk bringt einen Loss-Harness mit: Er schickt 50 Frames zu 100 kB mit 25 % Parität durch den echten Fehlerkorrekturpfad und verwirft jedes N-te Paket. Kein Netzwerk, keine GPU, kein Zufall, die Tabelle ist also auf jedem Rechner identisch.
| Verworfene Pakete | Verlust | GF(2⁸) | GF(2¹⁶) |
|---|---|---|---|
| none | 0.0 % | 50/50 | 50/50 |
| 1/32 | 3.1 % | 50/50 | 50/50 |
| 1/16 | 6.2 % | 50/50 | 50/50 |
| 1/8 | 12.5 % | 50/50 | 50/50 |
| 1/6 | 16.7 % | 50/50 | 50/50 |
| 1/4 | 25.0 % | 0/50 | 0/50 |
| 1/3 | 33.3 % | 0/50 | 0/50 |
| 1/2 | 50.0 % | 0/50 | 0/50 |
Beide Felder retten jeden Frame, solange der Verlust unter dem Paritätsbudget bleibt, und keinen, sobald er darüber liegt. Der Unterschied ist die Blockgröße, nicht die Rettungsquote: GF(2⁸)-Codes sind auf 255 Shards pro Block begrenzt, GF(2¹⁶) auf 65535, und das hält einen 5120×1440-Frame bei 240 Hz in einem Block. Der Harness druckt eine zweite Tabelle zur Teilzustellung bei zufälligem Verlust.
Die Protokoll-Pipeline hat außerdem einen Criterion-Benchmark, der einen ganzen Frame durch Fehlerkorrektur, Verschlüsselung, Paketierung und zurück schickt. Sein Ergebnis hängt von deiner CPU ab, deshalb steht hier keins. Lass ihn laufen und vergleiche deine eigenen Zahlen:
Warum hier keine Latenzzahl steht
Punktfunk hat keine Photon-zu-Photon-Messung, die irgendwer wiederholen kann: Die Sonde im Repository ist ein Platzhalter, und die Werte in den Design-Notizen stammen von benannten privaten Rechnern, meist über Loopback. Eine Zahl ohne Rechner, Codec, Auflösung und Messgerät ist eine Schätzung mit Nachkommastelle, also steht hier keine.
Die anderen vier haben auch keine. Sunshines Performance-Seite besteht aus zwei Sätzen ohne Werte; Apollo veröffentlicht keine; Vibeshines einzige Zahl ist ein behobener Fehler, der Windows-Streams bei etwa 64 fps deckelte; Sunshine-Foundations einziger Wert ist ein Cache, der das Encoder-Probing von 26 s auf unter 100 ms verkürzt.
Was du tun kannst: deine eigene Strecke messen. Jeder Punktfunk-Client hat ein Stats-Overlay mit denselben vier Punkten, Aufnahme, empfangen, dekodiert, angezeigt, und der Host zeichnet diese Werte zum Export auf. Ein Hinweis aus der Doku gilt für jeden Vergleich: Moonlights Overlay hat keine Ende-zu-Ende-Zeile, also stelle Punktfunks Ende-zu-Ende-Wert nie einer einzelnen Moonlight-Zahl gegenüber.
Wie das Stats-Overlay misstWo die anderen vorn liegen
Die Tabelle ist nur fair, wenn diese Liste es auch ist.
- Sunshine hostet auf macOS, FreeBSD, X11-Desktops und Windows 10. Punktfunk braucht Wayland unter Linux und Windows 11 22H2 unter Windows und hat bewusst keinen macOS-Host.
- Sunshine hat Jahre im Feld, eine Community von Zehntausenden und Pakete für weit mehr Distributionen.
- Sunshine-Foundations HDR-Pipeline geht weiter: HLG neben HDR10, HDR10+, HDR Vivid, Dolby-Vision-Profile 8.1 und 8.4 und Helligkeits-Metadaten pro Frame. Punktfunk kann HDR10 unter Windows sowie auf gamescope und GNOME 50 unter Linux.
- Sunshine-Foundation leitet USB-Geräte weiter und teilt Ordner mit seinen Client-Forks. Punktfunk hat ein VirtualHere-Plugin und ein Dateiübertragungs-Format, das noch kein Client anbietet.
- Vibeshine streamt aus dem eigenen Web-UI per WebRTC in den Browser, synchronisiert Playnite, Steam und Lutris ohne zusätzliche Plugins und steuert RTSS, MangoHud und Lossless Scaling fürs Frame-Pacing.
- Punktfunks Software-Encoder kann nur H.264, ein Host ohne brauchbare GPU streamt also weniger Codecs als Sunshines Software-Pfad.
Punktfunk läuft neben jedem dieser Hosts, während du es ausprobierst. Ein Port ist umzuziehen.
Quellen
Alle am 2026-09-11 gelesen. Wo eine Aussage einen Fork betrifft, zitiert sie dessen eigenes README oder seine Release Notes.
- Sunshine README
- Sunshine docs/configuration.md
- Sunshine docs/getting_started.md
- Sunshine releases
- Sunshine docs/api.md
- Sunshine src/video.h
- Sunshine repository
- Apollo README
- Apollo wiki: Permission System
- Apollo wiki: multiple instances
- Apollo releases
- Apollo docs/configuration.md
- Apollo .gitmodules
- Artemis (moonlight-android fork)
- Vibeshine README
- Vibeshine docs/configuration.md
- Vibeshine releases
- Vibeshine repository (GitHub parent: LizardByte/Sunshine)
- Vibepollo repository (GitHub parent: ClassicOldSong/Apollo)
- Sunshine-Foundation README (zh-CN)
- Sunshine-Foundation README.en.md
- Sunshine-Foundation docs/configuration.md
- Sunshine-Foundation releases
- Sunshine-Foundation CI (.github/workflows/main.yml)
- Sunshine-Foundation directory-mapping design
- ZakoVDD
- Punktfunk README
- Punktfunk data/platforms.json
- Docs: Switching from Sunshine
- Docs: Moonlight
- Docs: Security
- Docs: Virtual displays
- Docs: HDR
- Docs: Support matrix
- Docs: Roadmap
- Docs: Clipboard
- Docs: Wake-on-LAN
- Docs: Plugins
- Docs: Stats overlay
- Docs: Requirements
- Docs: Pairing
- Docs: Friends over the internet
- Docs: PyroWave
- Punktfunk GF(2¹⁶) FEC (crates/punktfunk-core/src/fec/gf16.rs)
- Punktfunk post-quantum key-exchange test (crates/punktfunk-host/src/gamestream/cert.rs)
- Punktfunk input injection (crates/pf-inject/src/inject)
- Punktfunk loss harness (tools/loss-harness)
- Punktfunk pipeline bench (scripts/bench)
- Punktfunk plugin index
- Punktfunk releases
- Docs: Access levels
- Docs: Mouse, touch and pen
- Docs: Client settings