LocalSend - AirDrop की जगह लेने वाला ओपन सोर्स क्रॉस-प्लेटफ़ॉर्म लोकल फ़ाइल शेयरिंग ऐप
(github.com/localsend)Repository: https://github.com/localsend/localsend
- यह एक मुफ़्त ओपन सोर्स ऐप है, जो इंटरनेट कनेक्शन के बिना लोकल नेटवर्क के भीतर पास के डिवाइसों के साथ फ़ाइलें और संदेश सुरक्षित रूप से साझा कर सकता है
- यह बाहरी सर्वर या थर्ड-पार्टी सर्वर पर निर्भर नहीं करता, बल्कि डिवाइस-टू-डिवाइस संचार को REST API और HTTPS एन्क्रिप्शन के ज़रिए संभालता है, जिससे तेज़ और भरोसेमंद लोकल संचार मिलता है
- ट्रांसफ़र होने वाला सारा डेटा HTTPS से सुरक्षित रहता है, और सुरक्षा बढ़ाने के लिए TLS/SSL प्रमाणपत्र हर डिवाइस पर तुरंत बनाए जाते हैं
- यह Windows, macOS, Linux, Android, iOS, Fire OS पर उपलब्ध है, और इंस्टॉलेशन के लिए ऐप स्टोर या पैकेज मैनेजर का उपयोग प्राथमिक रूप से सुझाया जाता है
- ऐप में ऑटो अपडेट फीचर नहीं है, इसलिए README ऐप स्टोर या पैकेज मैनेजर वाले रास्ते के उपयोग की सिफारिश करता है
- डिस्ट्रीब्यूशन चैनलों में Windows के लिए Winget, Scoop, Chocolatey, EXE, Portable ZIP; macOS के लिए App Store और Homebrew; Linux के लिए Flathub, Nixpkgs, Snap, AUR, DEB, AppImage, TAR; Android के लिए Play Store, F-Droid, APK; और Fire OS के लिए Amazon शामिल हैं
- न्यूनतम समर्थित वर्ज़न Android 5.0, iOS 12.0, macOS 11 Big Sur, और Windows 10 हैं, जबकि Windows 7 को सपोर्ट करने वाला आख़िरी वर्ज़न v1.15.4 है
- Linux पर डेस्कटॉप एनवायरनमेंट के अनुसार xdg-desktop-portal परिवार की dependencies चाहिए होती हैं; Gnome के लिए
xdg-desktop-portalऔरxdg-desktop-portal-gtk, जबकि KDE के लिएxdg-desktop-portalऔरxdg-desktop-portal-kdeआवश्यक हैं - ज़्यादातर मामलों में यह बिना अलग सेटअप के काम करता है, लेकिन अगर भेजने-लेने में समस्या हो तो फ़ायरवॉल में TCP/UDP 53317 inbound की अनुमति देनी चाहिए और outbound TCP/UDP भी अनुमति प्राप्त होना चाहिए
- अगर राउटर में AP isolation चालू है, तो डिवाइसों के बीच कनेक्शन रुक सकता है; डिवाइस खोजने में समस्या आने पर इसे बंद करना चाहिए
- पोर्टेबल मोड उस समय सक्रिय होता है जब executable वाली उसी डायरेक्टरी में, भले खाली हो,
settings.jsonफ़ाइल रखी जाए; इसके बाद सेटिंग्स सेव करने की जगह डिफ़ॉल्ट पाथ की बजाय वही फ़ाइल बन जाती है - अगर केवल ट्रे में छिपाकर शुरू करना हो, तो
--hiddenफ़्लैग का उपयोग किया जा सकता है - गति धीमी होने पर 5 Ghz उपयोग करने और दोनों डिवाइसों पर एन्क्रिप्शन बंद करने का सुझाव दिया जाता है, जबकि Android पर कम receive speed अभी भी एक known issue है
- सोर्स बिल्ड करने के लिए Flutter और Rust चाहिए, और प्रोजेक्ट
.fvmrcमें निर्दिष्ट पुराने Flutter वर्ज़न का उपयोग करता है, इसलिएfvm flutterइस्तेमाल करने की सिफारिश की जाती है
2 टिप्पणियां
मैं इसे अक्सर board game meetup के दौरान शूट किए गए timelapse को शेयर करने के लिए इस्तेमाल करता था.
हाल ही में Galaxy और Pixel के बीच AirDrop जैसी sharing आने से इसका उपयोग थोड़ा अस्पष्ट हो गया है.
बेशक, desktop पर भेजने के लिए यह अभी भी अच्छा है.
Hacker News की राय
समस्या यह है कि ऐसे सभी विकल्पों में एक ही local network पर होना ज़रूरी है
मेरी समझ में Airdrop की अच्छी बात यह है कि वह उस local network को बैकग्राउंड में अपने-आप बना देता है और संभाल लेता है
इसलिए दोस्तों के साथ hiking पर भी मैं तुरंत कुछ भेज पाता था
Android पर आने के बाद मैं दोस्त के device पर tethering करके LAN बनाता हूँ और फिर Localsend इस्तेमाल करता हूँ, लेकिन अनुभव काफ़ी कम seamless है
यह बस एक static GitHub page के रूप में चलने वाला device-to-device transfer टूल है
gh repo: https://github.com/mbarlow/thinair
हर device एक QR code बनाता है जिसे स्कैन किया जा सके, और फिर WebRTC connection बनता है
Android के बीच यह एक audio chirp भी इस्तेमाल करता है जो दोनों को QR mode से camera scan mode में स्विच करने को बताता है
Android↔Apple पर भी इसे टेस्ट किया है और यह काम करता है, लेकिन Apple उस audio chirp को पकड़ नहीं पाता
ऐसे में थोड़ा इंतज़ार करने पर QR code गायब हो जाता है और स्कैन वाले चरण पर जाया जा सकता है
यह जल्दी में बनाया गया था, और शुरुआत में मैं चिड़ियों जैसी chirp या पुराने modem जैसी ध्वनियों से smartphones के बीच audio handshake के साथ प्रयोग कर रहा था
फ़ोन आपस में सटाकर audio frames भेजते हुए transfer शुरू होने की पुष्टि करना मज़ेदार था, लेकिन handshake धीमा और कम भरोसेमंद था
मैं flow को और बेहतर बनाना चाहता हूँ, और अभी भी iPhone/Android/PC के बीच app, email या account के बिना file भेजने के लिए इसका उपयोग करता हूँ
हाँ, यह बहुत stable या user-friendly नहीं है
https://github.com/spieglt/FlyingCarpet
यह एक Android app है, और दावा है कि share करते समय LAN की ज़रूरत नहीं होती
https://play.google.com/store/apps/details?id=com.fastfilelink.wrapper
कभी-कभी यह दूसरा फ़ोन ढूँढ ही नहीं पाता, शायद तब जब पिछला transfer बैकग्राउंड में चुपचाप fail हो गया हो
mobile/Wi‑Fi connection न होने पर contact discovery में भी दिक्कत आई थी, ऐसा पहाड़ों में दूसरे फ़ोन पर फ़ोटो भेजते समय हुआ
कभी-कभी यह बस अटक जाता है और बिल्कुल काम नहीं करता, इसलिए ऐसी Apple magic ज़्यादा मददगार नहीं लगती
Localsend इस्तेमाल करने के लिए पहले एक device पर ad-hoc Wi‑Fi बनाना पड़ता है, फिर बाकी devices को उससे connect करना पड़ता है, और उसके बाद Localsend चलाना पड़ता है
पहले के ये दो चरण काफ़ी झंझट वाले हैं, और Airdrop इन्हें अपने-आप संभाल लेता है, इसलिए वह कहीं ज़्यादा frictionless लगता है
मैंने इसे हाल ही में इस्तेमाल करना शुरू किया है और यह सचमुच बहुत अच्छा चलता है, Airdrop से कहीं ज़्यादा भरोसेमंद
हालांकि UX में अभी और सुधार की गुंजाइश है
फिर भी अच्छा होगा अगर Apple Airdrop को थोड़ा ठीक कर दे
हर बार इस्तेमाल करते हुए भरोसा बहुत कम रहता है; कभी devices दिखते नहीं, और अगर कई Mac users हों तो वही Mac दो बार दिखता है और यह भी नहीं बताता कि कौन-सा user कौन है, इसलिए काफ़ी भ्रम होता है
समझ नहीं आता कि लोग ऐसी कौन-सी बड़ी files बनाते और इधर-उधर ले जाते हैं कि उन्हें ऐसी app की ज़रूरत पड़े
मेरे मामले में फ़ोन पर बनने वाली files सिर्फ़ फ़ोटो और वीडियो हैं, और मैं उन्हें Immich में backup करके link से share कर देता हूँ
आम लोग भी शायद iCloud या Google Photos से ऐसा ही करते होंगे
documents जैसी दूसरी files sync करने के लिए मैं ownCloud OCIS इस्तेमाल करता हूँ, और ज़्यादातर लोगों के लिए DropBox या iCloud, या फिर email या WhatsApp भी काफ़ी होगा
local network पर ISO जैसी चीज़ें भेजनी हों तो SMB से copy कर सकते हैं, जो लगभग हर जगह काम कर जाता है और अलग app की ज़रूरत भी नहीं होती
backup के लिए तो external hard drive लगा देना भी काफ़ी है
इसलिए मुझे अब भी पूरी तरह समझ नहीं आता कि इसे क्यों इस्तेमाल करना चाहिए
पहले मुझे भी visibility की दिक्कतें थीं, लेकिन आजकल तो यह लगभग हमेशा ठीक चलता है
इसे ठीक करने का कोई पक्का तरीका अभी तक नहीं मिला; दोनों तरफ़ Airdrop बंद करके फिर चालू करना सबसे अच्छा उपाय लगता है, लेकिन वह भी सिर्फ़ करीब 70% बार काम करता है
Sendme https://github.com/n0-computer/sendme और AltSendme https://github.com/tonyantony300/alt-sendme देखने लायक हैं
दोनों Iroh https://github.com/n0-computer/iroh का उपयोग करते हैं, जो बिना central server के डेटा भेजने वाली open source encrypted P2P relay service है, इसलिए भेजी/पाई जाने वाली files के आकार की सीमा लगभग नहीं है
इसी तरह की एक और thread में file sharing apps की बात होने पर भी मैंने यही सुझाव दिया था
https://news.ycombinator.com/item?id=47906587
code इतना छोटा या आसान नहीं होता कि उसे बोलकर बताया जा सके, और अगर आप वह code भेज ही सकते हैं तो अक्सर file भी सीधे भेज सकते हैं
https://github.com/schlagmichdoch/pairdrop
यह भी ऐसा ही project है, लेकिन यह पूरा browser में चलता है और "public" room का इस्तेमाल करके local network के बाहर के clients से भी connect कर सकता है
iPhone और Linux desktop के बीच transfer के लिए मैंने Localsend install कर रखा है, लेकिन यह हमेशा ठीक से नहीं चलता
Firewalld में Localsend के ports खोल देने के बाद भी कभी-कभी devices को एक-दूसरे को देखने में 10 मिनट से ज़्यादा लग जाते हैं
अगर browser-based है तो कम-से-कम discovery तेज़ होगी, ऐसा लगता है
documentation थोड़ी छिपी हुई है, लेकिन FAQ यहाँ है: https://github.com/schlagmichdoch/pairdrop/blob/master/docs/faq.md,
और Android, iOS, Windows के share menu integration का तरीका यहाँ है: https://github.com/schlagmichdoch/PairDrop/blob/master/docs/how-to.md
sharedrop और snapdrop के LimeWire द्वारा अधिग्रहण के बाद वे बिगड़ गए थे, उसी का यह fork है
जो चीज़ें खुद को Airdrop replacement कहती हैं, उनके लिए शायद spamsolutions.txt जैसा कुछ चाहिए
यह उस कसौटी पर खरा नहीं उतरता कि दोनों peers को मौजूदा Wi‑Fi network से जुड़े बिना काम करना चाहिए
https://craphound.com/spamsolutions.txt
मैंने भी इसी तरह की एक चीज़ Tauri में बनाई थी
installer size लगभग Mac पर 27MB, Linux .deb पर 45MB, और Windows पर 53MB था, जबकि Electron का base लगभग 150MB था
सिर्फ़ .AppImage अपवाद था, जो लगभग 110MB तक पहुँच गया क्योंकि उसमें runtime bundle करना पड़ता है
यह size reduction OS के webview को reuse करने से मिलता है, लेकिन वही इसकी cost भी है
Linux का WebKitGTK, Mac WebKit या Windows Edge WebView से सचमुच अलग तरह से व्यवहार करता है, इसलिए Chromium जो चीज़ें अपने-आप संभाल लेता, उनकी जगह आपको cross-platform debugging में समय देना पड़ता है
इससे भी ज़्यादा चौंकाने वाली चीज़ framework नहीं बल्कि Linux packaging थी
AppImage हर जगह चल जाता है, लेकिन ज़्यादातर users को यह second-class citizen जैसा लगता है, और .deb मुख्य distributions को cover करता है, पर आपको लगातार बदलते glibc versions के साथ चलना पड़ता है
Snap/Flatpak आधिकारिक cross-distro जवाब जैसे लगते हैं, लेकिन sandboxing और permissions के कारण कोई indie developer हफ़्तों इसमें फँस सकता है
आख़िर में जब मैंने .deb और .AppImage रिलीज़ किए, तो कुछ ही घंटों में "यह AUR में क्यों नहीं है" वाले emails आने लगे
यह browser में भी काम करता है
https://web.localsend.org/
Windows से Android और iOS तक transfer किया जा सकता है
मैंने Firefox, Chrome, फ़ोन और laptop—सबके बीच send/receive ट्राई किया
console में
WebRTC: ICE failed, add a TURN server and see about:webrtc for more details.दिखा, और समझ नहीं आया कि user इसे कैसे ठीक करेsearch करने पर ज़्यादातर सिर्फ़ developers के लिए सलाह मिली
आख़िर में पता चला कि Tailscale बंद करने पर यह काम करता है
बस v1.18.0 अभी तक F-droid पर नहीं आया है
मैं भी पिछले साल इस क्षेत्र में कुछ बना रहा था
मैंने keibidrop बनाया, जो मूल रूप से एक peer-to-peer filesystem है: https://keibidrop.com/
इसे पिछले हफ़्ते public किया, और यह local send के काम से आगे बढ़कर WAN पर भी काम करता है
mobile apps अभी रिलीज़ नहीं किए हैं
एक कदम आगे यह भी है कि इसमें दो-तरफ़ा sync होने वाला virtual filesystem भी है
repository यहाँ है: https://github.com/KeibiSoft/KeibiDrop
UI को छोड़कर code open source है, और loopback के आधार पर localsend के साथ benchmark भी किया था, जिसमें local send तेज़ निकला
https://keibisoft.com/blog/keibidrop-benchmarks-vs-competition.html
कल मैंने /r/golang पर भी इस बारे में एक comment thread शुरू करने की कोशिश की थी
अंदरूनी रूप से इसमें PQC, gRPC, FUSE का इस्तेमाल किया गया है
Linux पर आने के बाद मैंने जो सबसे पहले apps install किए, उनमें यह भी एक था
इससे सच में महसूस हुआ कि open source apps कितनी शानदार हो सकती हैं
लगता है Tailscale चालू हो तो Localsend अभी स्थिर तरीके से काम नहीं करता
यह थोड़ा निराशाजनक है
अगर एक ही tailnet के clients के बीच file transfer भी support कर दे तो वाकई बहुत अच्छा होगा