Brian Lovin
/
Hacker News
Daily Digest email

Get the top HN stories in your inbox every day.

tbiehn

Not the fort-knox implementation it claims on the tin.

'LocalSend uses a secure communication protocol that allows devices to communicate with each other using a REST API. All data is sent securely over HTTPS, and the TLS/SSL certificate is generated on the fly on each device, ensuring maximum security.'

How do they achieve maximum security while generating X.509 certs on device?

Let's look; 'https://github.com/localsend/protocol#2-fingerprint'

'When encryption is on (HTTPS), then the fingerprint is the SHA-256 hash of the certificate'

Confusingly there is a HTTP non encrypted mode, and the docs claim the fingerprint only used to avoid discovery collisions.

Out-of-band [visual comparison / QR code scanning step] sharing of fingerprints COULD be acceptable to prevent 'man in the middle' attacks, however the documentation doesn't seem to indicate that this detail is surfaced or shared with the user. The discovery protocols look 'hella sus', but most local media sharing and discovery is.

LtdJorge

I think the fingerprint is just used to identify unique devices in the network. It doesn't have anything to do with the security, does it?

jauntywundrkind

> with nearby devices over your local network

Still hoping for some alternatives that can do ad-hoc communication, without any network infrastructure.

Wifi got a bunch of ambient discovery capabilities a bit back that seems exactly targeted to this stuff. Neighbor Awareness Networking, or WiFi Aware for the trademarked industry packaging there-of. It was built into Android 8. There's also even older wifi-p2p/wifi direct (again, spec vs industry branding for the same thing).

I haven't looked in a bit, but I'd love to see a Linux based toolkit around this, that interops with Android, but isn't so handcuffed down by Google.

Google - like Apple - has some ultra proprietary tied-to-your account peer-to-peer stuff. There's Nearby Connections for app devs, such as for AR games. There's Nearby Share for file sharing, which I hear might maybe be getting a Windows implementation but again seems locked down. I want so bad to see some drive forward on the transport layer, & we have so much to go with. Its a solid bet hostapd technically supports all these capabilities (it just does everything under the sun in wifi best I can tell), but we haven't harnessed this source.

AceJohnny2

> Wifi got a bunch of ambient discovery capabilities a bit back that seems exactly targeted to this stuff. Neighbor Awareness Networking, or WiFi Aware for the trademarked industry packaging there-of. It was built into Android 8. There's also even older wifi-p2p/wifi direct (again, spec vs industry branding for the same thing).

The problem with these is that interop is a nightmare. And interop is exactly what you want to get 99.9% working, otherwise the tech is moot.

Apple, and to an extent Google, can do it thanks to their control of the vertical stack. Open-source... has a harder time about it.

smashed

How exactly is Apple good at Interop?

Their whole market strategy is the exact opposite. They only implement standards when forced by regulations or overwhelming market forces.

AceJohnny2

You're not wrong, but I meant interop within their ecosystem. The walled garden is a very comfortable place.

jeffhuys

Homekit is one

thombles

Also good luck finding a NAN-capable WiFi adaptor that you can plug in to your regular Linux PC, Raspberry Pi, etc.

grishka

Nearby Share isn't locked down and, in fact, works just fine with zero Google involvement. Google only needs to be involved for limited device visibility and all the phone number stuff that entails.

Here's the protocol docs — both devices just tell each other that they're "unable" to do "paired key encryption" and the connection continues: https://github.com/grishka/NearDrop/blob/master/PROTOCOL.md

MayeulC

> Wi-Fi NAN

I have been very interested in this. Sadly, finding hardware that supports it (both HW and SW) seems quite hard at the moment. This stackoverflow answer mentions a few, but I have no idea about software support: https://stackoverflow.com/a/54214808/3795597

I tried poking around the Linux drivers and userspace tools (which required reading some source code, the documentation is pretty bad), I summed up some of my finding there: https://superuser.com/a/1786039

