Arkadaşınla aynı videoyu, aynı anda izle. Sohbet, ses ve görüntü doğrudan iki bilgisayar arasında akar — sunucudan yalnızca "tanışma" geçer.
- Oda aç, kodu ver. Altı karakterlik davet kodu; hesap yok, kayıt yok.
- Birlikte izle. Bir YouTube adresi yapıştırılır, iki tarafta aynı anda açılır. Oynat / duraklat / ileri sarma karşıya aktarılır, kayan pozisyon otomatik hizalanır.
- Konuş. P2P sesli/görüntülü sohbet ve yazışma.
- Kontrolü devret. Video kontrolü karşı tarafa verilebilir, ya da o isteyebilir.
Muiwatch'ın tek sunucusu bir signaling sunucusu: iki client'ın birbirini bulup WebRTC bağlantısı kurmasına aracılık ediyor, sonra devreden çıkıyor.
Sohbet mesajları, video pozisyonu, ses ve görüntü hiçbir zaman sunucudan geçmiyor ve hiçbir yere kaydedilmiyor. Sunucunun tuttuğu tek şey bellekte duran "hangi peer hangi odada" listesi; süreç yeniden başlarsa o da yok oluyor.
Bunun bedeli de var, gizlemiyoruz: TURN sunucusu yok (sadece STUN). Bu,
symmetric NAT arkasındaki bazı kullanıcı çiftlerinin bağlanamayacağı anlamına
geliyor. Uygulama o durumda sessizce takılmıyor, açık bir hata gösteriyor.
Ayrıntı: docs/ARCHITECTURE.md.
Gerekenler: Node.js 22+, Rust (yalnız masaüstü paketi için).
npm install
cd server && npm install && cd ..Signaling sunucusu (ayrı terminal):
cd server && npm run devUygulama:
npm run tauri devTarayıcıda geliştirmek için npm run dev yeter. İki sekme açıp tek makinede
iki peer denemek en hızlı yol — ama gerçek ağ davranışı (NAT, gecikme, echo
cancellation) ancak iki ayrı cihazda görülür.
Signaling adresini değiştirmek için .env.example'ı .env.local olarak
kopyalayın.
npm test # istemci: protokol, senkron, URL çözümleme
cd server && npm test # sunucu: oda defteri, davet kodusrc/ İstemci (React + TypeScript)
lib/ Protokol, senkron motoru, WebRTC oturumu, YouTube, medya
hooks/ Oda orkestrasyonu
components/ Arayüz
server/ Signaling sunucusu (Node + Socket.io, Fly.io)
src-tauri/ Masaüstü kabuğu (Tauri v2)
docs/ Mimari kararlar — kod yazmadan önce okunacak yer
Faz 0 (altyapı), Faz 1 (sohbet + sesli/görüntülü) ve Faz 2 (YouTube senkronu)
kodlandı. Co-browsing (Faz 3) ve DRM'li platformlar (Faz 4) henüz yok.
Ayrıntılı durum: docs/ROADMAP.md.
Apache-2.0. Outfit yazı tipi SIL Open Font License altında
(src/assets/fonts/LICENSE-OFL.txt).