It is 2019, and it is quite surprising - and disappointing - that we STILL haven't universally solved the means to easily, securely, and (yes, I'll use this term again) universally share files. I wish we could share files in a peer-to-peer fashion securely without hindrance of mobile platform, nor blockage of network MiTM, etc. </sigh>
Have you taken a look at magic-wormhole[1]? I've started using it recently and it's insanely easy to use.
It does have a centralised signalling server for key exchange between peers, but it does attempt to do peer-to-peer data transfer (only falling back to a TURN-style relay if both clients are behind NATs and aren't on the same local network). An explanation of the cryptography and design was given at PyCon 2016[2]. It also has built-in optional Tor support (though I'm not sure if it attempts to use an onion service for data transfer).
Magic wormhole is good, and I've used it before, but it's never as fast as it could be. Something like piping to netcat is always faster. I know it's possible (albeit with a lot of work) to do this over HTTP, but google drive is probably the only site that can mostly saturate a connection. Can any one link more info on how exactly they achieve this? The only trick I know of is a better TCP congestion control algorithm.
I did not know magic wormhole existed. I made a simple nodejs implementation of a very similar app. It used WebRTC so maybe it could be faster. Let me know if you want to try it out!
This is one of many reasons why I have a terminal on my phone, I can just apt install magic-wormhole and use it like on any other system.
(The technical reader will note that a terminal does not give you apt, but mentioning that I have Debian running on the phone is more confusing, as it sounds like I replaced Android (which I did not) or maybe that it costs a lot of battery (the tools are idle when not in use, unlike many apps unfortunately...).)
Sure, I can use wormhole on iSH on my iPhone/iPad if there are no alternatives. But there are alternatives, so I’ll definitely stay the hell away from it given the terrible ergonomics.
Maybe someone should write a magic-wormhole mobile client. It wouldn't need a complicated UI at all, and you could (try) to use Kivy[1] to avoid having to rewrite all of the Python bits. I might even try to do it as a weekend project, actually (though I suck at mobile development -- anyone else would probably be a better choice ;]).
I used AirDrop on an airplane at cruising altitude over the ocean, with no onboard wifi available. It worked just as perfectly as it did at home.
The pilot had taken a video of the Falcon 9 second stage separating from the first on its first launch that docked with the ISS. He then walked through the cabin sharing with anyone that was interested.
That is correct, AirDrop works without Internet. It's unfortunate that Google and Apple have created these respective systems with no cross-compatibility. There's really no technological reason for it, but an obvious business reason.
And if it was purely peer-to-peer people would complain that it doesn't work in their particular use case. Personally, it's rather nice sometimes to 'fire and forget' a file transfer with a tool like this. All I need to worry about is if I successfully uploaded the file. I don't need to worry about their internet connection, keeping some daemon running on my side, keeping power on my side, remembering to delete that file that I only kept around so somebody could download it from my computer, etc.
The point is, options are good. Most of us subscribe to the Unix philosophy of "Write programs that do one thing and do it well" so why are so many advocating for a pancea solution that does everything for every use case?
I just wish they'd hurry up and make the android app useable. I signed up for the beta and was pretty disappointed as my uploads were cancelled if my screen locked or, horribly enough, rotated ...
Android is Linux, you can always just install it the normal way and use it from a terminal. Maybe that's what you mean by unusable (a terminal isn't very user-friendly, but it solves the file transfer / app availability problem).
If I remember correctly, you can configure (I don't know what the default is) to power save or even turn off WiFi on Android when you turn off the screen. Are you sure that's not interfering with this beta app?
Opera Unite did it (and that's about the fifth time this year I've mentioned Opera Unite in response to a comment bemoaning a lack in currently embedded internet systems/apps).
Personally I've been using Nitroshare for years in my home network and it works like a charm (between Windows, Linux, and macOS). Android is also supported, but not iOS (I saw someone created an iOS app, but I doubt it works still).
Bluetooth file sharing works fine on just about every phone I've used. Bluetooth just isn't built for high-bandwidth applications like this, meaning while it's fine for a photograph, you will have issues with larger transfers. That's not a flaw in the implementation, bluetooth just isn't built for high transfer speeds. It is built to transfer enough data and operate at low power, not to be just another wireless NIC.
https://files.google.com/ is a standard and it works on the vast majority of phone sold this year, by every manufacturer except Apple. Checks all 3 of peer-to-peer, secure, no MiTM network blockage. It's only 11MB.
Many popular file manager apps on android have peer-to-peer xfers as well, via WiFi direct, etc.
EDIT - As people are pointing out this isn't universal because it doesn't work on Apple devices or desktops / laptops, but it's as close as I can think of currently.
- "is a standard"? What does this mean? Google Files is not a standard of any kind.
- others have mentioned that this is very far from universal. Whatever about Apple devices, you're also discounting all non-mobile devices. Transferring files easily from computer to phone is probably the most common use-case. Yes, you can use Google Drive for that, but that's neither p2p nor seamless.
- the above commenter mentioned wanting a "secure" solution. That's a bit of a subjective term, but I would guess, at least on HN, the typical one would be e2e encrypted, and private. Google Files is neither of these things.
- the p2p function is severely limited in that it requires both a Google account, and location services to be enabled. Neither of which are necessary to initiate a p2p file transfer.
(as another commenter has mentioned), if we're just looking for "the closest thing", I would suggest https://send.firefox.com/ It isn't p2p, but it is secure and universal, so it ticks a lot more boxes overall.
Almost. People need to install the app to use its transfer functionality, and it does not work with computers.
We're still far from the universal, no-install solution that should've existed for so many years now.
Well, no install basically means every OS vendor needs to ship a proper and compatible implementation (hah yes that'll surely happen) or you basically need something web based which means it needs an internet connection for bootstrapping.
It doesn't matter to me how many Android users there are globally when we're talking about short range file transfers. I'm not bluetoothing files to somebody in India.
The US's market share split is more like 55% Android and 45% iOS, so anything that doesn't support both platforms is going to fail half the time here.
The situation isn't being helped by another proprietary solution that won't be cross-platform. (I'm an iOS dev, and I don't see integration of this possible without using private API's, and this would also fall under the 'Duplicate existing service' issue.)