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.

JaTeilweise, siehe HinweisNeinDie hochgestellten Zahlen verweisen auf die Quellen am Seitenende.
FunktionPunktfunkunomSunshineLizardByteApolloClassicOldSongVibeshineNonarySunshine-FoundationAlkaidLab
Projekt
Herkunfteigene Codebasis, Rust27das Original, C++7Fork von Sunshine, C++8Fork von Sunshine, C++18Fork von Sunshine, C++21
LizenzMIT oder Apache-2.0; der Windows-Host bündelt FFmpeg (LGPL)27GPL-3.07GPL-3.08GPL-3.018GPL-3.021
Letztes Releasev0.35.0, 08.09.202650v2026.906.222525, 06.09.20264v0.4.6, 13.07.2025; letzter Commit 21.05.2026111.18.4-stable.4, 10.09.202617v2026.911, 11.09.202623
Host-Builds fürLinux (Debian/Ubuntu, Fedora, Arch, Bazzite, NixOS, SteamOS), Windows 11 x6428Windows x64 + ARM64, Linux, macOS, FreeBSD, Docker4,3nur Windows11Windows, Arch/CachyOS, SteamOS17nur Windows23,24
Windows-MindestversionWindows 11 22H2, x6440Windows 113Windows 108Windows 10; virtuelles Display dort standardmäßig aus16Windows 10 22H221
Linux-Hostnur Wayland: KDE, GNOME, gamescope, Sway, Hyprland27,34X11 und Wayland2im Quellcode, keine Builds8,11Arch/CachyOS-Repo; KDE für verwaltete Displays16,1724
macOS-Hostnur Client, bewusst35dort keine Gamepad-Emulation1im Quellcode, keine Builds111724
Protokoll und Sicherheit
Protokolleigenes QUIC-Protokoll; Moonlight/GameStream optional27,30Moonlight/GameStream1Moonlight, mit geforkter Wire-Bibliothek13,8Moonlight, plus WebRTC für den Browser17Moonlight, mit geforkter Wire-Bibliothek21
Videoverschlüsselung im LANimmer, AES-GCM oder ChaCha2027,30optional; im LAN standardmäßig aus2von Sunshine geerbt12von Sunshine geerbt16von Sunshine geerbt22
SchlüsselaustauschTLS 1.3, hybrides X25519MLKEM768 zuerst45GameStream-Kopplung: RSA-Zertifikate, AES-Schlüssel aus der PIN31von Sunshine geerbt12von Sunshine geerbt16von Sunshine geerbt22
KopplungSPAKE2-PIN oder Freigabe in der Konsole41PIN im Web-UI3PIN, dann Rechte pro Client9PIN16PIN oder QR-Code20
Rechte pro GerätVollzugriff, nur Controller, nur Ansehen oder eigene Schalter pro Gerät512Auflisten/Ansehen/Starten, Clipboard, je Eingabeart9eingeschränkte API-Tokens15Touch- und Gamepad-Profile pro Client23
Web-UI-AnmeldungPasswort, Konsole auf Port 4799229HTTP Basic Auth + CSRF-Token5von Sunshine geerbt12Session-Tokens, Angemeldet bleiben, API-Tokens15Basic Auth, verschärfte Origin-Prüfung23
Video
CodecsH.264, HEVC, AV1, PyroWave27,43H.264, HEVC, AV12H.264, HEVC, AV112H.264, HEVC, AV116H.264, HEVC, AV122
4:4:4-ChromaHEVC, nur natives Protokoll346121622
10 Bit / HDRHDR10: Windows; Linux auf gamescope und GNOME 5033,35HDR102HDR10 am virtuellen Display; README rät von HDR ab8HDR10, RTX HDR, Vulkan-HDR-Layer auf Linux16,17HDR10 + HLG, HDR10+, HDR Vivid, Dolby Vision 8.1/8.4, Metadaten pro Frame21,23
Encoder unter WindowsNVENC, AMF, QSV, Media Foundation, PyroWave; Software-H.26440,43NVENC, AMF, QSV, Media Foundation, Software1NVENC, AMF, QSV, Software12NVENC, AMF (FFmpeg-Pfad Standard), QSV, Software16,17NVENC SDK 13, AMF, QSV, Software; Vulkan experimentell20
Encoder unter LinuxNVENC, VAAPI, Vulkan Video, PyroWave; Software-H.26427NVENC, VAAPI, Vulkan Video, Software1keine Linux-Builds11NVENC, VAAPI, Vulkan Video, Software16keine Linux-Builds24
Eigener Low-Latency-CodecPyroWave, reines Intra-Wavelet, optional432121622
Fehlerkorrektur (FEC)GF(2¹⁶) Reed–Solomon, bis 65535 Shards pro Block, adaptiv44,27Reed–Solomon pro Frame, festes fec_percentage2von Sunshine geerbt12von Sunshine geerbt16von Sunshine geerbt22
Aufnahme und Displays
Windows-AufnahmeFrames direkt aus dem eigenen Displaytreiber, kein Screen-Scraping27DXGI; WGC Beta, nicht im Dienstmodus1,2DXGI; WGC Beta12WGC im Dienstmodus, Umschalten bei UAC und Anmeldung15,16DXGI/WGC; Zero-Copy aus dem eigenen Displaytreiber20
Linux-AufnahmePipeWire und virtuelle Compositor-Ausgänge27KMS, X11, wlroots, XDG-Portal, KWin, NvFBC1,2keine Linux-Builds11eigenes DRM-Modul, KWin, Portal, wlroots, X11, NvFBC16keine Linux-Builds24
Virtuelles Display, Windowseigener signierter Treiber, auch am Sperrbildschirm27nur Display-Konfiguration, kein Treiber2SudoVDA, mitgeliefert8eigener signierter Treiber; SudoVDA als Rückfall15ZakoVDD, mitgeliefert20,26
Virtuelles Display, Linuxüber den Compositor: KDE, GNOME, gamescope, Sway, Hyprland32,272geplant8eigenes Kernelmodul, nur KDE, vier Anschlüsse1624
Display in exakter Client-Auflösungeines pro Client, Auflösung und Bildrate27,32passt ein vorhandenes Display an; braucht „Optimize game settings“2feste Identität pro Client8standardmäßig pro Client16pro Client, per GUID gebunden20
Mehrere Clients gleichzeitigLinux: jeder auf eigenem Display; Windows: einer nach dem anderen32mehrere Instanzen „nicht empfohlen“3eine Instanz pro Client10bis zu vier Remote-Monitor-Sitzungen17Display-Sitzungen pro Client20,23
Spiel überlebt den VerbindungsabbruchKeep-alive-Regel pro Host, Display und Spiel bleiben32App läuft weiter; Display-Konfiguration wird zurückgesetzt2virtuelles Display verschwindet mit der App8Remote-Monitor-Identität bleibt für Resume16Display entsteht und endet mit dem Stream20
Audio und Eingabe
Surround-Audio5.1/7.1 auf Anfrage, vom Host aufgelöst; verlustfreie Strecke bis 7.134,53über den Steam-Streaming-Speakers-Treiber2von Sunshine geerbt12von Sunshine geerbt16bis 7.1.4, Opus DRED20
Verlustfreies Audio96 kHz / 24 Bit auf der nativen Strecke34Opus, wie es das Moonlight-Protokoll vorgibt34Opus34Opus34Opus, mit DRED-Redundanz20
Mikrofon zum Hostnative Clients; nicht tvOS3421216mit ihren Client-Forks; Mischen mehrerer Clients21,22
Gamepad-Emulation, Windowseigene Gamepad-Treiber im Installer27Virtual HID Driver braucht eine kostenpflichtige Lizenz; ViGEmBus ist abgekündigt2ViGEmBus13ViGEmBus / libvirtualgamepad17ViGEmBus + DualSense-Sidecar23
Vibration, Bewegung, adaptive TriggerDualSense, DualShock 4, Switch Pro, Steam Controller46Bewegung und Touchpad als DS42Vibration abschaltbar11DualSense adaptive Trigger17DualSense-Haptik und adaptive Trigger23
Stift und Touchdrei Touch-Modi, Stift in voller Auflösung52native_pen_touch21216virtueller USB-HID-Touch, Profile pro Client23
Gemeinsame ZwischenablageText; Linux-Client-Seite noch ein Stub36,342mit Rechten pro Client8,916Text und Bild23
DateiübertragungWire-Format vorhanden, noch kein Client bietet Dateien an34,3521216schreibgeschütztes Verzeichnis-Mapping mit ihrem Client-Fork25
USB-Geräte weiterleitenVirtualHere-Plugin3821216USB/IP-Brücke, standardmäßig aus23
Bibliothek, Clients, Netzwerk
SpielebibliothekLauncher per Plugin aus dem Index, eigene Titel in der Konsole38,49manuell, apps.json über das Web-UI2,3manuell, plus ein Profil-Manager11Playnite, Steam und Lutris automatisch15,16manuell, Artwork-Suche21
Eigene native ClientsiOS/iPadOS/tvOS, macOS, Android + TV, Windows, Linux, Steam Deck28jeder Moonlight-Client1Artemis, nur Android8,14ein Moonlight-PC-Fork mit VRR17Moonlight-Forks für PC, Android, iOS, HarmonyOS20
Normale Moonlight-Clientssobald GameStream-Kompatibilität an ist301will sich mit der Zeit abkoppeln815manche Funktionen brauchen ihre Forks21
Browser-Clienteigenes Repo, noch nicht auf der Download-Seite27,28Moonlight-Web-Clients18aus dem eigenen Web-UI per WebRTC1721
Wake-on-LANHost meldet die MAC und prüft die Netzwerkkarte; Clients wecken ihn37nur eine Funktion des Moonlight-Clients2von Sunshine geerbt12von Sunshine geerbt16von Sunshine geerbt22
UnterwegsTailscale-Freigabe, Porthole oder Port-Weiterleitung; kein Relay42UPnP optional oder Port-Weiterleitung; kein Relay2von Sunshine geerbt12gleich; WebRTC läuft hinter Traefik/Cloudflare16,17von Sunshine geerbt22
Konto oder Cloud nötig27181521

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.

