ZH version is available. Content is displayed in original English for accuracy.
Advertisement
Advertisement
⚡ Community Insights
Discussion Sentiment
78% Positive
Analyzed from 3805 words in the discussion.
Trending Topics
#airdrop#https#works#localsend#devices#apple#com#using#android#files

Discussion (142 Comments)Read Original on HackerNews
One beauty of Airdrop is that it creates and handles that local network automatically under the hood (as far as I understand). So you could be out on a hike with friends and Airdrop something.
The workaround I've found after switching to an Android device has been to teather my connection to my friend's device, which ends up creating a LAN that Localsend can work through, but this is not as nice an experience.
That's the part that's hard to replicate. LocalSend and most alternatives need an existing shared network because they're just TCP/IP, they have no way to negotiate a direct radio link without OS-level support. Even Android's QuickShare, which does peer-to-peer via WiFi Direct, drops your existing WiFi connection on older devices because the radio can only be associated with one BSS at a time.
The EU interoperability mandate lxgr mentions would theoretically require Apple to expose this, but AWDL interop would mean licensing or reverse-engineering some fairly deep radio scheduling logic, so I'd expect compliance via a different (probably slower) path.
This seems like such a basic solution that I'm surprised that it isn't required by any of the mainstream standards before WiFi Aware. I wonder if this was some sort of a patent issue or similar.
However the path towards this type of interoperability would likely go through additional standardization via IEEE 802.11* and the Wi-Fi alliance. At which point Apple will need to implement and support the new standards. There is no need to reverse engineer AWDL to meet the new European interoperability requirements. What is needed is for wifi chipset OEMs to implement such standardization. Something pretty routine of them.
It can be expected that Apple will also maintain the proprietary AWDL in order to support their legacy devices.
Maybe a network nerd can chime in - is this implementation so difficult that it's unrealistic we'll see an OSS version?
Say you've got an android phone, windows PC, and a linux box, and you want to be able to quickly drop files from each one. unless we get some kind of cooperation across all three platforms at the OS level, you'd at minimum need to install some kind of client into each system - when the nicest feature of airdrop is that it's baked into all of Apple's OSs, in my opinion. even if it worked exactly the same way, but had to be installed, I think it would see less use - and there's no real way for a single OSS project to do that across multiple OS platforms, to my knowledge
When Quickshare drops your Wi-Fi connection, its not Direct anymore, that's just soft AP from an error, and if that doesn't work, it fallback to Bluetooth. Bluetooth is used for provisioning as well.
The only reason why many apps don't use it is because of buggy implementation, some phones require a full restart after using Wi-Fi Direct to fix connectivity issues, even Motorola's own product line with Smart Connect use it only with certain models, despite having Wi-Fi direct due to poor implementation (can be forced). They even have a white list of supported adapter for the Windows app since direct is used as well, can be unofficially force enabled for Mediatek based adapters (rare on some laptops).
Back in 2016 things were much stable on Android phones with Wi-Fi Direct, even with old Blackberry, there were many apps including file managers that used it before it was essentially dropped, even for onboarding/provisioning apps like HP printers...
Apple's Airdrop success is about gaining traction, in the era of Wi-Fi Direct or other methods, most people were not aware of such features, as it required an app to be installed, they used email/messaging, even when Airdrop was first introduced and preinstalled, it took years for the average person to use it.
- Create an ad-hoc Wi-Fi network on one device.
- Connect the other device(s) to that Wi-Fi network.
- Now run Localsend.
The first two steps are a bit of a drag, and the fact that Airdrop handles it is what makes it so frictionless to use.
AirDrop is fantastic for sharing files with people you don't know/just met - if we have to find and agree to join the same wifi before we interact this adds significant friction.
If AirDrop had required people to join the same WiFi first, the feature would never have taken off the way it has among non-techy users.
But it is not super reliable or friendly.
[1] https://github.com/spieglt/FlyingCarpet
With Airdrop you have trivially easy, "just works" sharing with people in proximity. It works great between iPhones and Pixel phones now they support it. It just needs support to spread to more Android devices.
Funny enough, I encounter so many problems trying to share things via AirDrop with friends, family, and even my own Apple devices that I just tell everyone to install LocalSend and I find that things work better.
I’m not sure why that is, because AirDrop used to work pretty well for me. But it’s been an exercise in frustration more often than not for me.
(Obviously, LocalSend works only as long as everyone is on the same network.)
https://news.ycombinator.com/item?id=47935026
Usually, but not always.
> The workaround I've found after switching to an Android device has been to teather my connection to my friend's device, which ends up creating a LAN that Localsend can work through, but this is not as nice an experience.
"You could fix that by builing a rail track and using a train."
The whole point of these solutions is to not have to transmit data over the internet, it should work over a local dynamic connection.
Last RCE in Airdrop, could be made into worm, it was found by whitehat, luckily for Apple there are still people, which are willing report exploits for little money, so billionaires can enjoy their life on yachts.
- for whatever reason, even the same sized directory takes much much longer than its corresponding archive version when using this tool
This one fails the "must not require an existing Wi-Fi network that both peers are connected to" criterion.
[1] https://craphound.com/spamsolutions.txt
From windows to android to iOS.
A similar project but this one works entirely in the browser and can connect to clients beyond your local network with "public" rooms
They forked sharedrop after it and snapdrop got acquired and enshittified by LimeWire, whoever that is now.
From my earlier comment about a similar thread a couple days ago about which file sharing apps people use [3]:
[0] https://github.com/n0-computer/sendme
[1] https://github.com/tonyantony300/alt-sendme
[2] https://github.com/n0-computer/iroh
[3] https://news.ycombinator.com/item?id=47906587
But I just wish Apple fixed AirDrop, every time I go to use I have so little confidence in it, it often doesn't see devices or if you have multiple Mac users it will confuse them, showing you the same Mac device twice without telling you which user it is
Like in my case, the only files I generate on my phone are photos and videos, and these get backed up by Immich, which I can then share with someone by sending them a link to the files/album in question. I imagine normal folks would use iCloud or Google Photos for the same task.
For syncing other files like documents and such, I use ownCloud OCIS, and I'd imagine most other folks would use something like DropBox or iCloud, or even just email or WhatsApp the files.
For local network transfers of say ISOs or something, I'd just copy them over SMB, which is pretty much universal and doesn't need any special app. Or even just plug in a hard drive, if I'm doing backups.
So I don't understand why I should be using this.
(I'm all for alternatives to AirDrop. I'm all for AirDrop inter-operability. Nothing against those things.)
For LAN file sharing, you can do it with any browser. Implementations like: https://sendfiles.dev/ (though there are many others)
I am late to the party, but I was also building in this space in the last year,
Basically I did a peer to peer filesystem named keibidrop: https://keibidrop.com/
I made it public last week. It does what local send does, but also via WAN. Still did not launch the mobile apps.
And 1 up is that it has also a virutal filesystem that is synced both ways.
repository is here: https://github.com/KeibiSoft/KeibiDrop
The code is open source, except for the UI, and I did benchmark on loopback vs localsend (local send is faster :D )
https://keibisoft.com/blog/keibidrop-benchmarks-vs-competiti...
and was also trying to get a commenting thread in /r/golang yesterday!
behind the hood I went with PQC, + gRPC + FUSE.
With a CLI tool as well: https://github.com/timvisee/ffsend
Test:
Basically my Garmin Edge and iPhone can do this. Magic-Wormhole fails in all test cases.Implementation shall be able to negoiate a connection locally (e.g. Bluetooth) and upgrade to peer-to-peer WiFi if need (Garmin doesn’t need that part, GPX are usually smaller than 1024 KB).
It really helped cement how great open source apps can be for me.
Previously I was using syncthing or had to install ftp server, used wormhole after packing all my files into one, etc. Android QuickShare never worked for me (wouldn't help me much with sending to the pc either).
It has some rough edges (ie: on multi-homed devices it's less that ideal to see the one octet that matters, when the list is very long scrolling whilst sending will cause the process to crap out), but other than that it's always reliable.
I'm very happy with it too.
I do not love that it is a heavy electron app that takes many seconds to launch on my mid-spec machine and burns 20% of an entire CPU core the entire time it is running.
Why can't we have a simple command line tool that works?
I wonder if any of the alternatives do the same.
I tried on three phones, two of which are using the same account, I'm reasonably confident I am technically competent to not make silly mistakes, though the best I've achieved was endless wait.
I had better success with IR and BT file transfers. Hell, even spinning a local http server (with python -m http.server) works better than quick share.
Then you can transfer files to and from uncool people with Android or Linux phones/computers using localsend.
I've never found this difficult and often use hotspots when I'm overseas - it's cheaper to get internet for one phone and share it with the others for example.
https://web.dev/articles/web-share
https://developer.chrome.com/docs/capabilities/web-apis/web-...
https://github.com/localsend/web
Here's my question, y'all. What is the deal with the magic Syncthing uses and why can't we use it for stuff like this? And well, for everything?
(I've been doing this stuff for years and I still can't wrap my head around this question)
maybe eventually something like quickshare & airdrop mold into an interoperable thing but i'm not holding my breath
Many have tried, I don't think anyone has succeeded.
Supposedly the EU interoperability mandate will make this possible going forward, though? (The tricky part is usually not getting your device to speak some protocol, but to get Apple devices to actually respond to your attempts.)
What's the main value prop over wormhole? That it works from the browser?
That you can set the recipient so it will auto-accept from the trusted senders.
And for me that in Android I can do Share to....localsend to do it faster than with wormhole.