So far, I only encountered two phone series that supported NAN: POCO and Google Pixel. So much for interoperability. I still wonder if it's possible to build a compatible implementation leveraging Monitor mode. This is how Owl (open source "Airdrop"/ADWL implementation) does it: https://github.com/seemoo-lab/owl

pimlottc

> Still hoping for some alternatives that can do ad-hoc communication, without any network infrastructure.

That’s the real benefit of Airdrop. It’s so nice when you’re traveling to be able to share photos with someone you just met without worrying about WiFi hotspots, mobile data plans or any of that. You can be out in the middle of the ocean and it just works.

silisili

We used plain ol bluetooth for this 20 or so years ago. I haven't used AirDrop but assume it's got better UX, but otherwise, what makes it special?

thombles

Speed, mostly. Ad-hoc wifi can push tens of MB/s, which matters when sharing photos and videos at today's sizes.

gilgoomesh

AirDrop uses Bluetooth for local device discovery and then attempts a send over the following protocols:

1. local IP network, if available

2. ad hoc WiFi, if possible

3. the Bluetooth connection

4. fallback via Apple's servers (newest iOS only)

It's primary advantage is its ability to negotiate over a number of different interfaces and protocols, as needed.

isodev

You’re free to swap files via regular Bluetooth with an app that supports it.

AirDrop is fast (actual transfer happens over WiFi) and easy - makes it so you don’t need to know anything about Bluetooth to use it. It’s a challenge to find an alternative app with the same level of functionality.

goenning

Better UX that makes it actually usable

baq

4k video isn’t exactly quick to transfer over Bluetooth

jmercouris

literally nothing, they just disabled blue tooth transfers on iOS and came up with airdrop as if it was something novel

WhyNotHugo

