The Wayback Machine - https://web.archive.org/web/20230208182707/https://github.com/rustdesk
Skip to content
Avatar

Sponsors

@skoky
@mokkin
@roukmoute
@REVENTOR-EU
@Reikooters
Private Sponsor
@muety
@shepard-b
@mihalycsaba
@PureWhiteWu
@liddqd
@MrKW
@Nuno69
Block or Report

Block or report rustdesk

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Add an optional note:
Please don't include any personal information such as legal names or email addresses. Maximum 100 characters. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
rustdesk/README.md

RustDesk - Dit fjernskrivebord
ServersBuildDockerStructureSnapshot
[Українська] | [česky] | [中文] | | [Magyar] | [Español] | [فارسی] | [Français] | [Deutsch] | [Polski] | [Indonesian] | [Suomi] | [മലയാളം] | [日本語] | [Nederlands] | [Italiano] | [Русский] | [Português (Brasil)] | [Esperanto] | [한국어] | [العربي] | [Tiếng Việt] | [Dansk]
We need your help to translate this README, RustDesk UI and Doc to your native language

Chat with us: Discord | Twitter | Reddit

ko-fi

Yet another remote desktop software, written in Rust. Works out of the box, no configuration required. You have full control of your data, with no concerns about security. You can use our rendezvous/relay server, set up your own, or write your own rendezvous/relay server.

image

RustDesk welcomes contribution from everyone. See docs/CONTRIBUTING.md for help getting started.

How does RustDesk work?

BINARY DOWNLOAD

NIGHTLY BUILD

Get it on F-Droid

Free Public Servers

Below are the servers you are using for free, they may change over time. If you are not close to one of these, your network may be slow.

Location Vendor Specification
Seoul AWS lightsail 1 vCPU / 0.5GB RAM
Germany Hetzner 2 vCPU / 4GB RAM
Germany Codext 4 vCPU / 8GB RAM
Finland (Helsinki) 0x101 Cyber Security 4 vCPU / 8GB RAM
USA (Ashburn) 0x101 Cyber Security 4 vCPU / 8GB RAM
Ukraine (Kyiv) dc.volia (2VM) 2 vCPU / 4GB RAM

Dependencies

Desktop versions use sciter or Flutter for GUI, this tutorial is for Sciter only.

Please download sciter dynamic library yourself.

Windows | Linux | MacOS

Raw steps 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/MacOS: vcpkg install libvpx libyuv opus
  • run cargo run

Build

How to build on Linux

Ubuntu 18 (Debian 10)

sudo apt install -y zip g++ gcc git curl wget nasm yasm libgtk-3-dev clang libxcb-randr0-dev libxdo-dev \
        libxfixes-dev libxcb-shape0-dev libxcb-xfixes0-dev libasound2-dev libpulse-dev cmake make \
        libclang-dev ninja-build libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev

openSUSE Tumbleweed

sudo zypper install gcc-c++ git curl wget nasm yasm gcc gtk3-devel clang libxcb-devel libXfixes-devel cmake alsa-lib-devel gstreamer-devel gstreamer-plugins-base-devel xdotool-devel

Fedora 28 (CentOS 8)

sudo yum -y install gcc-c++ git curl wget nasm yasm gcc gtk3-devel clang libxcb-devel libxdo-devel libXfixes-devel pulseaudio-libs-devel cmake alsa-lib-devel

Arch (Manjaro)

sudo pacman -Syu --needed unzip git cmake gcc curl wget yasm nasm zip make pkg-config clang gtk3 xdotool libxcb libxfixes alsa-lib pipewire

Install vcpkg

git clone https://github.com/microsoft/vcpkg
cd vcpkg
git checkout 2021.12.01
cd ..
vcpkg/bootstrap-vcpkg.sh
export VCPKG_ROOT=$HOME/vcpkg
vcpkg/vcpkg install libvpx libyuv opus

Fix libvpx (For Fedora)

