A web-based RDP client built with Go WebAssembly and grdp

· web devtools · Source ↗

TLDR

  • grdpwasm runs RDP in the browser via a Go WASM binary and a lightweight WebSocket-to-TCP proxy, with no plugins required.

Key Takeaways

  • Architecture: browser runs a Go WASM binary; a Go proxy bridges WebSocket to TCP port 3389 on the RDP host.
  • The proxy is a local fork of grdp with one patch: a Dialer field on RdpClient that lets WASM inject a WebSocket net.Conn instead of raw TCP.
  • Build produces two artifacts: static/main.wasm (browser logic) and proxy/proxy (WebSocket+static file server); make serve starts everything on :8080.
  • Audio works via RDPSND streamed through Web Audio API at PCM 44100 Hz stereo 16-bit; keyboard input uses RDP scan codes forwarded from browser events.
  • Security gap: the proxy accepts any origin and transmits credentials in plaintext over WebSocket – requires TLS termination (nginx/Caddy) and network isolation before any non-local use.

Hacker News Comment Review

  • Clipboard is the dominant practical blocker: the browser Clipboard API requires user-gesture permission for writes and prompts on reads, so paste-out-of-RDP needs a click each time – a fundamental browser constraint, not a grdpwasm bug.
  • Commenters see a real gap in the open-source remote-desktop space following HP’s shutdown of Anyware/Teradici/PCoIP, and are tracking alternatives like RustDesk alongside this project for high-res multi-monitor workloads.
  • Alt-Tab key capture and SSO/session-recording support were flagged as the two missing features needed before this could serve as a proper RDP jumphost, comparable to Azure Bastion.

Notable Comments

  • @the_data_nerd: detailed breakdown of why clipboard paste-out requires a user click every time due to browser Clipboard API permission gating.
  • @notepad0x90: outlines the session-recording + SSO path that would make this a viable self-hosted RDP jumphost, citing Azure Bastion as the reference implementation.
  • @mcoliver: frames the market context – HP Anyware/Teradici shutdown leaves a gap; names RustDesk, Parsec, and DCV as the current open/paid landscape.

Original | Discuss on HN