RustDesk ve Synchro Detaylı Karşılaştırma

RustDesk ve Synchro — Detaylı Teknik Karşılaştırma

Not: Bu proje rustdesk/rustdesk'in bir forku veya klonu değildir; teknoloji ve mimari tercihler bakımından tamamen bağımsız bir implementasyondur.


1. Genel Mimari

ÖzellikRustDesk (rustdesk/rustdesk)SynchroDetaylı Etki
Programlama diliC++ + Rust hibrit yığın; Flutter (Dart) UI; Protobuf IDL%100 saf Rust (3.084 satır) + JS relay (324 satır)Tek dilde geliştirme, hata ayıklama ve bellek güvenliği. Cargo ekosistemi ile bağımlılık yönetimi
Proje kimliğiOrijinal açık kaynak projesi, 75K+ GitHub yıldızBağımsız implementasyon (onder-ozturk/rustdesk-remote)İsim benzerliği nedeniyle dokümantasyonda net ayrım şart
Kaynak kodu boyutu~500K+ LOC (tüm bileşenler)~3.400 LOC (Rust + JS)Minimal kod tabanı, hızlı anlaşılır, kolay bakım
Workspace yapısıÇok modüllü Cargo workspace + Flutter projesi2 crate workspace: shared/ (protokol) + app/ (uygulama)Yalın bağımlılık grafiği, hızlı derleme
Relay sunucusuKendi rustdesk-server (Rust binary, VPS gerekli)Cloudflare Worker + Durable Objects (serverless)Sıfır sunucu yönetimi, otomatik global dağıtım
DashboardWeb konsol + API sunucusuStatik HTML + Vercel (tek index.html)Minimum altyapı, anında deploy

2. İletişim Protokolü

ÖzellikRustDeskSynchroDetaylı Etki
TransportTCP/UDP + kendi NAT traversal (hole punching, TURN)WebSocket (WSS) üzerinden Cloudflare relayFirewall/proxy dostu; NAT traversal sorunu yok (relay çözer)
Mesaj formatıProtobuf binary serializasyonJSON (kontrol) + Custom Binary (frame)JSON: kolay debug; Binary frame: düşük overhead
Frame wire formatProtobuf sarılı VP8/VP9/AV1 codec çıktısıRD1F magic + 30-byte header + zlib-compressed RGBCodec bağımsız; sıkıştırma seviyesi ortam değişkeniyle ayarlanır
Frame headerCodec-specific metadatamagic(4) + ver(1) + w(4) + h(4) + ts(8) + seq(8) + delta(1) + len(4) = 30 byteSabit boyut header, hızlı decode
Kontrol mesajları50+ Protobuf mesaj tipi12 PeerMessage türü: Hello, Authenticate, AuthResult, Frame, MouseMove, MouseButton, MouseScroll, KeyEvent, TextInput, Clipboard, Ping/Pong, DisconnectMinimal mesaj seti, kolay genişletilebilir
Relay mesajlarıKendi sunucu protokolü6 RelayMessage türü: Registered, Connected, PeerConnected, PeerDisconnected, Error, ReplacedTam oturum yaşam döngüsü

3. Relay Sunucu Mimarisi

ÖzellikRustDeskSynchroDetaylı Etki
Sunucu tipihbbs (ID/rendezvous) + hbbr (relay) — 2 ayrı binaryTek Cloudflare Worker + Durable Objects (RelayRoom sınıfı)Tek deployment, sıfır operasyon
Oturum yönetimiSunucu belleğinde statefulHer room bir Durable Object instance'ı (server + client WebSocket çifti)Otomatik isolasyon, room başına state
ID sistemiSunucudan alınan benzersiz ID9 haneli rastgele sayısal ID (100000000–999999999)AnyDesk tarzı kolay paylaşılır ID
ÖlçeklemeDikey ölçekleme (VPS kapasitesi)Yatay ölçekleme (Cloudflare edge network, 300+ PoP)Global düşük gecikme, otomatik ölçek
MaliyetVPS kiralama (aylık $5-50+)Cloudflare Workers Free tier (100K istek/gün) veya $5/ay unlimitedDüşük giriş maliyeti
API endpoint'leriKendi protokolü4 REST/WS endpoint: /api/register, /api/connect, /api/status, /api/checkHTTP uyumlu, kolay entegrasyon
İstatistikSunucu loglarıRoom başına bytes_relayed, uptime_seconds, server/client_connectedGerçek zamanlı oturum izleme