cd vcpkg/buildtrees/libvpx/src
cd *
./configure
sed -i 's/CFLAGS+=-I/CFLAGS+=-fPIC -I/g' Makefile
sed -i 's/CXXFLAGS+=-I/CXXFLAGS+=-fPIC -I/g' Makefile
make
cp libvpx.a $HOME/vcpkg/installed/x64-linux/lib/
cd

Build

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env
git clone https://github.com/rustdesk/rustdesk
cd rustdesk
mkdir -p target/debug
wget https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.lnx/x64/libsciter-gtk.so
mv libsciter-gtk.so target/debug
VCPKG_ROOT=$HOME/vcpkg cargo run

Change Wayland to X11 (Xorg)

RustDesk does not support Wayland. Check this to configuring Xorg as the default GNOME session.

Wayland support

Wayland does not seem to provide any API for sending keypresses to other windows. Therefore, the rustdesk uses an API from a lower level, namely the /dev/uinput device (Linux kernel level).

When wayland is the controlled side, you have to start in the following way:

# Start uinput service
$ sudo rustdesk --service
$ rustdesk

Notice: Wayland screen recording uses different interfaces. RustDesk currently only supports org.freedesktop.portal.ScreenCast.

$ dbus-send --session --print-reply       \
  --dest=org.freedesktop.portal.Desktop \
  /org/freedesktop/portal/desktop       \
  org.freedesktop.DBus.Properties.Get   \
  string:org.freedesktop.portal.ScreenCast string:version
# Not support
Error org.freedesktop.DBus.Error.InvalidArgs: No such interface “org.freedesktop.portal.ScreenCast”
# Support
method return time=1662544486.931020 sender=:1.54 -> destination=:1.139 serial=257 reply_serial=2
   variant       uint32 4

How to build with Docker

Begin by cloning the repository and building the docker container:

git clone https://github.com/rustdesk/rustdesk
cd rustdesk
docker build -t "rustdesk-builder" .

Then, each time you need to build the application, run the following command:

docker run --rm -it -v $PWD:/home/user/rustdesk -v rustdesk-git-cache:/home/user/.cargo/git -v rustdesk-registry-cache:/home/user/.cargo/registry -e PUID="$(id -u)" -e PGID="$(id -g)" rustdesk-builder

Note that the first build may take longer before dependencies are cached, subsequent builds will be faster. Additionally, if you need to specify different arguments to the build command, you may do so at the end of the command in the <OPTIONAL-ARGS> position. For instance, if you wanted to build an optimized release version, you would run the command above followed by --release. The resulting executable will be available in the target folder on your system, and can be run with:

target/debug/rustdesk

Or, if you're running a release executable:

target/release/rustdesk

Please ensure that you are running these commands from the root of the RustDesk repository, otherwise the application might not be able to find the required resources. Also note that other cargo subcommands such as install or run are not currently supported via this method as they would install or run the program inside the container instead of the host.

File Structure

Snapshot

image

image

image

image

Pinned

  1. rustdesk Public

    Open source virtual / remote desktop infrastructure for everyone! The open source TeamViewer alternative. Display and control your PC and Android devices from anywhere at anytime.

    Rust 36.9k 3.3k

1,805 contributions in the last year

