6 ms·
Sharedrop: Easy P2P file transfer powered by WebRTC – inspired by Apple AirDrop
- toenail 2y agoDoes this work on mobile? I use localsend so far, https://localsend.org/ https://localsend.org/
- nateb2022 2y agoIt works for me on Safari for iOS
- oezi 2y agoThey mention running this cost them money (likely for hosting and Firebase). Isn't there a way that this could be entirely distributed?
- nateb2022 2y agoIt could, but with the current WebRTC implementation initial connection establishment between peers requires a signaling server to coordinate network information.
- MuffinFlavored 2y agoHow can WebRTC be implemented for an app like this to not need a signal server?
- the8472 2y agoFor physically local use: You could turn the session initiation tokens into QR codes and show them to each other For P2P over the broader internet: Either use another channel to convey the token or use a native application that can speak UDP/TCP to do actual distributed P2P transfers.
- kelnos 2y agoFor the broader internet case, you'll probably still be dealing with NATs between both devices, so you'll need a centralized STUN (or even TURN) server to hole-punch (or relay).
- the8472 2y agoDepends on your goals, bittorrent does without STUN servers by coordinating over other peers in the network. Time-based coordination and simultanous-open is another strategy.. And there's IPv6. Local peer-to-peer wifi can probably use multicast for discovery. The situation isn't pretty, but there's more than what WebRTC with its single-use sessions offers.
- talkingtab 2y agoA "signal server" in this situation is any method that will allow the two end points to connect. However, you simply need to be able to exchange a few setup packets. People used web sockets for this, but essentially anything that will exchange some information will work. see https://webrtc.org/getting-started/peer-connections https://webrtc.org/getting-started/peer-connections. There is a youtube video on writing a webrtc chat app and (during development) the developer simply copies and pastes between two windows on the same computer. Webrtc file transfer, text chat and video chat all use this information. In addition if one is negotiating connections across NAT servers you use STUN or TURN servers (there are open ones) to establish NAT. Your local computer/phone/whatever will send need to tell the other side what your NAT address is and STUN will do that.
- ekr____ 2y agoIt's not just WebRTC. Basically, if you want things to work when both endpoints are behind typical NATs (a very common situation), you need some kind of signaling system. There are several reasons for this: - NAT bindings are usually not stable over long periods of time - Many NATs implement what's basically a stateful inspection firewall, which means that you actually need to send a packet out to the peer's address before it will be allowed to send a packet to you from the outside - In some nontrivial fraction of cases, you actually need to relay traffic through a third party. The result is that you need some coordination protocol to set up the connection and that has to go through some service which is accessible from the endpoints; generally this means some type of service. So, yes WebRTC is designed this way, but it's basically a constraint of any system of this type. For more on this than you wanted to know, see: https://educatedguesswork.org/posts/nat-part-1/ https://educatedguesswork.org/posts/nat-part-1/ and following posts.
- Feathercrown 2y agoI'm kind of surprised that there aren't general-purpose public-use servers for this purpose.
- meiraleal 2y agoYes there are google and many other public stun servers.
- ranger_danger 2y agoSTUN and TURN are probably what you're looking for
- posix86 2y agoThis is like PushBullet but better. Nice work! Gonna try when I need to move something from phone to tabled to PC.
- BitPirate 2y agoSadly things are a bit broken if IPv6 is involved: https://github.com/szimek/sharedrop/issues/55 https://github.com/szimek/sharedrop/issues/55
- ValtteriL 2y agoHow is this different from webwormhole.io?
- alternatex 2y agoMy fave is https://snapdrop.net https://snapdrop.net
- glitchdout 2y agohttps://pairdrop.net https://pairdrop.net is a fork that let’s you change your name.
- user_7832 2y agoI'd like to give a shoutout to localsend as well: https://github.com/localsend/localsend https://github.com/localsend/localsend
- almog 2y agoSo it's not offline first, and even though it can do P2P through WebRTC I've ran into situation where I wanted to send a file from my android (not supporting AirDrop) phone to someone's iphone (not supporting Nearby Share) when we were both at the same location but days away from cell service. Localsend can do that. Problem being when the other person did does not have that installed on their phone. It's really crazy how offline-first networking is still partitioned by iPhone/Android for so many years.
- modeless 2y agoYeah, it's crazy how with a $15 walkie talkie running on AAA batteries you can talk to your friend miles away in the wilderness, but your $1000 phone is a brick if it can't see a cell tower. Something went wrong there. Pretty soon we're going to have satellite cell service via Starlink. So it will work, but it will be silly when your signals are going to space and back twice to travel a mile as the crow flies.
- almog 2y agoExactly and more generally it'd be interesting to see if those space cell tower live to the promise. I suspect they'd be great for texting and very light web pages but with 7 Mbit/s per cell (that's the number I remember reading) it might end up feeling feel very sluggish if used with our existing internet applications and protocol stack.
- nashashmi 2y agoIts a mobile (celltower) first technology. Not a device first technology.
- gruez 2y ago>but your $1000 phone is a brick if it can't see a cell tower. Something went wrong there. it's not exactly a "brick". airdrop/bluetooth still work albeit at a reduced range.
- franga2000 2y ago
- JaneLovesDotNet 2y agoimho https://pairdrop.net/ https://pairdrop.net/ is the best one of these
- jerbear4328 2y agoPairDrop is quite nice, it's my go to as it always works. It's a fork of the simpler SnapDrop.
- sandreas 2y agoWell, maybe an alternative: Localsend[1] Works pretty good for my use cases. 1: https://localsend.org/ https://localsend.org/ EDIT: Oh, this was already mentioned... sorry.
- 1oooqooq 2y ago> as well: https://github.com/localsend/localsend https://github.com/localsend/localsend > imho https://pairdrop.net/ https://pairdrop.net/ is the best > How is this different from webwormhole.io? > My fave is https://snapdrop.net https://snapdrop.net it's so funny how everyone have a favorite. They all use standardized hacks on top of hacks, just because ISP do not want to let you serve content and will fight for NAT, which is their only line of defense from everyone else messing with their precious IGMP multicast hacks so they can subsidize their TV business on your internet bill. it's all so funny. but the best joke is how microsoft and apple both tried to "make things work" in the late 90s (?) with their special zero-conf-by-other-names trainwreak of network protocols. There's no end in sight.
- doctorpangloss 2y ago> NAT, which is their only line of defense from everyone else messing with their precious IGMP multicast hacks so they can subsidize their TV business on your internet bill. What are you trying to say? This is intriguing.
- 1oooqooq 2y agoall tv channels are transmitted with the same technology state actors use to redirect traffic from some site to their servers. (multicast) That tech have no authentication or authorization. (IGMP, PIM-SM, whatever) it mostly consist of a switch or router on the edge NOT forwarding UDP to some class D ip, or something, past it. But all the ancillary protocols have hundreds of redirection attacks still available. All that is besides the BGP stuff everyone document by now so it's only used as a last resort. Go read a book on network security published after 2013. If you want to play with it in your home, no need to build a homelab. Your home modem probably have smaller versions of this using uPNP or PCP or something. Not really recalling the consumer version names. But on those you mostly can point ports routed to any device to any other device, started by any device in or out of the network. fun stuff. the reason i don't remember any of the details is because all the perl scripts written in 2000 or so still work just fine.
- 2y ago
- deleted 2y ago[deleted]
- bevenhall 2y agoELI5: Do you have two devices on the same local network - is it a single common wifi access point in the badlands, just a local lan, no internet? Do I *need* to have your file on my phone? Why?
- kelnos 2y agoLocal discovery didn't work for me. Loaded it on my (Linux) laptop and (Android) phone (both Firefox), but they didn't see each other. I wonder if it's an IPv6 issue? My two devices might have shown up to the server as two different IPv6 addresses, not the same NATed IPv4 address.
- tamimio 2y agoI tried most of these apps some time ago, and the best ones for large files were Landrop and Localsend. If you have a VPN, you can use them to transfer files remotely too. https://landrop.app https://landrop.app https://localsend.org https://localsend.org
- ranger_danger 2y agolandrop appears to be proprietary
- tamimio 2y agoNo, both are open source https://github.com/LANDrop/LANDrop https://github.com/LANDrop/LANDrop
- ranger_danger 2y agoAh my apologies, there's just absolutely no mention of github or open source on their website from what I could tell, only some corporate policy stuff, so I assumed it was proprietary.
- smusamashah 2y agoI keep a list of about 10 such browser based p2p file sending tools https://gist.github.com/SMUsamaShah/fd6e275e44009b72f64d0570256bb3b2 https://gist.github.com/SMUsamaShah/fd6e275e44009b72f64d0570... Have made this using occasional threads like this one and update it when I find some new tool.
- toomuchtodo 2y agoConsider making this a repo, ala “awesome-local-transfer-tools” or similar. https://github.com/sindresorhus/awesome https://github.com/sindresorhus/awesome
- smusamashah 2y agoA plain text format-less (bullet points only) list like this lot easier to maintain.
- ranger_danger 2y agoHere's some others I've found as well: https://github.com/blenderskool/blaze https://github.com/blenderskool/blaze https://github.com/jchorl/sendfiles https://github.com/jchorl/sendfiles https://github.com/veghfile https://github.com/veghfile https://github.com/midzer/filelove https://github.com/midzer/filelove https://github.com/a-wing/filegogo https://github.com/a-wing/filegogo https://github.com/jeremyckahn/secure-file-transfer https://github.com/jeremyckahn/secure-file-transfer https://github.com/perguth/peertransfer https://github.com/perguth/peertransfer https://github.com/perguth/peermesh https://github.com/perguth/peermesh https://github.com/Peer5/ShareFest https://github.com/Peer5/ShareFest https://file.tc/ https://file.tc/ https://rdrop.link/ https://rdrop.link/ https://github.com/chidokun/p2p-file-transfer https://github.com/chidokun/p2p-file-transfer https://github.com/leocompson/p2p-file-transfer https://github.com/leocompson/p2p-file-transfer https://github.com/dikshantrajput/neighborHoodShare https://github.com/dikshantrajput/neighborHoodShare https://github.com/Sekky61/Katana https://github.com/Sekky61/Katana
- smusamashah 2y ago
- GeekyBear 2y agoIf this is truly "inspired by Airdrop", then it should continue to function without a accessible cellular signal or WiFi network, by automatically configuring one of the devices to act as a mobile Wifi hotspot.
- grishka 2y agoI made NearDrop, a macOS implementation of Google's Nearby Share: https://github.com/grishka/NearDrop https://github.com/grishka/NearDrop
- deleted 2y ago[deleted]
- deleted 2y ago[deleted]