8.0 KiB
Servidores •
Compilar •
Docker •
Estrutura •
Screenshots
[中文] | [Español] | [Français] | [Deutsch] | [Polski] | [Suomi] | [മലയാളം] | [日本語] | [Nederlands] | [Italiano] | [Русский] | [Português (Brasil)] | [Esperanto] | [한국어]
Precisamos de sua ajuda para traduzir este README e a UI do RustDesk para sua língua nativa
Converse conosco: Discord | Reddit
Mais um software de desktop remoto, escrito em Rust. Funciona por padrão, sem necessidade de configuração. Você tem completo controle de seus dados, sem se preocupar com segurança. Você pode usar nossos servidores de rendezvous/relay, configurar seu próprio, ou escrever seu próprio servidor de rendezvous/relay.
RustDesk acolhe contribuições de todos. Leia CONTRIBUTING.md
para ver como começar.
Servidores Públicos Grátis
Abaixo estão os servidores que você está utilizando de graça, ele pode mudar com o tempo. Se você não está próximo de algum deles, sua conexão pode ser lenta.
Localização | Fornecedor | Especificações |
---|---|---|
Seul | AWS lightsail | 1 VCPU / 0.5GB RAM |
Singapura | Vultr | 1 VCPU / 1GB RAM |
Dallas | Vultr | 1 VCPU / 1GB RAM |
Dependências
Versões de desktop utilizam sciter para a GUI, por favor baixe a biblioteca dinâmica sciter por conta própria.
Compilação crua
-
Prepare seu ambiente de desenvolvimento Rust e ambiente de compilação C++
-
Instale vcpkg, e configure a variável de ambiente
VCPKG_ROOT
corretamente- Windows: vcpkg install libvpx:x64-windows-static libyuv:x64-windows-static opus:x64-windows-static
- Linux/MacOS: vcpkg install libvpx libyuv opus
-
Execute
cargo run
Como compilar no Linux
Ubuntu 18 (Debian 10)
sudo apt install -y 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
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 pulseaudio
Instale 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
Conserte libvpx (Para o 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
Compile
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
Mude Wayland para X11 (Xorg)
RustDesk não suporta Wayland. Veja esse link para configurar o Xorg como a sessão padrão do GNOME.
Como compilar com Docker
Comece clonando o repositório e montando o container docker:
git clone https://github.com/rustdesk/rustdesk
cd rustdesk
docker build -t "rustdesk-builder" .
Então, sempre que precisar compilar a aplicação, execute este comando:
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 que a primeira compilação pode demorar mais antes que as dependências sejam armazenadas em cache, as compilações subsequentes serão mais rápidas. Adicionalmente, se você precisar especificar argumentos diferentes para o comando de compilação, você pode fazê-lo ao final do comando na posição do <OPTIONAL-ARGS>
. Por exemplo, se você gostaria de compilar uma versão de release otimizada, você executaria o comando acima seguido de --release
. O executável gerado estará disponível no diretório alvo no seu sistema, e pode ser executado com:
target/debug/rustdesk
Ou, se estiver rodando um executável de release:
target/release/rustdesk
Por favor verifique que está executando estes comandos da raiz do repositório do RustDesk, senão a aplicação pode não encontrar os recursos necessários. Note também que outros subcomandos do cargo como install
ou run
não são suportados atualmente via este método, já que eles iriam instalar ou rodar o programa dentro do container ao invés do host.
Estrutura de arquivos
- libs/hbb_common: codec de vídeo, configurações, wrapper de tcp/udp, protobuf, funções de sistema de arquivos para transferência de arquivos, e outras funções utilitárias
- libs/scrap: captura de tela
- libs/enigo: controle de teclado/mouse específico a cada plataforma
- src/ui: GUI
- src/server: serviços de áudio/área de transferência/entrada/vídeo, e conexões de rede
- src/client.rs: iniciar uma conexão "peer to peer"
- src/rendezvous_mediator.rs: Comunicação com rustdesk-server, aguardar pela conexão remota direta (TCP hole punching) ou conexão indireta (relayed)
- src/platform: código específico a cada plataforma