rustdesk/README.md

150 lines
7.7 KiB
Markdown
Raw Normal View History

2021-06-20 11:02:35 +03:00
<p align="center">
2021-06-22 19:44:10 +03:00
<img src="logo-header.svg" alt="RustDesk - Your remote desktop"><br>
2021-07-06 19:20:05 +03:00
<a href="#free-public-servers">Serwery</a>
<a href="#raw-steps-to-build">Kompilacja</a>
2021-06-21 07:19:13 +03:00
<a href="#how-to-build-with-docker">Docker</a>
2021-07-06 19:20:05 +03:00
<a href="#file-structure">Struktura</a>
2021-06-20 11:02:35 +03:00
<a href="#snapshot">Snapshot</a><br>
[<a href="README-ZH.md">中文</a>] | [<a href="README-ES.md">Español</a>] | [<a href="README-FR.md">Français</a>] | [<a href="README-DE.md">Deutsch</a>] | [<a href="README-JP.md">日本語</a>] | [<a href="README-RU.md">Русский</a>] | [<a href="README-PT.md">Português</a>]<br>
2021-07-06 19:20:05 +03:00
<b>Potrzebujemy twojej pomocy w tłumaczeniu README na twój ojczysty język</b>
2021-06-20 11:02:35 +03:00
</p>
2020-09-28 18:36:10 +03:00
2021-07-06 19:20:05 +03:00
Porozmawiaj z nami na: [Discord](https://discord.gg/nDceKgxnkV) | [Reddit](https://www.reddit.com/r/rustdesk)
2021-06-02 04:55:38 +03:00
2021-06-07 07:44:19 +03:00
[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/I2I04VU09)
2021-07-06 19:20:05 +03:00
Kolejny program do zdalnego pulpitu, napisany w Rust. Działa od samego początku, nie wymaga konfiguracji. Świetna alternatywa dla TeamViewera i AnyDesk! Masz pełną kontrolę nad swoimi danymi, bez obaw o bezpieczeństwo. Możesz skorzystać z naszego darmowego serwera publicznego , [skonfigurować własny](https://rustdesk.com/blog/id-relay-set/), lub [napisać własny serwer rendezvous/relay server](https://github.com/rustdesk/rustdesk-server-demo).
2020-09-28 18:36:10 +03:00
2021-07-06 19:20:05 +03:00
RustDesk zaprasza do współpracy każdego. Zobacz [`CONTRIBUTING.md`](CONTRIBUTING.md) pomoc w uruchomieniu programu.
2021-06-07 08:44:21 +03:00
2021-07-06 19:20:05 +03:00
[**POBIERZ KOMPILACJE**](https://github.com/rustdesk/rustdesk/releases)
2021-03-29 10:59:14 +03:00
2021-07-06 19:20:05 +03:00
## Darmowe Serwery Publiczne
Poniżej znajdują się serwery, z których można korzystać za darmo, może się to zmienić z upływem czasu. Jeśli nie znajdujesz się w pobliżu jednego z nich, Twoja prędkość połączenia może być niska.
| Lokalizacja | Dostawca | Specyfikacja |
2021-07-03 05:27:34 +03:00
| --------- | ------------- | ------------------ |
2021-07-06 19:20:05 +03:00
| Seul | AWS lightsail | 1 VCPU / 0.5GB RAM |
| Singapor | Vultr | 1 VCPU / 1GB RAM |
| Dallas | Vultr | 1 VCPU / 1GB RAM | |
2021-06-17 07:55:11 +03:00
2021-07-06 19:20:05 +03:00
## Zależności
2021-03-29 10:59:14 +03:00
2021-07-06 19:20:05 +03:00
Wersje desktopowe używają [sciter](https://sciter.com/) dla GUI, proszę pobrać bibliotekę dynamiczną sciter samodzielnie.
2021-03-29 10:59:14 +03:00
2021-06-10 15:41:00 +03:00
[Windows](https://github.com/c-smile/sciter-sdk/blob/dc65744b66389cd5a0ff6bdb7c63a8b7b05a708b/bin.win/x64/sciter.dll) |
[Linux](https://github.com/c-smile/sciter-sdk/raw/dc65744b66389cd5a0ff6bdb7c63a8b7b05a708b/bin.lnx/x64/libsciter-gtk.so) |
2021-06-21 18:32:07 +03:00
[MacOS](https://github.com/c-smile/sciter-sdk/raw/dc65744b66389cd5a0ff6bdb7c63a8b7b05a708b/bin.osx/sciter-osx-64.dylib)
2021-03-29 10:59:14 +03:00
2021-07-06 19:20:05 +03:00
## Podstawowe kroki do kompilacji.
* Przygotuj środowisko programistyczne Rust i środowisko programowania C++
2021-03-29 10:59:14 +03:00
2021-07-06 19:20:05 +03:00
* Zainstaluj [vcpkg](https://github.com/microsoft/vcpkg), i ustaw `VCPKG_ROOT` env zmienną prawidłowo
2021-03-29 10:59:14 +03:00
- Windows: vcpkg install libvpx:x64-windows-static libyuv:x64-windows-static opus:x64-windows-static
2021-06-21 18:32:07 +03:00
- Linux/MacOS: vcpkg install libvpx libyuv opus
2021-03-29 10:59:14 +03:00
2021-07-06 19:20:05 +03:00
* uruchom `cargo run`
2021-04-29 19:33:37 +03:00
2021-07-06 19:20:05 +03:00
## Jak Kompilować na Linuxie
2021-04-29 19:33:37 +03:00
2021-05-09 17:29:25 +03:00
### Ubuntu 18 (Debian 10)
2021-06-20 18:27:57 +03:00
```sh
2021-04-30 18:47:44 +03:00
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
2021-04-29 19:33:37 +03:00
```
2021-05-01 19:37:32 +03:00
### Fedora 28 (CentOS 8)
2021-06-20 18:27:57 +03:00
```sh
2021-05-01 10:57:58 +03:00
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
2021-04-29 19:33:37 +03:00
```
2021-05-01 10:57:58 +03:00
### Arch (Manjaro)
2021-06-20 18:27:57 +03:00
```sh
sudo pacman -Syu --needed unzip git cmake gcc curl wget yasm nasm zip make pkg-config clang gtk3 xdotool libxcb libxfixes alsa-lib pulseaudio
2021-05-01 10:57:58 +03:00
```
2021-07-06 19:20:05 +03:00
### Zainstaluj vcpkg
2021-06-20 18:27:57 +03:00
```sh
2021-04-29 19:33:37 +03:00
git clone https://github.com/microsoft/vcpkg --branch 2020.11-1
2021-04-29 06:49:30 +03:00
vcpkg/bootstrap-vcpkg.sh
export VCPKG_ROOT=$HOME/vcpkg
vcpkg/vcpkg install libvpx libyuv opus
2021-04-29 19:33:37 +03:00
```
### Fix libvpx (For Fedora)
2021-06-20 18:27:57 +03:00
```sh
2021-04-29 19:33:37 +03:00
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
```
2021-07-06 19:20:05 +03:00
### Kompilacja
2021-06-20 18:27:57 +03:00
```sh
2021-04-29 06:49:30 +03:00
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://github.com/c-smile/sciter-sdk/raw/dc65744b66389cd5a0ff6bdb7c63a8b7b05a708b/bin.lnx/x64/libsciter-gtk.so
mv libsciter-gtk.so target/debug
cargo run
```
2021-03-29 10:59:14 +03:00
2021-07-06 19:20:05 +03:00
## Jak kompilować za pomocą Dockera
2021-06-20 18:27:57 +03:00
2021-07-06 19:20:05 +03:00
Rozpocznij od sklonowania repozytorium i stworzenia kontenera docker:
2021-06-20 18:27:57 +03:00
```sh
git clone https://github.com/rustdesk/rustdesk
cd rustdesk
docker build -t "rustdesk-builder" .
```
2021-07-06 19:20:05 +03:00
Następnie, za każdym razem, gdy potrzebujesz skompilować aplikację, uruchom następujące polecenie:
2021-06-20 18:27:57 +03:00
```sh
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
```
2021-07-06 19:20:05 +03:00
Zauważ, że pierwsza kompilacja może potrwać dłużej zanim zależności zostaną zbuforowane, kolejne będą szybsze. Dodatkowo, jeśli potrzebujesz określić inne argumenty dla polecenia budowania, możesz to zrobić na końcu komendy w miejscu `<OPTIONAL-ARGS>`. Na przykład, jeśli chciałbyś zbudować zoptymalizowaną wersję wydania, uruchomiłbyś powyższą komendę a następnie `---release`. Powstały plik wykonywalny będzie dostępny w folderze docelowym w twoim systemie, i może być uruchomiony z:
2021-06-20 18:27:57 +03:00
```sh
target/debug/rustdesk
```
2021-07-06 19:20:05 +03:00
Lub, jeśli uruchamiasz plik wykonywalny wersji:
2021-06-20 18:27:57 +03:00
```sh
target/release/rustdesk
```
2021-07-06 19:20:05 +03:00
Upewnij się, że uruchamiasz te polecenia z katalogu głównego repozytorium RustDesk, w przeciwnym razie aplikacja może nie być w stanie znaleźć wymaganych zasobów. Należy również pamiętać, że inne podpolecenia ładowania, takie jak `install` lub `run` nie są obecnie obsługiwane za pomocą tej metody, ponieważ instalowałyby lub uruchamiały program wewnątrz kontenera zamiast na hoście.
2021-06-20 18:27:57 +03:00
2021-07-06 19:20:05 +03:00
### Zmień Wayland na X11 (Xorg)
RustDesk nie obsługuje Waylanda. Sprawdź [this](https://docs.fedoraproject.org/en-US/quick-docs/configuring-xorg-as-default-gnome-session/) by skonfigurować Xorg jako domyślną sesję GNOME.
2021-04-29 19:41:20 +03:00
2021-07-06 19:20:05 +03:00
## Struktura plików
2021-03-29 10:59:14 +03:00
2021-07-06 19:20:05 +03:00
- **[libs/hbb_common](https://github.com/rustdesk/rustdesk/tree/master/libs/hbb_common)**: kodek wideo, config, wrapper tcp/udp, protobuf, funkcje fs do transferu plików i kilka innych funkcji użytkowych
- **[libs/scrap](https://github.com/rustdesk/rustdesk/tree/master/libs/scrap)**: przechwytywanie ekranu
- **[libs/enigo](https://github.com/rustdesk/rustdesk/tree/master/libs/enigo)**: specyficzne dla danej platformy sterowanie klawiaturą/myszą
2021-03-29 10:59:14 +03:00
- **[src/ui](https://github.com/rustdesk/rustdesk/tree/master/src/ui)**: GUI
2021-07-06 19:20:05 +03:00
- **[src/server](https://github.com/rustdesk/rustdesk/tree/master/src/server)**: audio/schowek/wejście(input)/wideo oraz połączenia sieciowe
- **[src/client.rs](https://github.com/rustdesk/rustdesk/tree/master/src/client.rs)**: uruchamia połączenie peer
- **[src/rendezvous_mediator.rs](https://github.com/rustdesk/rustdesk/tree/master/src/rendezvous_mediator.rs)**: Komunikacja z [rustdesk-server](https://github.com/rustdesk/rustdesk-server), wait for remote direct (TCP hole punching) or relayed connection
- **[src/platform](https://github.com/rustdesk/rustdesk/tree/master/src/platform)**: specyficzny dla danej platformy kod
2021-03-31 11:07:34 +03:00
2021-07-06 19:20:05 +03:00
## Migawki(Snapshoty)
2021-03-31 11:16:30 +03:00
![image](https://user-images.githubusercontent.com/71636191/113112362-ae4deb80-923b-11eb-957d-ff88daad4f06.png)
2021-03-31 11:07:34 +03:00
2021-03-31 11:16:30 +03:00
![image](https://user-images.githubusercontent.com/71636191/113112619-f705a480-923b-11eb-911d-97e984ef52b6.png)
2021-03-31 11:07:34 +03:00
2021-03-31 11:16:30 +03:00
![image](https://user-images.githubusercontent.com/71636191/113112857-3fbd5d80-923c-11eb-9836-768325faf906.png)
![image](https://user-images.githubusercontent.com/71636191/113112990-65e2fd80-923c-11eb-840e-349b4d6e340d.png)