4. Ekran Yakalama ve Frame Pipeline

ÖzellikRustDeskSynchroDetaylı Etki
Yakalama kütüphanesiPlatform-specific C++ (DXGI/CGDisplay/X11)Rust scrap crate (cross-platform)Tek API, 3 platform desteği
Pixel formatıPlatform bağımlı → codec inputBGRA → RGB dönüşümü (stride-aware)compute_stride() ile IOSurface/128-byte alignment desteği
HiDPI desteğiNative çözünürlük + codec adaptasyonudetect_physical_resolution() — 1x/2x/3x otomatik algılamaRetina ekranlarda doğru piksel çözünürlüğü
CodecVP8/VP9/AV1/H264/H265 hardware acceleratedZlib sıkıştırma (seviye ayarlanabilir: fast/default/best/0-9)Düşük CPU yükü, codec bağımlılığı yok
DownscaleCodec içi çözünürlük adaptasyonu2 filtre: Nearest (Linux/Windows) + Average/Box (macOS); hedef 1280x720Configurable: SYNCHRO_TARGET_WIDTH/HEIGHT, SYNCHRO_DOWNSCALE_FILTER
BackpressureCodec rate controlLatest-frame-only channel (watch) + sequence-based drop detectionKuyruk birikimi engellenir, her zaman son frame iletilir
Sıkıştırma kontrolüCodec bitrateOrtam değişkenleri: SYNCHRO_COMPRESSION, SYNCHRO_QUALITY_FIRSTRuntime ayarlanabilir kalite-performans dengesi

5. Input Simülasyonu (3 Platform)

ÖzellikRustDeskSynchroDetaylı Etki
MimariPlatform-specific C++ modülleriChannel-based InputHandler → ayrı OS thread'inde native APIThread-safe, non-blocking input gönderimi
LinuxKendi X11/Wayland implementasyonuX11 XTest (XTestFakeKeyEvent/ButtonEvent) + XWarpPointer; fallback: xdotoolNative performans, xdotool güvenlik ağı
WindowsWin32 API (C++)Win32 SendInput API (INPUT_MOUSE/INPUT_KEYBOARD); SetCursorPosDoğrudan OS API, minimum overhead
macOSAccessibility API (C++/ObjC)CoreGraphics native: CGEvent (mouse/key/scroll) + CGEventKeyboardSetUnicodeString FFIAccessibility izni gerekli, native performans
Mouse desteğiTam (move, click, scroll, drag)Move + Click (L/M/R) + Scroll (vertical+horizontal)3 buton + 2 eksen scroll desteği
Keyboard mappingDoğrudan platform scancodeJavaScript keyCode → Platform keycode tablolar: Linux (X11 keysym, ~40 mapping), Windows (VK, ~45 mapping), macOS (CGKeyCode, ~60 mapping)Kapsamlı tuş eşleştirmesi
Unicode text inputCodec-specific IME entegrasyonuTextInput protokol mesajı: macOS=CGEventKeyboardSetUnicodeString, Linux=xdotool type, Windows=KEYEVENTF_UNICODETürkçe (ğüşçöı), Arapça, CJK vb. tam Unicode desteği
Modifier tuşlarıPlatform-specificCtrl/Shift/Alt/Meta — her platformda doğru eşleştirme (VK_CONTROL, Control_L, KeyCode::CONTROL)Kısayol tuşları tam çalışır

6. GUI ve Kullanıcı Arayüzü

