
Show HN: HTML5 clone of OS X AirDrop – Easy P2P file transfers in a browser - szimek
https://www.sharedrop.io/
======
skrowl
It sounded interesting until: Allow www.sharedrop.io to run "Adobe Flash"?

Then: We're really sorry, but your browser is not supported. Please use the
latest Chrome for Desktop or Android or Opera. Firefox support is coming soon!

So basically, this is a webkit app, not a HTML5 app?

~~~
szimek
No idea why it asked for Flash.

At this moment the app works only in Chrome and Opera, because Firefox doesn't
support HTML5 FileSystem API. There's a polyfill for that, but we had some
issues with it, so we've decided to release it anyway. We'll continue working
on Firefox support. The whole source code is available on GitHub
([https://github.com/cowbell/sharedrop](https://github.com/cowbell/sharedrop)),
so anyone can help.

~~~
alexjh
I'm running Chrome version 26.0.1410.63 on Linux, and I'm getting the not
supported error message. Is there a minimum Chrome version?

~~~
szimek
I think it worked since 32. The current stable Chrome version is 33.

------
NathanKP
This is really amazing! I had a bit of trouble on my first attempt because I
was connected to a VPN, so ShareDrop was considering me to be in the 10.*
range (my local IP address on the VPN) while my coworker on the same router
showed up in the 192.* range. I was able to send him a file, but he obviously
couldn't send me one back because he wasn't connected to the same VPN.

Once I disconnected from the VPN then ShareDrop starting using my local 192.*
IP address instead of my remote VPN address and it worked both ways.

~~~
conductor
Does this mean that any JavaScript code can determine the client's local IP
addresses? Then it can be used for identification, I think browsers should let
the users white-list the sites which are allowed to use WebRTC.

~~~
szimek
It seems so. I was a bit surprised myself, but this data is taken from the
info that browsers send to each other to determine the best path for P2P
connection. The actual code for determining local IP is taken from
[http://net.ipcalf.com](http://net.ipcalf.com).

------
0x0
Cool, but one major advantage to airdrop is that it doesn't require a local
network at all, so you can airdrop even without any wifi AP in range.

~~~
szimek
Sure, we mention it even in the README
([https://github.com/cowbell/sharedrop/blob/master/README.md](https://github.com/cowbell/sharedrop/blob/master/README.md)).
There's probably a workaround if you have a phone with internet access - you
could create a local WiFi network on it and connect to ShareDrop through it.
Haven't tried it though.

~~~
katowulf
And one advantage to this is that it anything that can view a web page can
reach it. I don't have to ask my grandma to install an app on her phone to get
a picture on her desktop computer from me : )

------
nashashmi
I believe the people of Qatar will have an issue with this because they all
use a single public IP address. So any Qatari could send a another Qatari a
file if they were all to log on.

------
utopkara
Noob question: It seems like websockets is more appropriate for sending files
to peers, why would they go for webrtc?

~~~
arcameron
No central server to intercept the file in transit

------
headShrinker
"We're really sorry, but your browser is not supported. Please use the latest
Chrome for Desktop or Android or Opera. Firefox support is coming soon!"

What could possibly be the reason they wouldn't support webkit based browsers?

Safari 7.0.2 OS 10.9.2

~~~
teleclimber
Because it uses webrtc.

[http://caniuse.com/#feat=rtcpeerconnection](http://caniuse.com/#feat=rtcpeerconnection)

------
rainmaking
Holy fucking shit this is the best thing since sliced bread. You don't know
how much I hate emailing file attachments.

~~~
szimek
Hopefully, we'll add sending files between networks pretty soon as well.

However, it's already possible with similar WebRTC based services like
[https://www.sharefest.me/](https://www.sharefest.me/) or
[https://rtccopy.com/](https://rtccopy.com/).

~~~
rainmaking
Thanks!

Ironically, most of my file emailing does in fact take place within the same
network.

~~~
nashashmi
Why no use of SMB networks? Always puzzled me.

~~~
rainmaking
Because configuring SMB on each machine is hard and takes time.

------
marquis
I opened this with the Hamachi VPN open, and suddenly could share files with
my computer on the other side of the world. I have a Mac so usually do this
via the built-in sharing but if it were Windows it's certainly easier than
messing with Samba.

------
snikch
I had a look at doing this myself recently to do iPhone -> Laptop transfers.
Does this work for mobile -> desktop? I didn't think that WebRTC was available
on mobile safari and therefore wouldn't work.

~~~
szimek
It depends on what you mean by "mobile" :) It works between Chrome on Android
and desktop. Unfortunately, Safari (neither desktop nor mobile) doesn't
support WebRTC.

~~~
dhfromkorea
This is really cool. I am curious why Chrome on iOS wasn't made available yet?
(i.e. if there was technical roadblock that made it difficult for you to do
so.)

------
nanch
Something similar (with a server in the middle) for android<->computer is EZ
Drop: [http://ez.dropper.co](http://ez.dropper.co)

~~~
abemassry
Another one with a server in the middle:
[https://wsend.net/upload](https://wsend.net/upload)

------
sfaruque
I'm getting transfer speeds of ~970KB/s (checking using iStat). Averaging
nearly 1MB/s isn't bad, but I'm curious, could this go faster?

~~~
szimek
Yeah, it probably could. I think that
[https://www.sharefest.me/](https://www.sharefest.me/) has faster transfer
speeds, especially that it allows you to download the same file from more than
one peer.

------
christiangenco
Very cool! I love the P2P aspect.

I have a similar project that drops files in your dropbox account:
[http://dbinbox.com](http://dbinbox.com)

------
rpowers
Looks like a clone of my friends page:
[http://www.sumodrop.com](http://www.sumodrop.com)

*edit: I guess 'clone' is too strong. I meant to imply it has similar functionality, not that it is carbon copied. Yes, I goofed.

~~~
szimek
Pretty cool. It does upload the files to S3 though, right?

ShareDrop in theory should be much faster (especially on local network) and
more secure, as it sends files directly between devices without any server in
the middle.

~~~
rpowers
True. I think the difference would be more obvious with popular files. Say
you're at a lecture with 400+ students around you and you want to share some
content. Hitting an S3 bucket might make more sense than handling 400+
connections locally.

------
lerxst
This is really cool!

Initially, I tried using this between a computer on my 2.4 GHz band and a
computer on my 5 GHz band, and I guess the JavaScript wasn't able to determine
the local IP addresses. However, after switching to the same frequency it
worked.

------
barbs
A cross-platform (but not web-based) open-source LAN file-transfer tool that
I've used in the past is dukto:

[https://code.google.com/p/dukto/](https://code.google.com/p/dukto/)

------
katowulf
And it uses Firebase, my favorite real-time service! Awesome stuff gents.

------
modarts
_this_ is the kind of stuff I come to HN for. Well done sir.

------
zacinbusiness
This is awesome and it makes me wonder about other potential capabilities.
Could a similar method be used to create two-way text chat, for instance?

~~~
szimek
Sure. WebRTC allows you to send any data, audio and video directly between
peers. Though to be honest there are much easier ways to create text chat.

~~~
zacinbusiness
Oh I was thinking about a collaboration scenario. Something next door to pair
programming where two people are working on a document together but just not
simultaneously.

------
thearn4
Great stuff! I'm hosting a programming meetup this friday at a coffee shop,
seems like a good opportunity to put it through it's paces.

------
widdma
This is really nicely done, but it'd be nice to have some sound and/or popup
notification when it's running in the background.

------
hmhrex
Wasn't sure if this would be useful to me without mobile support, but man, it
really saved my ass today. Thanks for this.

------
ulfw
"Please use the latest Chrome for Desktop or Android or Opera." Hm yea...
maybe not.

------
gabrielstuff
Nice one !

------
panbartek
seriously cool stuff

------
chriscareycode
It's an EmberJS app :)

~~~
szimek
Yes it is :)

------
chewbacha
wow, I'm blown away

------
rchgonzaga
awesome ... super cool !

------
est
it got my vmware IP address, not the actual one.

------
atmosx
really cool and helpful.

------
saltcookie
U all should check out [http://sumodrop.com](http://sumodrop.com)

~~~
saltcookie
it works on mobile browsers also

------
saltcookie
u guys should check out [http://sumodrop.com](http://sumodrop.com)