I'm not sure that the benefit really pays off. AirDrop doesn't need network infrastructure but it does need a wi-fi adapter needs to support active monitor mode (it's extremely common for hardware to lack support for this).

The requirement for network infrastructure can be worked around by creating an ad-hoc wifi network.

pimlottc

> The requirement for network infrastructure can be worked around by creating an ad-hoc wifi network.

Unfortunately for 95% of people that you want want to share files with, that’s a total dealbreaker.

minhmeoke

If you don't have a network connection, you can setup an adhoc hotspot on any Android 9+ (Settings > Network & internet > Hotspot & tethering https://support.google.com/android/answer/9059108) or iPhone (Settings > Personal Hotspot), then connect to it using any WiFi-enabled device.

A useful filesharing utility that a friend wrote is https://github.com/akovacs/uploadserver - it's basically a nicer version of:

    python -m http.server 8000
Download prebuilt binaries for Linux, Windows, Mac OS from https://github.com/akovacs/uploadserver/releases/ or install from source if you prefer

Determine your machine's IP address using:

    # Linux
    hostname -I

    # Mac
    ifconfig

    # Windows
    ipconfig
Start the file server, and then navigate to it using the web browser of your choice on any device connected to the WiFi network (no need for a client application).

    chmod +x upload_server
    ./upload_server
Navigate to the server's ip address (indicated by the hostname -I command you ran earlier) port 8000 in the browser of your choice and upload files using the web UI or directly via curl:

    curl -X POST --data-binary @file_to_upload.txt http://192.168.1.X:8000/uploaded_file.txt
Then download the file to another machine or mobile device either from your web browser or via a commandline tool:

    curl http://192.168.1.X:8000/uploads/uploaded_file.txt --output downloaded_file.txt

guappa

I use qweborf. Just right click "share this over http". Then it has some settings where I can put a password.

charles_f

This fits the bill, but it's noisy https://github.com/ggerganov/wave-share

ansgri

I thought "noisy" was about extra traffic, or cluttered UI, but wow, it uses actual sound.

harrygeez

The most awesome thing about Airdrop is when you can find the other device, and even more magical if you can do that on the first try: you can send files without being on the same network or heck, you don't even need to be connected to the Internet at all. That is neat.

steve1977

It is also a bit like black magic when it just won’t work and you can’t figure out why.

toddmorey

That’s been my experience, too. I feel like I’m in some cargo cult suggesting it to others.

“We’ll just do these steps and poof it will be on your machine! One second… Hang on… let’s try again…”

reidjs

9/10 times they haven't set the permissions to receive files through airdrop. It used to be open, but that was a huge security vuln. People could just airdrop whatever picture they wanted to all the iPhones on an airplane for example

ElCapitanMarkla

Had this exact thing happen tonight. I wanted to airdrop some photos to my MacBook, worked from my partners phone but my phone just wouldn’t send them. My phone and laptop could see each other in airdrop but they refused to send / accept the photos. Ended up texting it to myself in iMessage and opening that on the MacBook.

zitsarethecure

I call this the "What is a computer?" effect.

h0l0cube

Universal clipboard is pretty great too. It's another thing I wish was just an open standard that all the things supported, not just the Apple ecosystem.

jwells89

I get a lot usage out of related cousin feature Universal Control, which is the best KB/mouse sharing implementation I’ve used. It manages to feel almost identical to a physical connection even over WiFi, which nothing third party has been able to swing… Synergy, Sharemouse, etc need all involved machines to be connected to the network via Ethernet to pull that off.

Interestingly, it seems to present shared KBs and mice as physically connected devices. Any time I use Universal Control on a Mac I haven’t before the little keyboard identification assistant that opens when you directly plug in a keyboard pops up.

h0l0cube

I'd never reflected on the irony of these features being called Universal when they only work on Apple devices, but the 'just works' nature really does feel good.

I sometimes need to work on mobile development, so on advice from a sibling comment I installed KDE Connect, and it's actually pretty great and does copy/paste and remote mouse/keyboard pretty well, but you do have to a) enter the app, b) select the device, c) then finally choose the thing you want to do. They've made it about as frictionless as possible, but it won't be the same as first-class OS-level support. e.g., I can just copy some text on my Mac, and paste it a second later on my iPhone, without any manual orchestration

vladxyz

Pushbullet did it nearly a decade ago[0]. KDE Connect now does it better, and seems to be available on pretty much anything you'd want it on[1].

[0] https://blog.pushbullet.com/2014/08/20/introducing-universal... [1] https://kdeconnect.kde.org/download.html

h0l0cube

I hadn’t encountered KDE Connect before, I might check that out for MacOS to Android. It looks like they’ve done the best they can on iOS, I’m spite of how locked down it is

Gigachad

Not sure how it could be a universal standard considering it relies on accounts and a server.

pornel

There could be a standard protocol describing how to authenticate and talk to a server, and get notified. It's not that different from chat protocols.

And operating systems could allow user to select their preferred server, although I wouldn't expect Apple to allow something advanced and anti-vendor-locking like that.

h0l0cube

Wouldn't a non-Apple controlled authentication system suffice? Taking a punt here, but maybe Matrix could work?

jayd16

So what? So does email.

RileyJames

I once had a specific device that wouldn’t airdrop to anything. Beyond that one device, it has always, just worked. Instantly. First try.

I wish everything were as simple to use.

Documents is the other app I use for sending files to and from iOS (primarily iPad, from Linux laptops). But I’ve run into a lot more bugs with that, and the transfer setup process requires generating and entering codes. It’s a pretty good UX, but it always reminds you how effortless airdrop is.

I love the idea of a cross platform, open source, airdrop. It’s a lofty, but worthwhile goal.

klabb3

Airdrop is very nice when it works. Modern apple hardware has a second wifi modem for an ad-hoc connection so it can be faster than normal wifi as well.

But Apple only.. makes it much less useful, even for “Apple people”.

lxgr

> Modern apple hardware has a second wifi modem

Do you have any sources for that? As far as I know, it's just time-sharing the same baseband and hardware used for regular infrastructure-mode Wi-Fi.

klabb3

> Do you have any sources for that?

No, I should have picked my words more carefully. All I know is that they can be part of two networks at the same time.

saagarjha

You sure about this? I seem to recall it shared the usual Wi-Fi hardware.

creshal

Technically yes, it's a virtual device, but not all wifi hardware is capable of running two networks at the same time, Apple carefully selected the "usual" hardware to support this.

undefined

[deleted]

snickerbockers

Has it ever been reverse engineered and reimplemented?

I use apple's IP audio streaming protocol (forget what it's called, air-something) to play music over a couple of edifier-brand speakers from a Linux desktop which is running pipewire's FOSS implementation of the protocol. I don't even buy apple products but i ended up using it because there's no way to just netcat samples onto these things.

