rustdesk/rustdesk

An open-source remote desktop application designed for self-hosting, as an alternative to TeamViewer.

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 44 minutes ago
Added to GitGenius on May 26th, 2026
Created on September 28th, 2020
Open Issues & Pull Requests: 145 (+1)
GitHub issues: Enabled
Number of forks: 18,903
Total Stargazers: 122,924 (+2)
Total Subscribers: 634 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 0.5 hours
Mean response time: 4.1 days
90th percentile: 13.0 hours
Tracked items: 1,232

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 87% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. 26% of tracked open issues have had no activity in three months. Only 13% of issues opened in the past year have been closed. Three people close 95% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 94
New in 7 days: 20
Closed in 7 days: 20
Avg open age: 508 days
Stale 30+ days: 68
Stale 90+ days: 42

Recent activity

Opened in 7 days: 17
Closed in 7 days: 13
Comments in 7 days: 21
Events in 7 days: 69

Top labels

  • bug (1,774)
  • duplicate (105)
  • invalid (99)
  • wontfix (75)
  • help wanted (39)
  • unreproducible (39)
  • enhancement (32)
  • good first issue (15)

Detailed Description

RustDesk is an open-source remote desktop application written in Rust that provides an alternative to commercial solutions like TeamViewer and AnyDesk. The project is designed for self-hosting, allowing users to maintain full control over their data and infrastructure without relying on third-party servers. The application works out of the box with minimal configuration required and supports multiple platforms including Windows, Linux, macOS, Android, and iOS through both desktop and mobile implementations.

The core architecture is built around several specialized libraries. The hbb_common library handles video codecs, configuration management, TCP/UDP networking, protocol buffers, and file transfer utilities. The scrap library manages screen capture functionality across platforms, while the enigo library provides platform-specific keyboard and mouse control. A dedicated clipboard library implements file copy and paste operations for Windows, Linux, and macOS. The server component manages audio, clipboard, input, and video services along with network connections, while the client initiates peer connections. The rendezvous mediator communicates with RustDesk servers to establish either direct TCP hole-punching connections or relayed connections when direct connection is not possible.

RustDesk supports multiple user interface implementations. The original Sciter-based UI is now deprecated, with development focused on Flutter for both desktop and mobile platforms. The Flutter implementation includes web client support through JavaScript integration. The application features a connection manager, file transfer capabilities, and TCP tunneling functionality as demonstrated in the project's screenshots.

The project demonstrates strong community engagement and active maintenance. The repository has attracted contributors who also work on major projects like Microsoft's VSCode and TypeScript, suggesting the codebase maintains professional quality standards.

Building RustDesk requires a Rust development environment and C++ build tools, with dependencies managed through vcpkg for libraries like libvpx, libyuv, opus, and aom. The project provides multiple build approaches including raw compilation steps, platform-specific instructions for Ubuntu, openSUSE, Fedora, and Arch Linux, and Docker-based building for containerized environments. The README is available in 26 languages, reflecting the project's international user base and community translation efforts.

Users can download binary releases or nightly builds directly from the GitHub releases page. The application is also available through distribution channels including F-Droid for Android and Flathub for Linux. The project welcomes contributions and provides documentation through its CONTRIBUTING.md file, along with an FAQ section addressing common questions. RustDesk offers flexibility in server infrastructure, allowing users to leverage the public rendezvous and relay servers, set up their own servers, or implement custom server solutions using the provided rustdesk-server-demo as a reference.