ÖzellikRustDeskSynchroDetaylı Etki
UI frameworkFlutter (Dart) — çok platformlu zengin widgetegui/eframe v0.29 (Rust immediate-mode GUI)Tek dil, native derleme, düşük bellek
Ekran sayısı10+ farklı ekran/dialog2 ekran: Home (Host+Connect) + RemoteViewMinimal UX, hızlı kullanım
Uzak ekran renderFlutter canvas + codec decoderegui TextureHandle + zlib decode → RGB → ColorImageGPU hızlandırmalı texture render
Frame istatistikleriDetaylı codec/network statsLatency (ms), frame seq#, drop count — ekranda canlı gösterimGerçek zamanlı performans takibi
ÖlçeklemeCodec-level adaptivePencere boyutuna göre otomatik frame scale-upFluid görüntü, her pencere boyutunda çalışır
Input handlingFlutter event → platform channelegui Event::Key + Event::Text + PointerButton + MouseWheelÇift giriş koruması (Key/Text ayırımı)

7. Güvenlik

ÖzellikRustDeskSynchroDetaylı Etki
Kimlik doğrulamaŞifre + anahtar çifti + 2FA opsiyonelŞifre tabanlı: Host şifre belirler, viewer şifre girer (AuthenticateAuthResult)Basit ama etkili; Hello→Auth→AuthResult el sıkışma
Transport şifrelemeKendi TLS + ek şifreleme katmanıWSS (TLS) — Cloudflare edge SSLEndüstri standardı TLS, sertifika yönetimi Cloudflare'da
Saldırı yüzeyiGeniş (çok modül, çok protokol)Dar (~3.400 LOC): 12 mesaj tipi, 4 API endpointMinimal kod = minimal saldırı yüzeyi
Client izolasyonuSunucu-bazlıDurable Object: her room izole instanceOturum sızıntısı riski minimal

8. Build ve Dağıtım

ÖzellikRustDeskSynchroDetaylı Etki
CI/CDGitHub Actions + çoklu pipelineGitHub Actions: tag push → 4 platform matrix build → auto releaseTek workflow dosyası (115 satır)
Hedef platformlarWindows, macOS, Linux, Android, iOS, Web4 platform: Linux x86_64, Windows x86_64, macOS x86_64, macOS ARM64Masaüstü odaklı, mobil desteği yok (henüz)
Binary dağıtımInstaller + çoklu binaryTek binary (synchro) — derle ve çalıştırSıfır bağımlılık kurulumu
Derleme süresiUzun (C++/Flutter/Rust karışımı)cargo build --release — tek komutCache ile hızlı incremental build
Bağımlılık sayısı100+ (tüm bileşenler)12 doğrudan Rust bağımlılığı: tokio, tokio-tungstenite, eframe, egui, scrap, flate2, serde, serde_json, anyhow, tracing, url, hostname + platform-specific (x11, windows, core-graphics)Minimal bağımlılık ağacı
Sürüm geçmişiSemantic versioning, yüzlerce sürümv1.0.0 → v1.0.37 (38 sürüm, 29 başarılı, 9 başarısız)Hızlı iterasyon, detaylı changelog (made.md)

9. Özellik Kapsamı Karşılaştırması

ÖzellikRustDeskSynchro
Ekran paylaşımı / uzak görüntülemeVARVAR
Uzak fare kontrolü (move/click/scroll)VARVAR
Uzak klavye kontrolüVARVAR
Unicode / çok dilli text inputVARVAR (v1.0.36+)
Şifre tabanlı kimlik doğrulamaVARVAR
Ping/Pong gecikme ölçümüVARVAR
HiDPI / Retina desteğiVARVAR (otomatik algılama)
Clipboard paylaşımıVARKISMI (protokolde var, UI bekleniyor)
Dosya transferiVARYOK
Ses iletimiVARYOK
Çoklu monitör seçimiVARYOK
Mobil istemci (Android/iOS)VARYOK
Web istemciVARYOK
Chat / mesajlaşmaVARYOK
Adres defteriVARYOK
Unattended erişimVARYOK
Grup yönetimiVARYOK
2FAVARYOK

10. Kod Yapısı Özeti