stonegray

There is an open implementation of AWDL, see https://owlink.org/wiki/

behnamoh

But Airdrop for me has been a hit and miss. When it works, it's awesome. But when it doesn't work, there's literally not much I can fiddle with to make it work.

hahamaster

Absolutely. My wife stopped sending me stuff over AirDrop because she can't see my phone half the time. So she just sends me stuff via iMessage. We both have the latest iPhones with the latest iOS.

janandonly

I’m noticing that a lot of the times my airdrop between my new iPhone and iPad isn’t working anymore. I blame iOS/iPadOS 17. Maybe will be fixed in 17.1 ??

organsnyder

I've had issues since upgrading to i[Pad]OS 17 as well. iPhone 14 Pro and 2022 iPad Pro.

RulerOf

Phone-to-phone airdrop is slow. Unless sending video, the messages app will typically outperform the UX and delivery speed of Airdrop for the person sending the file, which is really the only one that matters.

Airdrop Discovery is slow. Notification of an incoming file is slow. File transfer startup is slow. File transfer completion is slow.

You have to wait at every step and you cannot stop watching it, lest the transfer fail.

The UI for iOS isn't very good either. It floats on top of everything. It's easy to dismiss and impossible to bring back without starting over.

It's a great idea with bad UX, but still better than nothing at all.

wayfinder

This has not been my experience at all. AirDrop always works and is always fast.

The lack of notification when you are receiving is annoying though.

JaneLovesDotNet

I've been using localsend, mostly without issues. This thread has made me discover pairdrop.net and I have to say it's miles better. I've switched all my devices over now. The iOS integration with the provided shortcut + permanent pairing, in particular, is really good.

smusamashah

I have kept a list of other similar file sharing tools to send files p2p https://gist.github.com/SMUsamaShah/fd6e275e44009b72f64d0570...

matsz

Could you add https://drop.lol to the list (also open source)?

Disclaimer: I'm the author of drop.lol.

behnamoh