5 contributions on February 6, 2022 3 contributions on February 7, 2022 No contributions on February 8, 2022 1 contribution on February 9, 2022 3 contributions on February 10, 2022 No contributions on February 11, 2022 2 contributions on February 12, 2022 No contributions on February 13, 2022 3 contributions on February 14, 2022 8 contributions on February 15, 2022 3 contributions on February 16, 2022 3 contributions on February 17, 2022 2 contributions on February 18, 2022 1 contribution on February 19, 2022 3 contributions on February 20, 2022 3 contributions on February 21, 2022 1 contribution on February 22, 2022 No contributions on February 23, 2022 3 contributions on February 24, 2022 No contributions on February 25, 2022 No contributions on February 26, 2022 1 contribution on February 27, 2022 4 contributions on February 28, 2022 4 contributions on March 1, 2022 4 contributions on March 2, 2022 7 contributions on March 3, 2022 2 contributions on March 4, 2022 1 contribution on March 5, 2022 2 contributions on March 6, 2022 6 contributions on March 7, 2022 6 contributions on March 8, 2022 3 contributions on March 9, 2022 No contributions on March 10, 2022 1 contribution on March 11, 2022 1 contribution on March 12, 2022 3 contributions on March 13, 2022 2 contributions on March 14, 2022 6 contributions on March 15, 2022 7 contributions on March 16, 2022 2 contributions on March 17, 2022 3 contributions on March 18, 2022 4 contributions on March 19, 2022 3 contributions on March 20, 2022 3 contributions on March 21, 2022 5 contributions on March 22, 2022 6 contributions on March 23, 2022 8 contributions on March 24, 2022 5 contributions on March 25, 2022 4 contributions on March 26, 2022 1 contribution on March 27, 2022 6 contributions on March 28, 2022 No contributions on March 29, 2022 No contributions on March 30, 2022 2 contributions on March 31, 2022 No contributions on April 1, 2022 No contributions on April 2, 2022 No contributions on April 3, 2022 6 contributions on April 4, 2022 4 contributions on April 5, 2022 4 contributions on April 6, 2022 9 contributions on April 7, 2022 2 contributions on April 8, 2022 1 contribution on April 9, 2022 2 contributions on April 10, 2022 11 contributions on April 11, 2022 18 contributions on April 12, 2022 13 contributions on April 13, 2022 7 contributions on April 14, 2022 4 contributions on April 15, 2022 2 contributions on April 16, 2022 3 contributions on April 17, 2022 6 contributions on April 18, 2022 8 contributions on April 19, 2022 14 contributions on April 20, 2022 9 contributions on April 21, 2022 5 contributions on April 22, 2022 3 contributions on April 23, 2022 10 contributions on April 24, 2022 No contributions on April 25, 2022 5 contributions on April 26, 2022 2 contributions on April 27, 2022 5 contributions on April 28, 2022 5 contributions on April 29, 2022 3 contributions on April 30, 2022 2 contributions on May 1, 2022 7 contributions on May 2, 2022 3 contributions on May 3, 2022 2 contributions on May 4, 2022 2 contributions on May 5, 2022 3 contributions on May 6, 2022 1 contribution on May 7, 2022 2 contributions on May 8, 2022 8 contributions on May 9, 2022 2 contributions on May 10, 2022 1 contribution on May 11, 2022 31 contributions on May 12, 2022 15 contributions on May 13, 2022 11 contributions on May 14, 2022 5 contributions on May 15, 2022 8 contributions on May 16, 2022 7 contributions on May 17, 2022 14 contributions on May 18, 2022 3 contributions on May 19, 2022 13 contributions on May 20, 2022 1 contribution on May 21, 2022 16 contributions on May 22, 2022 3 contributions on May 23, 2022 1 contribution on May 24, 2022 10 contributions on May 25, 2022 13 contributions on May 26, 2022 5 contributions on May 27, 2022 1 contribution on May 28, 2022 10 contributions on May 29, 2022 6 contributions on May 30, 2022 7 contributions on May 31, 2022 3 contributions on June 1, 2022 15 contributions on June 2, 2022 8 contributions on June 3, 2022 1 contribution on June 4, 2022 2 contributions on June 5, 2022 4 contributions on June 6, 2022 6 contributions on June 7, 2022 5 contributions on June 8, 2022 7 contributions on June 9, 2022 8 contributions on June 10, 2022 2 contributions on June 11, 2022 5 contributions on June 12, 2022 9 contributions on June 13, 2022 3 contributions on June 14, 2022 4 contributions on June 15, 2022 1 contribution on June 16, 2022 2 contributions on June 17, 2022 1 contribution on June 18, 2022 2 contributions on June 19, 2022 3 contributions on June 20, 2022 2 contributions on June 21, 2022 2 contributions on June 22, 2022 8 contributions on June 23, 2022 3 contributions on June 24, 2022 1 contribution on June 25, 2022 1 contribution on June 26, 2022 7 contributions on June 27, 2022 1 contribution on June 28, 2022 2 contributions on June 29, 2022 3 contributions on June 30, 2022 8 contributions on July 1, 2022 1 contribution on July 2, 2022 1 contribution on July 3, 2022 5 contributions on July 4, 2022 1 contribution on July 5, 2022 5 contributions on July 6, 2022 No contributions on July 7, 2022 No contributions on July 8, 2022 1 contribution on July 9, 2022 3 contributions on July 10, 2022 1 contribution on July 11, 2022 5 contributions on July 12, 2022 3 contributions on July 13, 2022 7 contributions on July 14, 2022 3 contributions on July 15, 2022 No contributions on July 16, 2022 1 contribution on July 17, 2022 6 contributions on July 18, 2022 No contributions on July 19, 2022 2 contributions on July 20, 2022 14 contributions on July 21, 2022 9 contributions on July 22, 2022 No contributions on July 23, 2022 2 contributions on July 24, 2022 3 contributions on July 25, 2022 6 contributions on July 26, 2022 14 contributions on July 27, 2022 8 contributions on July 28, 2022 8 contributions on July 29, 2022 6 contributions on July 30, 2022 5 contributions on July 31, 2022 4 contributions on August 1, 2022 5 contributions on August 2, 2022 3 contributions on August 3, 2022 2 contributions on August 4, 2022 5 contributions on August 5, 2022 No contributions on August 6, 2022 No contributions on August 7, 2022 5 contributions on August 8, 2022 8 contributions on August 9, 2022 2 contributions on August 10, 2022 4 contributions on August 11, 2022 3 contributions on August 12, 2022 No contributions on August 13, 2022 2 contributions on August 14, 2022 4 contributions on August 15, 2022 3 contributions on August 16, 2022 5 contributions on August 17, 2022 3 contributions on August 18, 2022 3 contributions on August 19, 2022 1 contribution on August 20, 2022 No contributions on August 21, 2022 5 contributions on August 22, 2022 2 contributions on August 23, 2022 4 contributions on August 24, 2022 3 contributions on August 25, 2022 4 contributions on August 26, 2022 2 contributions on August 27, 2022 2 contributions on August 28, 2022 3 contributions on August 29, 2022 3 contributions on August 30, 2022 3 contributions on August 31, 2022 2 contributions on September 1, 2022 5 contributions on September 2, 2022 2 contributions on September 3, 2022 No contributions on September 4, 2022 4 contributions on September 5, 2022 1 contribution on September 6, 2022 3 contributions on September 7, 2022 6 contributions on September 8, 2022 1 contribution on September 9, 2022 No contributions on September 10, 2022 No contributions on September 11, 2022 8 contributions on September 12, 2022 10 contributions on September 13, 2022 2 contributions on September 14, 2022 6 contributions on September 15, 2022 17 contributions on September 16, 2022 11 contributions on September 17, 2022 17 contributions on September 18, 2022 10 contributions on September 19, 2022 4 contributions on September 20, 2022 5 contributions on September 21, 2022 6 contributions on September 22, 2022 10 contributions on September 23, 2022 1 contribution on September 24, 2022 2 contributions on September 25, 2022 1 contribution on September 26, 2022 13 contributions on September 27, 2022 3 contributions on September 28, 2022 5 contributions on September 29, 2022 No contributions on September 30, 2022 No contributions on October 1, 2022 4 contributions on October 2, 2022 No contributions on October 3, 2022 8 contributions on October 4, 2022 4 contributions on October 5, 2022 5 contributions on October 6, 2022 1 contribution on October 7, 2022 3 contributions on October 8, 2022 3 contributions on October 9, 2022 6 contributions on October 10, 2022 4 contributions on October 11, 2022 2 contributions on October 12, 2022 5 contributions on October 13, 2022 2 contributions on October 14, 2022 No contributions on October 15, 2022 No contributions on October 16, 2022 4 contributions on October 17, 2022 3 contributions on October 18, 2022 2 contributions on October 19, 2022 1 contribution on October 20, 2022 5 contributions on October 21, 2022 2 contributions on October 22, 2022 2 contributions on October 23, 2022 5 contributions on October 24, 2022 3 contributions on October 25, 2022 2 contributions on October 26, 2022 4 contributions on October 27, 2022 4 contributions on October 28, 2022 3 contributions on October 29, 2022 11 contributions on October 30, 2022 12 contributions on October 31, 2022 7 contributions on November 1, 2022 9 contributions on November 2, 2022 No contributions on November 3, 2022 6 contributions on November 4, 2022 7 contributions on November 5, 2022 1 contribution on November 6, 2022 3 contributions on November 7, 2022 10 contributions on November 8, 2022 6 contributions on November 9, 2022 2 contributions on November 10, 2022 4 contributions on November 11, 2022 1 contribution on November 12, 2022 6 contributions on November 13, 2022 3 contributions on November 14, 2022 6 contributions on November 15, 2022 12 contributions on November 16, 2022 9 contributions on November 17, 2022 13 contributions on November 18, 2022 4 contributions on November 19, 2022 4 contributions on November 20, 2022 8 contributions on November 21, 2022 7 contributions on November 22, 2022 10 contributions on November 23, 2022 3 contributions on November 24, 2022 8 contributions on November 25, 2022 9 contributions on November 26, 2022 6 contributions on November 27, 2022 4 contributions on November 28, 2022 10 contributions on November 29, 2022 4 contributions on November 30, 2022 7 contributions on December 1, 2022 3 contributions on December 2, 2022 1 contribution on December 3, 2022 9 contributions on December 4, 2022 6 contributions on December 5, 2022 5 contributions on December 6, 2022 3 contributions on December 7, 2022 9 contributions on December 8, 2022 10 contributions on December 9, 2022 6 contributions on December 10, 2022 2 contributions on December 11, 2022 4 contributions on December 12, 2022 4 contributions on December 13, 2022 8 contributions on December 14, 2022 4 contributions on December 15, 2022 2 contributions on December 16, 2022 4 contributions on December 17, 2022 5 contributions on December 18, 2022 2 contributions on December 19, 2022 1 contribution on December 20, 2022 14 contributions on December 21, 2022 5 contributions on December 22, 2022 1 contribution on December 23, 2022 4 contributions on December 24, 2022 2 contributions on December 25, 2022 13 contributions on December 26, 2022 8 contributions on December 27, 2022 3 contributions on December 28, 2022 19 contributions on December 29, 2022 5 contributions on December 30, 2022 4 contributions on December 31, 2022 No contributions on January 1, 2023 2 contributions on January 2, 2023 4 contributions on January 3, 2023 6 contributions on January 4, 2023 14 contributions on January 5, 2023 19 contributions on January 6, 2023 16 contributions on January 7, 2023 4 contributions on January 8, 2023 12 contributions on January 9, 2023 25 contributions on January 10, 2023 12 contributions on January 11, 2023 2 contributions on January 12, 2023 5 contributions on January 13, 2023 3 contributions on January 14, 2023 1 contribution on January 15, 2023 5 contributions on January 16, 2023 5 contributions on January 17, 2023 16 contributions on January 18, 2023 9 contributions on January 19, 2023 5 contributions on January 20, 2023 10 contributions on January 21, 2023 4 contributions on January 22, 2023 4 contributions on January 23, 2023 7 contributions on January 24, 2023 1 contribution on January 25, 2023 3 contributions on January 26, 2023 11 contributions on January 27, 2023 10 contributions on January 28, 2023 6 contributions on January 29, 2023 11 contributions on January 30, 2023 4 contributions on January 31, 2023 13 contributions on February 1, 2023 6 contributions on February 2, 2023 8 contributions on February 3, 2023 3 contributions on February 4, 2023 9 contributions on February 5, 2023 4 contributions on February 6, 2023 16 contributions on February 7, 2023 18 contributions on February 8, 2023 Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Jan Mon Wed Fri

Contribution activity

February 2023

Opened 1 pull request in 1 repository
rustdesk/rustdesk 1 closed
Reviewed 1 pull request in 1 repository
rustdesk/rustdesk 1 pull request
Opened 2 issues in 1 repository
Started 1 discussion in 1 repository
rustdesk/rustdesk

Seeing something unexpected? Take a look at the GitHub profile guide.