LocalSend - AirDrop'un yerine geçebilecek açık kaynaklı, çapraz platform yerel dosya paylaşım uygulaması
(github.com/localsend)Repository: https://github.com/localsend/localsend
- Ücretsiz açık kaynaklı bir uygulama olarak, internet bağlantısı olmadan yerel ağ içindeki yakındaki cihazlarla dosya ve mesajları güvenli biçimde alışveriş yapmayı sağlar
- Harici sunuculara veya üçüncü taraf sunuculara bağımlı olmadan, cihazlar arası iletişimi REST API ve HTTPS şifreleme ile işleyerek hızlı ve güvenilir yerel iletişim sunar
- Aktarım verilerinin tamamı HTTPS ile korunur ve güvenliği artırmak için TLS/SSL sertifikaları her cihazda anında oluşturulur
- Windows, macOS, Linux, Android, iOS ve Fire OS için dağıtılır; kurulumda öncelikle uygulama mağazaları veya paket yöneticileri üzerinden yükleme önerilir
- Uygulamada otomatik güncelleme özelliği bulunmadığı için README, uygulama mağazası veya paket yöneticisi yolunun kullanılmasını tavsiye eder
- Dağıtım kanalları arasında Windows için Winget, Scoop, Chocolatey, EXE, Portable ZIP; macOS için App Store ve Homebrew; Linux için Flathub, Nixpkgs, Snap, AUR, DEB, AppImage, TAR; Android için Play Store, F-Droid, APK; Fire OS için Amazon yer alır
- Desteklenen minimum sürümler Android 5.0, iOS 12.0, macOS 11 Big Sur ve Windows 10'dur; Windows 7'yi destekleyen son sürüm ise v1.15.4'tür
- Linux'ta masaüstü ortamına göre xdg-desktop-portal ailesinden bağımlılıklar gerekir; Gnome için
xdg-desktop-portalvexdg-desktop-portal-gtk, KDE içinxdg-desktop-portalvexdg-desktop-portal-kdegereklidir - Çoğu durumda ek ayar olmadan çalışır; ancak gönderme veya alma sorunları varsa güvenlik duvarında TCP/UDP 53317 için inbound trafiğe izin verilmeli ve outbound TCP/UDP de açık olmalıdır
- Yönlendiricide AP isolation açıksa cihazlar arası bağlantı engellenir; cihaz keşfi sorunları yaşanıyorsa bu özellik devre dışı bırakılmalıdır
- Taşınabilir mod, çalıştırılabilir dosyayla aynı dizine boş da olabilen bir
settings.jsondosyası konulduğunda etkinleşir ve ayarların kaydedileceği konumu varsayılan yol yerine bu dosyaya çevirir - Yalnızca tepsiye gizlenmiş olarak başlatmak için
--hiddenbayrağı kullanılabilir - Hız düşükse 5 Ghz kullanılması ve her iki cihazda da şifrelemenin devre dışı bırakılması önerilir; Android'de düşük alma hızı ise bilinen bir sorun olarak durmaktadır
- Kaynaktan derlemek için Flutter ve Rust gerekir; proje,
.fvmrciçinde belirtilen eski bir Flutter sürümünü kullandığındanfvm flutterkullanımı tavsiye edilir
2 yorum
Masa oyunu buluşmalarında çektiğim timelapse videolarını paylaşmak için bunu sık kullanıyordum.
Son zamanlarda Galaxy ile Pixel de AirDrop benzeri paylaşımı desteklemeye başlayınca kullanım amacı biraz belirsizleşti.
Tabii masaüstüne gönderirken hâlâ çok iyi.
Hacker News görüşleri
Sorun şu ki bu tür alternatiflerin hepsinin aynı yerel ağda olması gerekiyor
AirDrop’un güzel tarafı, anladığım kadarıyla o yerel ağı arka planda otomatik olarak kurup yönetmesi
Bu sayede arkadaşlarla yürüyüşteyken bile hemen bir şey gönderebiliyordum
Android’e geçtikten sonra ise arkadaşın cihazına tethering ile bağlanıp bir LAN oluşturduktan sonra LocalSend kullanıyorum, ama deneyim çok daha az akıcı
Sadece statik bir GitHub sayfası olarak çalışan bir cihazdan cihaza aktarım aracı
gh repo: https://github.com/mbarlow/thinair
Her cihazın tarayacağı bir QR kodu oluşturuyor ve bir WebRTC bağlantısı kuruyor
Android cihazlar arasında, birbirlerine QR modundan kamera tarama moduna geçmelerini söylemek için bir sesli chirp de kullanıyor
Android↔Apple arasında da test ettim ve çalışıyor, ama Apple o sesli chirp’i algılayamıyor
Böyle durumlarda biraz beklerseniz QR kodu kayboluyor ve tarama aşamasına geçilebiliyor
Aceleyle yapılmış bir şeydi; aslında kuş ötüşü benzeri chirp’ler ya da eski modem tarzı yöntemlerle telefonlar arasında sesli handshake denemeleri yapıyordum
Telefonları birbirine yaklaştırıp ses kareleri alışverişiyle aktarım başlangıcını doğrulamak eğlenceliydi, ama handshake yavaştı ve güvenilirliği düşüktü
Akışı daha da iyileştirmek istiyorum; şu anda ise iPhone/Android/PC arasında uygulama, e-posta ya da hesap olmadan dosya göndermek için zaten kullanıyorum
Ama çok kararlı ya da kullanıcı dostu olduğu söylenemez
https://github.com/spieglt/FlyingCarpet
Bu bir Android uygulaması ve paylaşım sırasında LAN gerektirmediğini söylüyor
https://play.google.com/store/apps/details?id=com.fastfilelink.wrapper
Bazen diğer telefonu bulamıyor; muhtemelen önceki bir aktarım arka planda sessizce başarısız olduğunda oluyor
Mobil/Wi‑Fi bağlantısı olmadığında kişi aramada da sorun yaşamıştım; dağda başka bir telefona fotoğraf göndermeye çalışırken olmuştu
Bazen de tamamen takılıp hiç çalışmıyor, yani bu tür Apple magic pek yardımcı olmuyor
LocalSend kullanmak için önce bir cihazda ad-hoc Wi‑Fi oluşturmanız, diğer cihazları buna bağlamanız ve ancak ondan sonra LocalSend’i çalıştırmanız gerekiyor
İlk iki adım oldukça zahmetli; AirDrop bunları kendisi yaptığı için deneyim çok daha sürtünmesiz hissettiriyor
Yakın zamanda kullanmaya başladım; gerçekten çok iyi çalıştı ve AirDrop’tan çok daha güvenilir geldi
Yine de UX tarafında geliştirilecek yerler var
Ama asıl Apple’ın AirDrop’u biraz düzeltmesini isterdim
Her kullanımda güven çok düşük; bazen cihazları görmüyor ya da birden fazla Mac kullanıcısı varsa aynı Mac’i iki kez gösterip hangisinin hangi kullanıcı olduğunu söylemiyor, bu da kafa karıştırıyor
Bu tür bir uygulamayı gerektirecek kadar hangi büyük dosyaları üretip taşıdıklarını pek bilmiyorum
Benim telefonumda oluşan dosyalar sadece fotoğraf ve video; onları Immich ile yedekleyip bağlantı üzerinden paylaşmak yeterli
Çoğu insan da muhtemelen benzer bir şeyi iCloud ya da Google Photos ile yapıyordur
Belge gibi diğer dosyaların senkronizasyonu için ownCloud OCIS kullanıyorum; çoğu kişi için de DropBox ya da iCloud, hatta e-posta veya WhatsApp yeterlidir diye düşünüyorum
Yerel ağ içinde ISO gibi şeyleri taşımak için SMB ile kopyalamak yeterli, üstelik neredeyse her yerde çalışıyor ve ayrı bir uygulama gerektirmiyor
Yedekleme içinse harici diski takmak yeterli
O yüzden neden bunu kullanmak gerektiğini tam anlayamıyorum
Eskiden bende de görünmeme sorunları oluyordu ama bugünlerde neredeyse hep düzgün çalışıyor
Bunu kesin çözen bir yöntem henüz bulamadım; iki tarafta da AirDrop’u kapatıp açmak en iyi yöntem gibi görünüyor ama o da sadece yaklaşık %70 işe yarıyor
Sendme https://github.com/n0-computer/sendme ve AltSendme https://github.com/tonyantony300/alt-sendme da bakmaya değer
İkisi de Iroh https://github.com/n0-computer/iroh kullanıyor; bu, merkezi sunucu olmadan veri gönderen açık kaynak şifreli P2P relay servisi, dolayısıyla gönderilen/alınan dosya boyutu için fiilen bir sınır yok
Benzer bir başlıkta dosya paylaşım uygulamaları konuşulurken bunu da önermiştim
https://news.ycombinator.com/item?id=47906587
Kod, sözlü aktarılacak kadar kısa ya da basit değil; zaten o kodu gönderebiliyorsanız çoğu durumda dosyanın kendisini de doğrudan gönderebilirsiniz
https://github.com/schlagmichdoch/pairdrop
Benzer bir proje ama bu tamamen tarayıcıda çalışıyor ve bir "public" room kullanarak yerel ağ dışındaki istemcilerle de bağlantı kurabiliyor
iPhone ile Linux masaüstü arasında aktarım için LocalSend kurmuştum ama her zaman düzgün çalışmıyor
Firewalld’da LocalSend portlarını açmış olsam bile cihazların birbirini görmesi bazen 10 dakikadan fazla sürebiliyor
Tarayıcı tabanlıysa en azından discovery daha hızlı olabilir gibi geliyor
Dokümantasyon biraz gizli kalmış; FAQ burada: https://github.com/schlagmichdoch/pairdrop/blob/master/docs/faq.md,
Android, iOS ve Windows paylaşım menüsü entegrasyonu ise burada: https://github.com/schlagmichdoch/PairDrop/blob/master/docs/how-to.md
sharedrop ve snapdrop LimeWire tarafından satın alınıp bozulunca onların fork’u olarak çıkmış
Kendini AirDrop alternatifi olarak sunan şeyler için spamsolutions.txt benzeri bir şeye ihtiyaç varmış gibi geliyor
Bu, iki eşin de mevcut bir Wi‑Fi ağına bağlı olmaması ölçütünü karşılamıyor
https://craphound.com/spamsolutions.txt
Ben de buna benzer bir şeyi Tauri ile çıkarmıştım
Kurulum dosyası boyutları Mac’te yaklaşık 27MB, Linux .deb’de 45MB, Windows’ta 53MB civarındaydı; Electron’da taban yaklaşık 150MB oluyordu
Tek istisna .AppImage’dı; onda da runtime paketlendiği için yaklaşık 110MB oluyordu
Bu boyut avantajı, işletim sisteminin webview’ını yeniden kullanmaktan geliyor ama aynı zamanda bedeli de bu
Linux’taki WebKitGTK, Mac WebKit ya da Windows Edge WebView’dan gerçekten farklı davranıyor; dolayısıyla Chromium’un sizin yerinize çözdüğü şeyleri alamıyorsunuz ve çapraz platform debug için zaman harcıyorsunuz
Beklenmedik şekilde daha şaşırtıcı olan ise framework’ten çok Linux paketleme kısmıydı
AppImage her yerde çalışıyor ama çoğu kullanıcı için ikinci sınıf vatandaş gibi hissettiriyor; .deb ana akım dağıtımları kapsıyor ama sürekli hareket eden glibc sürümlerine ayak uydurmanız gerekiyor
Snap/Flatpak resmî cross-distro çözüm gibi görünüyor ama sandbox ve izin süreçleri yüzünden bağımsız geliştiriciler haftalarını harcayabiliyor
Sonunda .deb ve .AppImage dağıttım; birkaç saat içinde de "neden AUR’da yok" e-postaları gelmeye başladı
Tarayıcıda da çalışıyor
https://web.localsend.org/
Windows’tan Android ve iOS’a aktarım yapılabiliyor
Firefox, Chrome, telefon ve dizüstü bilgisayar ile hem gönderme hem alma denedim
Konsolda
WebRTC: ICE failed, add a TURN server and see about:webrtc for more details.hatası çıktı; kullanıcıların bunu nasıl çözeceğini gerçekten bilmiyorumAratınca çıkan sonuçların çoğu geliştiricilere yönelik tavsiyelerdi
Sonunda şunu öğrendim: Tailscale kapatılınca çalışıyor
Sadece v1.18.0 hâlâ F-droid’e gelmemiş
Ben de geçen yıl bu alanda bir şeyler geliştiriyordum
Temelde bir peer-to-peer filesystem olan keibidrop’u yaptım: https://keibidrop.com/
Geçen hafta duyurdum; local send’in yaptıklarının yanında WAN üzerinden de çalışıyor
Mobil uygulamaları henüz yayımlamadım
Bir adım daha ileri gidip çift yönlü senkronize olan bir virtual filesystem de sunuyor
Repo burada: https://github.com/KeibiSoft/KeibiDrop
UI dışındaki kod açık kaynak; loopback temelinde localsend ile kıyaslama da yaptım ve local send daha hızlı çıktı
https://keibisoft.com/blog/keibidrop-benchmarks-vs-competition.html
Dün /r/golang’da da bir yorum dizisi açmaya çalıştım
İçeride PQC, gRPC ve FUSE kullanıyor
Linux’a geçtikten sonra kurduğum ilk uygulamalardan biri buydu
Açık kaynak uygulamaların ne kadar iyi olabileceğini gerçekten hissettirdi
Tailscale açıkken LocalSend şu an pek kararlı çalışmıyor gibi görünüyor
Bu üzücü
Aynı tailnet içindeki istemciler arasında da dosya aktarımını desteklese harika olurdu