synchro-remote/
├── shared/                          # Paylaşılan kütüphane (47+234 = 281 LOC)
│   └── src/
│       ├── lib.rs                   # Modül export
│       └── protocol.rs              # PeerMessage (12), RelayMessage (6), BinaryFrame, KeyModifiers
├── app/                             # Ana uygulama (2.807 LOC)
│   └── src/
│       ├── main.rs                  # Entry point (28 LOC)
│       ├── gui.rs                   # egui UI — Home + RemoteView (789 LOC)
│       ├── host.rs                  # Host modu — capture + relay (517 LOC)
│       ├── viewer.rs                # Viewer modu — connect + render (328 LOC)
│       ├── capture.rs               # Ekran yakalama + stride + downscale (396 LOC)
│       └── input.rs                 # 3 platform input simülasyonu (745 LOC)
├── relay/                           # Cloudflare Worker relay (324 LOC JS)
│   ├── src/index.js                 # Worker + RelayRoom Durable Object
│   └── wrangler.toml                # Cloudflare konfigürasyon
├── dashboard/                       # İndirme sayfası (Vercel)
│   └── public/index.html            # Statik HTML
└── .github/workflows/release.yml    # CI/CD (115 LOC)

Toplam: ~3.400 LOC (Rust) + 324 LOC (JS) = ~3.724 LOC


11. Benchmark Puanlama Tablosu

Puanlama: 1 (en dusuk) — 10 (en yuksek). Her kategori projenin kendi hedef kitlesine gore degerlendirilmistir.

#KategoriAlt KriterRustDeskSynchroAciklama
1Kurulum KolayligiSunucu kurulumu49RD: VPS+hbbs+hbbr kurulumu gerekir; Synchro: Cloudflare Worker deploy, 5 dk
2Client kurulumu79RD: installer/paket; Synchro: tek binary indir-calistir
3Ilk baglanti suresi79RD: ID server kaydi + NAT traversal; Synchro: WebSocket aninda baglanir
4Kod KalitesiKod boyutu (kucuk=iyi)410RD: ~500K LOC; Synchro: ~3.700 LOC
5Tek dil tutarliligi510RD: C++/Rust/Dart/Protobuf karisimi; Synchro: %100 Rust + minimal JS
6Bagimllik sayisi (az=iyi)49RD: 100+ bagimllik; Synchro: 12 dogrudan Rust bagimliligi
7Kod okunabilirligi69Synchro: kucuk kod tabani, Turkce yorumlar, net modul yapisi
8PerformansVideo codec kalitesi105RD: VP9/AV1/H265 HW hizlandirmali; Synchro: zlib-compressed RGB
9Frame latency78Synchro: latest-frame-only channel, sira tabanli drop; RD: codec buffer gecikmesi
10CPU kullanimi (dusuk=iyi)68Synchro: codec yok, zlib hafif; RD: codec encode/decode yogun
11Bant genisligi verimi95RD: video codec 10-50x sikistirma; Synchro: zlib RGB ~3-5x sikistirma
12HiDPI / Retina88Her ikisi de destekler; Synchro otomatik 1x/2x/3x algilama
13Platform DestegiMasaustu (Win/Mac/Linux)1010Her ikisi de 3 masaustu platformu destekler
14Mobil (Android/iOS)100RD: tam mobil destek; Synchro: mobil yok
15Web istemci80RD: web client mevcut; Synchro: yok
16macOS ARM64 (Apple Silicon)1010Her ikisi de native ARM64 binary
17Ozellik ZenginligiEkran paylasimi1010Temel ozellik, her ikisinde tam
18Fare kontrolu109RD: drag destegi; Synchro: move/click/scroll (3 buton + 2 eksen)
19Klavye kontrolu109Her ikisi tam; Synchro: ~145 keycode mapping
20Unicode text input99RD: IME; Synchro: CGEventKeyboardSetUnicodeString/KEYEVENTF_UNICODE/xdotool
21Dosya transferi100RD: tam; Synchro: yok
22Ses iletimi90RD: tam; Synchro: yok
23Clipboard103RD: tam; Synchro: protokolde var, UI baglantisi bekleniyor
24Chat / mesajlasma80RD: var; Synchro: yok
25Coklu monitor90RD: monitor secimi; Synchro: sadece birincil ekran
26Adres defteri80RD: var; Synchro: yok
27Unattended erisim90RD: var; Synchro: yok
28GuvenlikKimlik dogrulama96RD: sifre+anahtar+2FA; Synchro: sadece sifre
29Transport sifreleme88RD: kendi TLS+ek katman; Synchro: WSS (Cloudflare TLS)
30Saldiri yuzeyi (dar=iyi)59RD: genis yuzey (cok modul); Synchro: ~3.700 LOC, 12 mesaj tipi
31Client izolasyonu79Synchro: Durable Object izole instance; RD: sunucu bazli
32Sunucu AltyapisiKurulum maliyeti (dusuk=iyi)510RD: VPS $5-50+/ay; Synchro: CF Workers free tier veya $5/ay
33Global gecikme (dusuk=iyi)69Synchro: Cloudflare 300+ PoP; RD: tek VPS lokasyonu
34Otomatik olcekleme59Synchro: serverless otomatik; RD: manuel VPS olcekleme
35Operasyon yukuu (dusuk=iyi)410Synchro: sifir ops; RD: sunucu bakimi/guncelleme gerekli
36Build / CI/CDDerleme hizi (hizli=iyi)48Synchro: tek cargo build; RD: C++/Flutter/Rust coklu pipeline
37CI/CD basitligi69Synchro: tek workflow 115 satir; RD: coklu pipeline
38Binary boyutu (kucuk=iyi)58Synchro: tek binary ~5-10MB; RD: installer + coklu binary
39Topluluk / EkosistemGitHub yildiz/katki102RD: 75K+ yildiz, buyuk topluluk; Synchro: bireysel proje
40Dokumantasyon96RD: kapsamli wiki; Synchro: made.md + karsilastirma dokumani
41Ucuncu parti entegrasyon92RD: cok sayida eklenti/entegrasyon; Synchro: nis proje
42Bakim KolayligiHata ayiklama (kolay=iyi)69Synchro: tek dil, kucuk kod, tracing logging; RD: cok dil karisimi
43Yeni ozellik ekleme79Synchro: minimal kod, hizli iterasyon (38 surum hizla cikarildi)
44Guncelleme/deploy69Synchro: tag push → otomatik 4 platform release