Your website hijacks the "Back" button (e.g., when I press CMD+[). That's a big no.

smusamashah

Just added

esafak

A table with feature checkboxes for comparison would be nice.

bigjay517

I actually have switched to Localsend from Pairdrop. My experience is that is Pairdrop is slow especially compared to Localsend. This is while hosting the application on my local network.

I do prefer the WebApp approach so I don't have to install something on each machine before sharing files, but the bug ticket in Pairdrop does not make me hopeful for a good solution (see: https://github.com/schlagmichdoch/PairDrop/issues/44)

Are you able to achieve similar performance in Pairdrop that you did with Localsend?

JaneLovesDotNet

I haven't compared performance, as it's not a bottleneck for me. A 70mb file took a few seconds. Localsend could very well be faster, being a native app.

j1elo

I don't know. After discovering PairDrop too, thanks to comments here, I've been testing it out to see if it could replace Warpinator [1] as a means to send files & directories between my PC and my Android phone when I'm at home.

First impression has been quite disappointing... I installed the PWA to my phone's home screen. Then opened up and paired with my PC as trusted device. Tried to send a PDF file from PC to phone, a dialog shows up with

File Received. PC has sent: file.pdf. Close/Download.

Upon clicking Download, Firefox (which is configured in Android as the default web browser) opens up, on the Homepage tab. Nothing else happens, and the file isn't downloaded. So I'm left pretty much confused about what should have happened vs. what did actually happen.

(EDIT: Turns out installing the PWA from Firefox doesn't work as well as doing the same from Chrome. The latter does actually integrate it as a real Android app, and it then works as expected. The Firefox integration of PWAs with Android is a bit lacking, it seems.)

Good thing about Warpinator (and something I use a lot) is that you can enable accepting files without confirmation, and then you can drag & drop a whole folder to have it appear on the other device as-is. Something extremely useful but that I doubt web apps can achieve.

[1]: https://github.com/linuxmint/warpinator

tbbfjotllf

SyncThing works really well after you set it up. It's not as straightforward as pairdrop but it has served me well.

klabb3

You should know that WebRTC is not ideal for this use-case, it has inherent performance and discovery issues. All web-based solutions are flawed until hypothetically the browsers and/or WebRTC step up their game. Fine for a pdf or something, but try it with large files and you’ll very likely have a bad time.

I must say LocalSend seems pretty great (even though they’re a “direct competitor” to my app https://payload.app/ )

matsz

I was able to copy 4GB+ files over WebRTC from Safari (iOS) to Firefox (Linux) without hiccups. The speed is not great though most of the time.

lockd2en

any plans for android app in future?

klabb3

Yeah for sure. Lack of mobile the biggest downside right now.

Send an email and I can put you in the announcement list (1-2 posts per year tops).

swah

Better than AirDrop too, which shows a notification and then you totally forget where the file went.

luckman212

Been running my own PairDrop docker container for some months now and it has been amazing.

JaneLovesDotNet

What's the value prop of running your own instance vs just using pairdrop.net infra itself?

steve1977

Running it on your own infrastructure?

lannisterstark

>I have to say it's miles better

In what ways?

dabedee

This is great and very user-friendly. As a quick & dirty alternative for people using the command line, you can easily send files by using netcat.

To quickly copy file from one machine to another.

  # on target machine
  $ nc -l PORT > file

  # on source machine
  $ cat file | nc HOST PORT
To quickly copy an entire folder:

  # on target machine
  $ nc -l PORT | tar xf -

  # on source machine
  $ tar cf - FOLDER | nc HOST PORT

sanroot99

And on top of it you can add pv in pipe for progress bar

esafak

Does it let you share files between Android and iOS phones without requiring an app to be installed on both devices? I don't mind installing something on my phone but I can't force other people to install it too.

alt227

I think its a bit of a stretch to think that an app would be able to send a file to someone elses phone without them installing an app to manage the file storage and security.

sofixa

Bluetooth file sharing was around before smartphones were.

Almondsetat

Bluetooth file sharing didn't magically materialize inside phones, it had to be implemented in the OS by the programmers

tasuki

The sending person needs an app, sure. But the receiving one, shouldn't it be theoretically enough to use a web browser to download the shared file?

PinguTS

But you still need to be able to send the link, so the receiving party needs some way to be able to receive the link. It is then either some form of local messenger or ... an app. So, yeah, the receiving party needs an app, if the app is not build-in into the OS like Airdrop in iOS.

arghwhat

tjoff

That is nice. I'd probably just use python to share a directory from termux instead.

Problem is that you both need to be on the same network for this to work.

Sure, I could quickly start a hotspot and share that with a qr-code and then share my ip+port with another qr code.

Whole setup is like 6 clicks, but... The receiving side needs to join a wifi (and implicitly disconnect from something they might be using, and then have to switch back afterwards) and scan ² qr codes.

All in all, too cumbersome.

undefined

[deleted]

lambda_garden

Maybe something clever could be built into a web app?

PhilippGille

Like https://www.sharedrop.io/?

It finds devices on the same network automatically but also works across networks when using the plus button on the top right.

JaneLovesDotNet

https://pairdrop.net

I've tried all the options in this thread but only discovered pairdrop 20 minutes ago (thanks to this thread) and it's by far the best option.

RunningDroid

It's been a minute since I've needed it, but I've been using Share via HTTP¹. I've also been meaning to checkout QRServ²³.

1: https://github.com/marcosdiez/shareviahttp

2: https://github.com/uintdev/qrserv

3: also in the IzzyOnDroid F-droid repo

arghwhat

Yes, yes it does. You can specify "share by link" instead, in which case you get a HTTP server URL. In this mode, you approve each pageload in the app.

ammo1662

You can try to use snapdrop, it just need a browser.

https://snapdrop.net/

thristian

https://pairdrop.net/ is a fork of SnapDrop with a more responsive maintainer (apparently: https://github.com/schlagmichdoch/PairDrop/discussions/115 )

ahoka

That's the first file share app that doesn't miss the point (I don't want to install anything, just send a file).

urbandw311er

Looks great but would it work between two smartphones out in the wild? Or does it require being on the same LAN.

bewo001

also https://www.sharedrop.io/ it uses webrtc for local communication

londons_explore

snapdrop.net appears to too...

axytol

Piling some more alternatives, a fork to snapdrop:

https://pairdrop.net/

From the author: https://github.com/schlagmichdoch/pairdrop#differences-to-sn...

undefined

[deleted]

tiborsaas

Last week, at my girlfriend's place she couldn't make AirDrop work to display a video on the TV so we ended up using a HDMI cable after of ~30 mins of no luck. Yesterday I went over and the same thing happened only that she mentioned that I'm a bad influence since it worked that last two times when I wasn't there.

I took a quick self evaluation and concluded that I'm not possessed by demonic powers, I don't have excess electromagnetic radiation and other supernatural explanation. I remembered the "OpenOffice will never print on Tuesdays" and "My car doesn’t like vanilla ice-cream" stories so it got me curious what changes. The only thing that I added to the equation was my Android phone connected to Wifi. I put it to airplane mode and voilà, AirDrop started working.

wlonkly

I believe that's AirPlay (video streaming) and not AirDrop (file transfer).

AdamH12113

I use LocalSend to get pictures from my iPhone onto my work laptop. It’s very simple and straightforward, and does exactly what I need it to do with minimal setup.

quectophoton

Oh hey, this looks convenient.

Last week a family member wanted to transfer some files from Windows to iPad (without passing through iCloud), and it was a nightmare. Windows 11 is already so weird with their online accounts and stuff, that just getting a network share to work was painful.

And "thanks" to Apple being Apple, I also could not use USB-C to transfer from an external drive to the iPad because I didn't have an adapter.

So I'll definitely try this.

skykooler

Something's broken with the nixos package of this - it lists it at https://search.nixos.org/packages?show=localsend, but trying to install it just throws `error: attribute 'localsend' missing`. Other packages work just fine.

neilv

The discovery looks like it might be another way to track devices (besides all the usual ways). One of the fingerprints is the `fingerprint` attribute. The protocol spec is unclear whether and when that can be recycled:

https://github.com/localsend/protocol#2-fingerprint-%E6%8C%8...

> The fingerprint is used to avoid self-discovery and to remember devices.

https://github.com/localsend/protocol#31-multicast-udp-defau...

> The fingerprint is only used to avoid self-discovering.

perryizgr8

Google's nearby share is quite fast and easy to use and available for mobile and desktop.

https://www.android.com/better-together/nearby-share-app/

grishka

And I reverse engineered enough of its protocol and made an unofficial macOS app: https://github.com/grishka/NearDrop

ruune

There's also QNearbyShare [0], a CLI implementation for Linux, which sadly can't send to Android yet, but receiving works just fine

[0]: https://github.com/vicr123/QNearbyShare

tetris11

I can advocate for Trebleshot which is FOSS and available from F-Droid[0] for Mobile and Github[1] for Desktop

0: https://trebleshot.monora.org/ 1: https://github.com/trebleshot

perryizgr8

> Still in alpha state and for this reason, nearly everything is subject to change and probably broken.

> This repository has been archived by the owner on Sep 4, 2021. It is now read-only.

Don't think this project is active anymore, and I cannot find any download links for desktop.

OsrsNeedsf2P

LocalShare seems to be available on many more platforms

Daily Digest email

Get the top HN stories in your inbox every day.

Localsend: Open-Source Airdrop Alternative - Hacker News