Giter Site home page Giter Site logo

rustdesk / rustdesk Goto Github PK

View Code? Open in Web Editor NEW
62.8K 441.0 6.8K 43.33 MB

An open-source remote desktop, and alternative to TeamViewer.

Home Page: https://rustdesk.com

License: GNU Affero General Public License v3.0

Rust 64.06% C++ 1.81% Shell 0.26% HTML 0.16% CSS 0.50% C 2.01% Dockerfile 0.05% NSIS 0.12% AppleScript 0.02% Objective-C 0.01% Python 1.24% Kotlin 1.12% Ruby 0.05% Swift 0.10% Dart 25.45% JavaScript 0.53% TypeScript 0.68% CMake 0.69% Objective-C++ 0.15% Rich Text Format 1.00%
remote-control remote-desktop teamviewer anydesk vnc rdp rust p2p flutter flutter-apps

rustdesk's Introduction

RustDesk - Your remote desktop
ServersBuildDockerStructureSnapshot
[Українська] | [česky] | [中文] | [Magyar] | [Español] | [فارسی] | [Français] | [Deutsch] | [Polski] | [Indonesian] | [Suomi] | [മലയാളം] | [日本語] | [Nederlands] | [Italiano] | [Русский] | [Português (Brasil)] | [Esperanto] | [한국어] | [العربي] | [Tiếng Việt] | [Dansk] | [Ελληνικά] | [Türkçe]
We need your help to translate this README, RustDesk UI and RustDesk 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 CONTRIBUTING.md for help getting started.

FAQ

BINARY DOWNLOAD

NIGHTLY BUILD

Get it on F-Droid

Dependencies

Desktop versions use Flutter or Sciter (deprecated) for GUI, this tutorial is for Sciter only, since it is easier and more friendly to start. Check out our CI for building Flutter version.

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 aom:x64-windows-static
    • Linux/macOS: vcpkg install libvpx libyuv opus aom
  • run cargo run

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 2023.04.15
cd ..
vcpkg/bootstrap-vcpkg.sh
export VCPKG_ROOT=$HOME/vcpkg
vcpkg/vcpkg install libvpx libyuv opus aom

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

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

Screenshots

Connection Manager

Connected to a Windows PC

File Transfer

TCP Tunneling

rustdesk's People

Contributors

21pages avatar basilgello avatar bestiapl avatar botanicvelious avatar bovirus avatar cacing69 avatar chiehw avatar clslaid avatar dignow avatar fastact avatar flusheddata avatar fufesou avatar grummbeer avatar heap-hop avatar jimmygalland avatar jsoref avatar jxdv avatar kingtous avatar kleofass avatar mcfans avatar mehdi-song avatar mr-update avatar nickoehler avatar open-trade avatar rustdesk avatar sahilyeole avatar sj6219 avatar solokot avatar tsarmis avatar xalt7x avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rustdesk's Issues

Request: standalone binaries in .tar.gz format for releases

