Game streaming that outgrew GameStream
Its own protocol, its own display driver, one shared Rust core — Linux-first, and Moonlight-compatible from day one.
240fps
stable at 5120×1440 — client-native, measured
~1.3 ms
capture to received, across two machines on a LAN
> 1 Gbps
past GameStream's ceiling — on a wired LAN
8
native client platforms
0
accounts, clouds, or dummy plugs required
What makes it different
Engineered end to end
From the display the host conjures to the frame on your screen, every layer is ours — and it shows.
Our own protocol
Past GameStream's ceiling, by design
Every other self-hosted streaming stack still speaks GameStream — NVIDIA's abandoned protocol, whose error correction caps usable video around 1 Gbps. Punktfunk speaks it too, so Moonlight and Artemis clients work on day one. But its native clients ride punktfunk/1: a QUIC control plane and an encrypted data plane with GF(2¹⁶) forward error correction that clears the 1 Gbps wall, changes resolution and refresh mid-stream without a reconnect, and probes your link so the bitrate matches reality, not a guess.
Linux-first
The streaming host Linux never had
On KDE, GNOME, gamescope, and Sway, the host asks your compositor for a real virtual display at your device's exact resolution and refresh — a handheld's 1280×800, a 4K TV, a 5120×1440 ultrawide — no dummy plugs, no EDID hacks, fully headless if you like. Several devices can stream at once, each on its own display. And on atomic distros like Bazzite, the host installs as a systemd extension: no layering, no reboot. Linux isn't a port of Punktfunk — it's where Punktfunk was built.
Keep-alive
Your game survives the disconnect
What happens after a drop is a policy you set, not luck. The host can keep the virtual display — and on a gamescope host, the game itself — alive through a disconnect, for a grace window or forever, so reconnecting drops you straight back in: no renegotiation, no desktop reshuffle. One-click presets cover real setups — gaming rig, shared desktop, hot-desk, workstation — several devices can become monitors of one desktop, and each client's display scaling sticks across reconnects.
Every layer ours
One Rust core, from our driver to your screen
On Windows, Punktfunk ships its own signed, all-Rust display driver and pushes finished frames straight into it — no screen scraping in between, working even on the lock screen — plus a small Vulkan layer for HDR where GPU drivers fall short. A single Rust core carries the protocol, error correction, and crypto in the host and every client alike, so a fix lands on eight platforms at once. Nothing is inherited from someone else's stack.
Measured, not marketed
Numbers you can check — on hardware you own
Every client ships a tiered stats overlay speaking the same vocabulary, and the web console graphs host performance live. Cross-machine latency is corrected for clock skew, so ~1.3 ms capture-to-received on a LAN is a measurement, not a promise. And the whole thing stays yours: SPAKE2 PIN pairing, pinned device identities, encrypted streams — no accounts, no cloud, and the legacy GameStream plane stays off until you switch it on.
Switching
Coming from Sunshine or Moonlight?
Punktfunk speaks NVIDIA's GameStream, so your Moonlight and Artemis clients work on day one — but underneath it's a new Rust protocol with displays that survive disconnects, its own Windows display driver, and native clients on eight platforms. Switch at your own pace.
And everything you'd expect
Native clients everywhere
Real native apps per platform — iPhone, iPad, Apple TV, macOS, Windows, Linux, Android, and the Steam Deck — not one cross-platform shell.
10-bit HDR on Windows hosts
Real 10-bit HDR on Windows hosts, negotiated per client — highlights that pop and shadows that stay clean, not a washed-out approximation.
4:4:4 full chroma
An opt-in full-chroma mode keeps small text and thin UI lines razor-sharp — for the desktop work between the games.
Audio that stays clean and in sync
Crackle-free stereo, in sync with the picture across machines — and your microphone streams back to the host for voice chat and push-to-talk.
Rich DualSense support
Gyro, touchpad, motion, rumble, lightbar, player LEDs, and adaptive triggers — passed through end to end.
Steam game library
Your installed Steam games, auto-detected from local files — no API key — with artwork, ready to launch.
Built-in speed test
The host sends a short burst of test traffic so the client can measure your connection and pick an informed bitrate.
Every GPU vendor — or none
Hardware encoding on NVIDIA, AMD, and Intel, plus a software H.264 fallback when there's no GPU at all.
Multi-monitor hosts
Stream the right screen every time — no cursor escape, no black bars.
Headless hosts
Run a gaming PC with no monitor attached — the virtual display stands in.
A real web console
Host status, paired devices, PIN pairing, GPU selection, display arrangement, performance graphs, and live logs — from any browser.
A couch-ready console UI
A gamepad-driven shell in every client — host list, pairing, settings, and an on-screen keyboard. No mouse required.
From the blog
PIN pairing that can't be brute-forced: SPAKE2 for game streaming
A 4-digit PIN sounds weak — only 10,000 combinations. Here's how punktfunk pairs a new device with a PIN you can type from the couch while giving an attacker just one online guess and no offline dictionary attack, using a PAKE that binds both devices' certificates.
