
Sharedrop – Easy P2P file transfer powered by WebRTC - todsacerdoti
https://github.com/cowbell/sharedrop
======
rapnie
Firebase is a really attractive service to quickly and easily bring powerful
features to any app, but I can't help it.. I feel like I'd be including yet
another way for Google to track people. Therefore I avoid any app with
Firebase in them, no matter how cool they are. Am I overly suspicious here?

~~~
asiachick
yes, you are. Google has no incentive to spy on Firebase projects because any
project using firebase could contain sensitive data and any company that
believed Google would spy on the data would not use them so Google would lose
market. The same is true for AWS and Azure

~~~
stormdennis
But since Google knows that companies believe that they won't spy on them for
the reasons you've outlined, then so long as they're real cautious about it...

------
smcleod
I use Firefox Send (works on all browsers), it's end to end encrypted and has
automatic expiry: [https://send.firefox.com/](https://send.firefox.com/)

~~~
timvisee
For the tech savvy people, checkout ffsend as fully featured CLI tool for Send
(shameless plug):
[https://github.com/timvisee/ffsend](https://github.com/timvisee/ffsend)

~~~
hackmiester
Wow! Thank you so much!

------
asiachick
Cool project but it's not remotely a clone of AirDrop. AirDrop is one of those
things that can only be done by Apple, at least on iOS. I have many apps that
have "documents" on iOS. I can select them in the app, pick "Share" and then
pick "AirDrop" and send them to my Mac. AFAIK I can't do that through this. I
go into those apps, select some files and pick send to Safari and I get an
error, Safari doesn't support the files. I go into Safari and pick some file
but Safari or iOS doesn't let me browse the files of other apps.

Maybe it's possible to make a native iOS app you could send the files to that
would use same WebRTC protocol but going the other way, Mac to iOS device
seems impossible. Where as I just tried it via real AirDrop. I choose a file
on my Mac in Finder. Picked Share->Airdrop. Selected my iPhone. I was given
the option to open the file which then gave me a list of all apps that I could
send it to. I picked an app and the app's folders appeared. I chose a folder
to save it to and then ran the app to check it worked. It did.

I supposed Mac to iOS you could make your native iOS app the target and then
from there select the files and "share" them with other apps on the phone.

~~~
OkGoDoIt
Seems like it would be a cool side project to create a minimal iOS app that
simply acts as a share target for this. Similarly for android and Windows.
That would make it much easier to send. You’d still have to either visit the
site or scan the QR code to receive, but making sending smoother would be a
dramatic improvement.

AirDrop is one of those things that is truly wonderful in how easily and
simply it works, but makes me really annoyed with Apple for not opening it and
allowing it to be cross platform. Android had something similar for a while
but it barely worked, and Google never put any effort into making an iOS app
(which obviously would not have been as good as native, but better than
nothing). Bluetooth itself has a function of airdrop-like sharing actually,
but it was mainly used for spam and it’s basically nonexistent in modern
mobile Bluetooth stacks. Something like AirDrop that truly works well cross-
platform but wasn’t easy to spam would be so wonderful.

~~~
jooize
I want an app in the Share menu of macOS that enables me to send content to
any executable (e.g. shell script). Services menu isn't the same and too many
steps to set up.

~~~
toomuchtodo
Not exactly what you're looking for, but I do something similar with
[https://pilotmoon.com/popclip/](https://pilotmoon.com/popclip/)

------
Sean-Der
[https://github.com/saljam/webwormhole](https://github.com/saljam/webwormhole)
is another great one.

* Native Client (in Go so you use pretty much everywhere)

* Uses PAKE for E2E security. Even if the server is hostile they can't get anything.

~~~
gnyman
Chiming in with yet another alternative, I had success with
[https://github.com/psanford/wormhole-
william](https://github.com/psanford/wormhole-william) which is also Go, but
is compatible with the original python wormhole.

I think the main difference is that webwormhole tries to use STUN/firewall
hole punching to connect two nodes, while the original implementation will use
a TCP-TCP relay as fallback.

I recently needed to transfer a 30 GiB file within a restricted network but
the firewall blocked webwormhole, so I ended up with -williams instead.

Hopefully at some point all these project can converge into something that
supports ALL the solutions :-)

------
LeoPanthera
> "ShareDrop allows you to send files to other devices in the same local
> network (i.e. devices with the same public IP address)"

That's an interesting definition of "same local network". So, this doesn't
work for networks not behind NAT? Or for IPv6?

~~~
chabad360
I believe it means same subnet, but it's possible that it only works behind a
NAT because it uses an out-of-network service (Firebase) to tell it who's on a
single network (i.e. who has the same public IP).

~~~
hackmiester
But that's just the thing, you've written the same thing as they have.

> who's on a single network (i.e. who has the same public IP)

Those aren't even close to equivalent. Now that most ISPs offer IPv6, they
aren't even equivalent most of the time.

------
saagarjha
I guess it would be a bit better to call it “inspired” by AirDrop rather than
a “clone”, as it doesn’t use AWDL for discovery (rather, it seems to use
Firebase).

~~~
bouke
And the internet requirement also makes it definitely not a clone. This is
addressed in the readme, but still, don’t call it a clone then.

------
reeddavid
Looks like it doesn't work on iOS.

What happened to AirDrop? It used to "just work" and now it rarely works.

In the last two days I experienced: \- Unable to discover devices (a constant
AirDrop frustration) \- Transferred a video from iPhone to Mac, had to wait
for video to be converted first? \- Transferred video from (different) iPhone
to Mac, transfer repeatedly resulted in a corrupt 0 byte file

AirDrop has become totally unreliable.

~~~
r00fus
Could the latter issue be due to a HVEC codec mismatch? I have an old Mac and
it doesn't handle that codec well.

~~~
reeddavid
Yes, I investigated the conversion issue and it seems it's due to HEVC / H.265
video being the default in iOS 11, but not supported in older versions of iOS
/ OS X. I was transferring to a Mac running OS X 10.13 High Sierra.

I had always thought of AirDrop as a straight file transfer, but that's not
the case.

------
shassard
Snapdrop is also available:
[https://github.com/RobinLinus/snapdrop](https://github.com/RobinLinus/snapdrop)

------
AnonC
This looks quite useful for cross platform transfers on the same network. I’ve
been using AirDroid [1] for quick cross platform transfers on the same network
and Firefox Send for transfers over the Internet.

When I tried this on iOS (different browsers, though they’re all using the
same engine underneath), it was stuck on the loading screen. Turning off
content blockers didn’t have any effect.

Edit: Figured out that this doesn’t work on iDevices (at least older iOS
versions). There’s an alternative called SnapDrop [2], whose FAQ has this
question and answer:

 _> SnapDrop a fork of ShareDrop?

> No. ShareDrop is built with Ember. Snapdrop is built with vanilla ES6. I
> wanted to play around with Progressive Web Apps and then I got the idea of a
> local file sharing app. By doing research on this idea I found and analysed
> ShareDrop. I liked it and thought about how to improve it. ShareDrop uses
> WebRTC only and isn't compatible with Safari browsers. Snapdrop uses a
> Websocket fallback and some hacks to make Snapdrop work due to the download
> restrictions on iDevices._

SnapDrop looks like a better alternative to me.

[1]: [https://airdroid.com](https://airdroid.com)

[2]:
[https://github.com/RobinLinus/snapdrop](https://github.com/RobinLinus/snapdrop)

------
MrGilbert
I'm using "Just an Email" [1] for quite a while now, on a self-hosted server.
QR-code generation has been integrated - I simply press "Start" on my
computer, scan the QR code with my mobile, and can share links, files and
texts in realtime. That's easy enough for my use-case.

[1]: [https://github.com/mustakimali/just-an-
email](https://github.com/mustakimali/just-an-email)

------
upofadown
To get reliable WebRTC don't you need a Turn server to relay your traffic when
the NAT is too bad? Where does this get a Turn server?

~~~
szimek
Hi! ShareDrop author here. It doesn't use any TURN servers and that's why it
doesn't work if one is required.

------
geddy
I’ve been using this for quite a while, and recently I’ve run into the trouble
that the fire base account was overcapacity. Not sure if it’s been fixed since
then, but I’ve had to use the QR code instead of the automatic detection.
Still, really nice tool.

~~~
sleet
Seems to still be an issue:

> FIREBASE WARNING: The Firebase database 'sharedrop' has reached its peak
> connections limit. If you are the Firebase owner, consider upgrading.
> ([https://sharedrop.firebaseio.com](https://sharedrop.firebaseio.com))

------
mmwelt
Looks pretty good, but it also seems to have stagnated. Latest commit was in
January 2019. It would be nice to have a shorter URL for rooms, so it's easier
to share with others.

------
rvense
I would love to have something like this but self-hosted and without the
Firebase dependency. But maybe this would be a starting point.

------
bepvte
There are many of these webrtc file sharing services. Most of the time, the
traffic ends up getting relayed.

------
Wowfunhappy
Is this actually transferring over LAN? So you could share a very large file
on a slow connection?

~~~
anaganisk
Yes, it can

------
raspasov
This is pretty neat, just tried it between iPhone Safari and MacOS Safari.
Worked well.

------
guessmyname
> _Sharedrop: HTML5 clone of Apple 's AirDrop – easy P2P file transfer powered
> by W_

Powered by W? Is W a new programming language or JavaScript framework?

It looks like @todsacerdoti is not aware that Hacker News submissions are
limited to 80 characters in the title. They probably wanted to submit _“HTML5
clone of Apple 's AirDrop - easy P2P file transfer powered by WebRTC”_ which
is 73 characters long and represents the current project headline on GitHub,
but then they added the project name at the beginning _“Sharedrop:”_ turning
the title into a 79 characters long string cutting “WebRTC” out. I think this
would have been enough: _“Sharedrop - Easy P2P file transfer powered by
WebRTC”_.

~~~
freeCandy
Looking at the GitHub page, they probably wanted to write WebRTC.