8Host-Plattformen mit Installationsweg
jq '[.platforms[] | select(.installs == "host")] | length' data/platforms.json
6Client-Installationswege
jq '[.platforms[] | select(.installs == "client")] | length' data/platforms.json
Eine Apple-Zeile deckt iOS, iPadOS und tvOS ab; eine Android-Zeile Telefon und TV.
5Linux-Compositor-Backends
grep -A 12 'pub enum Compositor' crates/pf-vdisplay/src/lib.rs
16Plugins im offiziellen Index
curl -sL https://git.unom.io/unom/punktfunk-plugin-index/raw/branch/main/v1/index.json | jq '.plugins | length'
95Operationen der Management-API
jq '[.paths[] | to_entries[] | select(.key | IN("get","post","put","patch","delete"))] | length' api/openapi.json
4173Rust-Testfunktionen
grep -rn '#\[test\]\|#\[tokio::test\]' --include='*.rs' crates clients sdk plugin-kit tools | wc -l
65Versions-Tags seit dem ersten Release
git tag --list 'v0.*' | wc -l
v0.1.0 stammt vom 12.06.2026, v0.35.0 vom 09.09.2026.

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.

cargo run -q -p loss-harness
Verworfene PaketeVerlustGF(2⁸)GF(2¹⁶)
none0.0 %50/5050/50
1/323.1 %50/5050/50
1/166.2 %50/5050/50
1/812.5 %50/5050/50
1/616.7 %50/5050/50
1/425.0 %0/500/50
1/333.3 %0/500/50
1/250.0 %0/500/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:

cargo bench -p punktfunk-core --bench pipeline -- --warm-up-time 1 --measurement-time 3

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 misst

Wo 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.

  1. Sunshine README
  2. Sunshine docs/configuration.md
  3. Sunshine docs/getting_started.md
  4. Sunshine releases
  5. Sunshine docs/api.md
  6. Sunshine src/video.h
  7. Sunshine repository
  8. Apollo README
  9. Apollo wiki: Permission System
  10. Apollo wiki: multiple instances
  11. Apollo releases
  12. Apollo docs/configuration.md
  13. Apollo .gitmodules
  14. Artemis (moonlight-android fork)
  15. Vibeshine README
  16. Vibeshine docs/configuration.md
  17. Vibeshine releases
  18. Vibeshine repository (GitHub parent: LizardByte/Sunshine)
  19. Vibepollo repository (GitHub parent: ClassicOldSong/Apollo)
  20. Sunshine-Foundation README (zh-CN)
  21. Sunshine-Foundation README.en.md
  22. Sunshine-Foundation docs/configuration.md
  23. Sunshine-Foundation releases
  24. Sunshine-Foundation CI (.github/workflows/main.yml)
  25. Sunshine-Foundation directory-mapping design
  26. ZakoVDD
  27. Punktfunk README
  28. Punktfunk data/platforms.json
  29. Docs: Switching from Sunshine
  30. Docs: Moonlight
  31. Docs: Security
  32. Docs: Virtual displays
  33. Docs: HDR
  34. Docs: Support matrix
  35. Docs: Roadmap
  36. Docs: Clipboard
  37. Docs: Wake-on-LAN
  38. Docs: Plugins
  39. Docs: Stats overlay
  40. Docs: Requirements
  41. Docs: Pairing
  42. Docs: Friends over the internet
  43. Docs: PyroWave
  44. Punktfunk GF(2¹⁶) FEC (crates/punktfunk-core/src/fec/gf16.rs)
  45. Punktfunk post-quantum key-exchange test (crates/punktfunk-host/src/gamestream/cert.rs)
  46. Punktfunk input injection (crates/pf-inject/src/inject)
  47. Punktfunk loss harness (tools/loss-harness)
  48. Punktfunk pipeline bench (scripts/bench)
  49. Punktfunk plugin index
  50. Punktfunk releases
  51. Docs: Access levels
  52. Docs: Mouse, touch and pen
  53. Docs: Client settings