AnyDesk benzeri uzak masaüstü uygulaması. Tek binary, Cloudflare Worker relay üzerinden çalışır — port açma yok, kurulum yok, AnyDesk tarzı 9 haneli ID.
SynchroRemote, AnyDesk\'in temel kullanıcı deneyimini yeniden üreten ama altyapısını tek binary + Cloudflare Worker üzerine kuran açık kaynaklı bir uzak masaüstü uygulamasıdır. Aynı yürütülebilir dosya hem Host (paylaşan) hem Viewer (bağlanan) modlarını içerir; iki taraf da binary\'yi indirir, açılışta birinde "Paylaşımı Başlat"\'a basıp 9 haneli ID alır, diğeri ID\'yi girip bağlanır. Tüm trafik Cloudflare üzerinden WSS ile yönlendirilir — port açma, statik IP veya VPN gerektirmez.
GitHub Releases üzerinden 4 platform için pre-build binary\'ler — kaynaktan derleme de mümkün
synchro-linux-x86_64synchro-windows-x86_64.exesynchro-macos-arm64synchro-macos-x86_64İki kullanıcı + tek Cloudflare Worker = tüm sistem
CLOUDFLARE WORKER (Sunucu)
┌────────────────────────────────┐
│ Durable Objects │
│ ┌──────────────────────────┐ │
[PC-A: Host modu] ←→ │ │ Room: 847291035 │ │ ←→ [PC-B: Viewer modu]
synchro binary │ │ - Host WebSocket │ │ synchro binary
"Paylaşımı Başlat" │ │ - Viewer WebSocket │ │ "Bağlan"
ID: 847291035 │ │ - Mesaj Yönlendirme │ │
│ └──────────────────────────┘ │
└────────────────────────────────┘
↕
┌────────────────────────────────┐
│ synchroremote.com (Web) │
│ - Tanıtım sayfaları │
│ - Binary indirme │
│ - Blog (markdown) │
│ - Next.js + Cloudflare Pages │
└────────────────────────────────┘app/Tek binary; GUI (gui.rs) hem Host (host.rs) hem Viewer (viewer.rs) modlarını içerir. capture.rs ekran yakalama, input.rs fare/klavye, video_codec.rs sıkıştırma, audio.rs ses, file_transfer.rs dosya, service.rs sistem servisi.
relay/WebSocket relay ve Room yönetimi. Durable Object her oturum için tek bir koordinasyon noktası sağlar; mesajlar Host↔Viewer arasında yönlendirilir. Veri saklanmaz — sadece transit.
synchroremote-web/synchroremote.com tanıtım sitesi; özellik sayfaları, indirme bağlantıları, blog (remark/rehype + frontmatter), içerik markdown'dan üretilir. opennextjs-cloudflare ile Cloudflare'a deploy.
shared/Host ve Viewer arasındaki mesaj formatı; protokol versiyonlama, paket tipleri, serde serialization.
.github/workflows/release.yml — git tag push edildiğinde 4 platform için cross-compile build; binary'ler GitHub Releases'a yüklenir.
Host ve Viewer aynı uygulamada — kullanıcı modlar arasında geçiş yapar, ayrı yazılım kurmaz.
AnyDesk tarzı kısa numerik ID; Durable Object'ler tarafından atanır, sözlü iletişimle paylaşılabilir.
Tüm relay trafiği WSS üzerinden TLS ile şifrelenir; kurumsal proxy'lerden geçer, port açma gerekmez.
Host tarafı oturum başına şifre belirler; viewer doğru şifreyi girmedikçe ekran paylaşımı başlamaz.
Linux X11, Windows GDI/DXGI ve macOS CoreGraphics üzerinde scrap kütüphanesi ile ~10 FPS yakalama.
Viewer tarafından gönderilen input event'leri Host'ta enigo/xdotool ile yeniden oynatılır.
Adaptif video codec (`video_codec.rs`) — düşük bant genişliğinde otomatik downscale + sıkıştırma.
Bağlı oturum üzerinden iki yönlü dosya transferi (`file_transfer.rs`).
Host'tan Viewer'a ses aktarımı (`audio.rs`) — uzak ses kullanma desteği.
`service.rs` ile sistem hizmeti olarak kurulabilir; oturum açılışında otomatik çalışma.
Cloudflare Worker relay ile her iki taraf da outbound bağlantı kurar — NAT/firewall ardındaki cihazlar erişilebilir.
SYNCHRO_TARGET_WIDTH/HEIGHT, DOWNSCALE_FILTER, COMPRESSION ile performans ince ayarı.
İki kullanıcı arasında tam bir uzak masaüstü oturumu — 5 adım
Kullanıcı GitHub Releases sayfasından kendi platformuna uygun tek binary'yi indirir, executable bayrağı verip çalıştırır. Kurulum yok; uygulama açılışta GUI gösterir.
PC-A'da kullanıcı sol panelde "Bu Bilgisayar"'da "Paylaşımı Başlat"'a tıklar. Uygulama Cloudflare Worker relay'a WebSocket bağlantısı açar; Durable Object 9 haneli ID atar. ID ekranda görünür.
PC-B'de kullanıcı sağ panelde "Uzak Bağlantı"'ya 9 haneli ID + (varsa) şifreyi girer. Viewer'ın WebSocket'i aynı Durable Object Room'a katılır; Host ile mesaj kanalı kurulur.
Host: scrap ile ekran karelerini yakalar → video_codec ile sıkıştırır → relay üzerinden Viewer'a stream eder. Viewer: Host'a fare/klavye event'leri gönderir, Host bunları enigo/xdotool ile uygular.
Her iki taraf da pencereyi kapatabilir; WebSocket kapanışı Durable Object tarafından temizlenir, Room silinir, ID havuza geri döner.
Performans ve kalite ince ayarı için SYNCHRO_* değişkenleri
Uzak erişim güvenliği için 8 koruma katmanı
Host ↔ Relay ↔ Viewer arasındaki tüm WebSocket bağlantıları TLS ile şifrelenir; veri pasifçe dinlenemez.
Host tarafı oturum şifresini belirler; relay sunucu şifreyi görmez, doğrulama uçlar arası yapılır.
9 haneli ID'ler oturum bittiğinde havuza geri döner; kalıcı kimlik değildir, brute-force kullanışsız.
Cloudflare Worker yalnızca paket aktarır; ekran/audio/dosya verileri loglanmaz, depolanmaz.
Her iki taraf da Cloudflare'a outbound bağlantı kurar — gelen port açmak gerekmez, kurumsal firewall'lar engel olmaz.
Self-hosted relay deploy edenler kendi RELAY_SECRET'ını wrangler.toml içinde belirler; yetkisiz worker erişimi engellenir.
Tüm sunucu tarafı (relay) açık kaynak; kurum kendi Cloudflare hesabında deploy edebilir, üçüncü taraf güvenir.
Cargo release profilinde strip = true, lto = true; debug sembolleri ve gereksiz veri çıkarılır, reverse engineering zorlaştırılır.
Pre-build binary\'ler ve detaylı dokümantasyon için resmi siteyi ziyaret edin. Cross-platform: Windows, macOS (Intel + Apple Silicon), Linux.
synchroremote.com →MIT lisansı · Cloudflare Workers · Tek binary