mirror of
https://github.com/rustdesk/rustdesk.git
synced 2026-06-22 10:02:20 +00:00
An open-source remote desktop application designed for self-hosting, as an alternative to TeamViewer.
android
anydesk
dart
flatpak
flutter
flutter-apps
ios
linux
macos
p2p
rdp
remote-control
remote-desktop
rust
rust-lang
teamviewer
vnc
wayland
windows
- Rust 67.4%
- Dart 24.3%
- C++ 1.9%
- Python 1.6%
- C 1.4%
- Other 3.2%
| .github | ||
| libs | ||
| src | ||
| .gitignore | ||
| build.rs | ||
| Cargo.lock | ||
| Cargo.toml | ||
| LICENSE | ||
| README.md | ||
RustDesk | Your Remote Desktop Software
The best open source remote desktop software written with Rust.
Dependence
Desktop versions use sciter for GUI, please download sciter dynamic library yourself.
How To Build
-
Prepare your Rust development env and C++ build env
-
Install vcpkg, and set VCPKG_ROOT env variable correctly
- Windows: vcpkg install libvpx:x64-windows-static libyuv:x64-windows-static opus:x64-windows-static
- Linux/Osx: vcpkg install libvpx libyuv opus
-
cargo run
File Structure
- libs/hbb_common: video codec, config, tcp/udp wrapper, protobuf, fs functions for file transfer, and some other utility functions
- libs/scrap: screen capture
- libs/enigo: platform specific keyboard/mouse control
- src/ui: GUI
- src/server: audio/clipboard/input/video services, and network connections
- src/client.rs: start a peer connection
- src/rendezvous_mediator.rs: Communicate with rustdesk-server, wait for remote direct (TCP hole punching) or relayed connection
- src/platform: platform specific code