I'm trying to build rustdesk on Gentoo. My rust-fu is weak, so I don't really understand the message that is coming back or how to resolve it (well, I kinda understand it, but I don't know how to resolve it):

warning: build failed, waiting for other jobs to finish...
error[E0277]: the trait bound `std::vec::Vec<u8>: std::convert::From<[u8; 32]>` is not satisfied
   --> libs/hbb_common/src/config.rs:485:52

(this is from the 1.1.5 tag, after cloning the repo locally)

However, for now, I'd just like to try out rustdesk between my windows and linux machines; you provide great packages for a few distros, and I'd like to ask if it would be possible to provide a vanilla .tar.gz of the binaries that I could unpack on my system to give rustdesk a go?

Ideally, I'd like to build from source, but before I chase this much further, I'd like to see if rustdesk gives me what I'm looking for: a viable alternative to anydesk

Thanks for your time.

Failed to build on Manjaro 21.0.1

A library maintained by the author failed to build with:

error: failed to run custom build command for `magnum-opus v0.3.4 (/xxx/rustdesk/libs/magnum-opus)`

Caused by:
  process didn't exit successfully: `/xxx/rustdesk/target/debug/build/magnum-opus-5d2f2df5f87fcc5d/build-script-build` (exit code: 101)
  --- stderr
  thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: NotPresent', libs/magnum-opus/build.rs:7:50
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...
error: build failed

I'm new to Rust and is looking for a word of inspiration; you don't need to tell me everything, just a place to start is enough for me. I guess this is easy, so don't feel upset for this newbie question.

how to build windows exe?

I run ,cargo build --release ,and run the grenerated rustdesk.exe ,only get the blank screen with console.
image

[Feature Request] Is it possible to add support for ARMv7 processors for Android version?

I failed to install RustDesk for Android on an old device. After some research I found that RustDesk‘s native-code is arm64-v8a but my old device is with an ARMv7 processor.
我无法在一台旧设备上安装 RustDesk 安卓版。经过调查发现 RustDesk 的 native-code 编译为 arm64-v8a,而那台旧设备的处理器为 ARMv7 处理器。

PS > aapt.exe dump badging rustdesk-1.1.1.apk
...
native-code: 'arm64-v8a'

Could you consider adding support for ARMv7?
请问能否考虑增加对 ARMv7 的支持?

Can not show windows UAC modal

when you uninstall an application which was install in C:\Program Files , the windows will open a modal to notify you for the administrator permission, but rustdesk can not show that modal.

Unable to unlock

If the remote computer is locked, cannot enter the password via keyboard and cannot be unlocked, both computers are win10

Security concerns have been taken to Github

I am writing because it seems that security related questions have been intentionally deleted time and time again by the anonymous rustdesk author.

Also I've heard that the security concerns have been taken to Github to look into this behaviour because it was suggested that parts of Rustdesk might be intentionally malicious.

So I would hereby like to ask the author, please state why you would do this. Apps as powerful as rustdesk must hold up to these kind of scrutiny.

Therefore I want to know in the name the community what's going on here.

RustDesk.exe not found under C:\Program Files

I used Win10 LTSC 1809 to install. No error was reported during the install process. After that, RustDesk.exe was not generated in C:\Program Files, only the shortcut to the start menu. I really like this software and hope to fix it. ,thank!

Wayland support

I wanted to try out this application, as it seems very promising, however as I understand it doesn't currently support wayland. What would be needed for wayland support? Screen capture support, GUI, or something else?

Source Code Build

Is it difficult to configure the environment for this source code build? After reading half a day did not understand how to build this build environment, and asked for a slightly more detailed tutorial steps.

Background requests each hour even when service disabled

I've installed the .deb package few days ago and was going through DNS logs today when I noticed a lot of requests from rustdesk app even though I've not opened that and have rebooted system few times. It's like a few requests every hour. Can you tell if it's necessary?
image

Really bad english wording about security

In the website[1] and on the readme you use the phrase "no concern of security". In this context it means you have not considered or cared about security in creating this software. I think what you meant to write is "no concerns about security" which suggests you don't need to worry about security using this product.

  1. https://rustdesk.com/

GLIBC_2.29 not found

rustdesk: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found
os: debian 10

建议打包不要采用glibc包过新!

Keyboard layouts and shortcuts

Please add the keyboard layout sync, so the remote pc layout matches the host.
(Currently if remote keyboard layout doesn't match you'll end up typing in both layouts at the same time like ttyyppiinngg)

Also please add the ability to use the keyboard shortcuts between host and remote pc (win/super shortcuts also don't work).

Android support

This app in android will be enough for many to shift from anydesk.

Can't Generate ID With `Please Check Your Connection` Message

I'm trying to run RustDesk for my PC on campus. Zoho and AnyDesk got no problem setup connection, but RustDesk seems can't make connection.

The message are:

Not ready. Please check your connection

Screenshot

For your information:
My campus block certain port, thus for GitHub adn GitLab we use Port 443 to bypass the blocked port.

Selecting text on android

I is difficult to work with text without selecting it .
Here is how it works on AnyDesk VS current version of RustDesk.

IMG_20210512_230412_693.mp4

Feature request : Centos RPM support

Hi,

first of all thank you for your great job, finally a great simple product to kill teamviewer and respect privacy :).

I'm really not goot with compilation, and does not know rust :(.

Do you plan to compile RPM For Centos 7/8 ?

thank you

Ubuntu installation failed

rustdesk: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.27' not found (required by rustdesk)
rustdesk: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.25' not found (required by rustdesk)

can't get rustdesk-server-demo work

  1. first run serverdemo
    IP=192.168.2.231 cargo run

2.set ID/Relay address on client
connect to another pc

the server log output

register_peer 192.168.2.3:53374
punch_hole_request 192.168.2.3:49650
relay_response 192.168.2.231:46299
block here

client throw exception Connection Error , Failed to connect to relay server

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.