mirror of
https://github.com/rustdesk/rustdesk.git
synced 2025-10-15 19:31:54 +08:00
An open-source remote desktop application designed for self-hosting, as an alternative to TeamViewer.
https://rustdesk.com
androidanydeskdartflatpakflutterflutter-appsioslinuxmacosp2prdpremote-controlremote-desktoprustrust-langteamviewervncwaylandwindows
.github | ||
libs | ||
src | ||
.gitignore | ||
build.rs | ||
Cargo.lock | ||
Cargo.toml | ||
LICENSE | ||
oboe.cc | ||
README.md | ||
windows.cc |
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