Nguồn: GitHub - nakagami/grdpwasm
Tóm tắt
grdpwasm là một RDP client chạy trên browser, được xây dựng bằng Go WebAssembly và thư viện grdp. Dự án giải quyết một giới hạn cơ bản của browser: không thể mở raw TCP socket để kết nối thẳng đến RDP server.
Kiến trúc gồm hai thành phần: (1) Go WASM binary chạy trong browser xử lý giao thức RDP, (2) một Go proxy server nhẹ làm cầu nối giữa WebSocket (browser) và TCP (RDP server). Flow: Browser (WASM) ──WebSocket──► proxy (Go) ──TCP──► RDP Server.
Build đơn giản qua make all, tạo ra ba artifact: static/main.wasm (Go WASM binary), wasm_exec.js (Go runtime JS support), và binary proxy server. Proxy server kiêm luôn việc serve static files, không cần web server riêng.
Dự án hỗ trợ đầy đủ keyboard (scan codes) và mouse (click, scroll), hoạt động trực tiếp trong canvas của browser. Đây là ví dụ thực tế về khả năng của Go WebAssembly cho network protocol implementation — thứ trước đây chỉ khả thi qua native plugins hoặc Electron.