12. Puan Ozeti

KategoriRustDeskSynchro
Kurulum Kolayligi (3 kriter)18/3027/30
Kod Kalitesi (4 kriter)19/4038/40
Performans (5 kriter)40/5034/50
Platform Destegi (4 kriter)38/4020/40
Ozellik Zenginligi (11 kriter)102/11040/110
Guvenlik (4 kriter)29/4032/40
Sunucu Altyapisi (4 kriter)20/4038/40
Build / CI/CD (3 kriter)15/3025/30
Topluluk / Ekosistem (3 kriter)28/3010/30
Bakim Kolayligi (3 kriter)19/3027/30
TOPLAM (44 kriter)328/440291/440
YUZDE%74.5%66.1

13. Sonuc ve Degerlendirme

Guclu YonuRustDeskSynchro
1. avantajOzellik zenginligi (dosya, ses, chat, adres defteri)Kurulum/operasyon kolayligi (serverless, tek binary)
2. avantajPlatform kapsami (mobil + web + masaustu)Kod kalitesi (%100 Rust, 3.700 LOC, minimal bagimllik)
3. avantajVideo codec kalitesi (VP9/AV1 HW hizlandirmali)Sunucu maliyeti (Cloudflare free tier, sifir ops)
4. avantajBuyuk topluluk ve ekosistem (75K+ yildiz)Guvenlik yuzeyi (dar saldiri alani, izole oturumlar)
5. avantajBant genisligi verimi (10-50x codec sikistirma)Bakim kolayligi (tek dil, hizli iterasyon, kolay debug)

RustDesk: Tam kapsamli kurumsal uzaktan erisim cozumu arayan, genis platform destegi ve zengin ozellik seti isteyen kullanicilar icin ideal.

Synchro: Hizli kurulum, dusuk maliyet, minimal bakim, kompakt ve bagimsiz bir uzaktan erisim cozumu isteyen bireysel gelistiriciler ve kucuk takimlar icin ideal. Ozellikle serverless mimari ve tek binary yaklasimi ile operasyonel yukuu minimuma indirir.


Belge sürümü: v1.0.37 — 25 Şubat 2026