LocalSend: Open-source, cross-platform file sharing to nearby devices
localsend.org
localsend.org
Some important bugs to beware:
On Windows having the LocalSend app running with the Window visible (after a receive?) prevents the system from sleeping. On Linux, it does the same even if the window isn’t showing. On Linux, having the LocalSend window visible and idle consumes an insane amount of cpu with the desktop window manager constantly refreshing damages. On Windows, the app (with the “startup minimized” option checked) if configured to launch at startup will often show the window anyway (not that you want it running in the background given the sleep issues).
I just installed it and it's the most most hassle-free experience I ever had with this type of apps.
My only gripe with it is that I need the receiving device awake and the app on the foreground (at least on android) for it to work. Even with the quick save option activated.
I wish quick share (né nearby share) was available on linux (even if via chrome).
I made NearDrop, which is a macOS implementation of Nearby Share: https://github.com/grishka/NearDrop
And of course, someone tried to reimplement it for other OSes: https://github.com/PlutoHDDev/CrossDrop
so Flutter :)
Good thing is that there is very little chance of data-out-of-sync-with-UI kind of bugs. But the bad part is that tons and tons of alloc/dealloc and literally the code is executing all the time.
Now in practice, it is not all that bad. They have a magical garbage collector that makes is all better. Every release it just slightly better, but I can't help think that they are solving a problem they created to begin with. But I might be too old and may be the productivity is worth it.
This is in addition to the fact that none of the widgets are truly native. The "code" is native, but the UI is not. Even react-native apps might be this way, but they at least use Safari/webkit widgets, if not truly native iOS/Android widgets.
Considering what you said, it's quite impressive that Flutter is able to perform this well and render thousands of widgets per second.
Also what if I want to run other apps at the same time? They better not have too many widgets of their own?
Regarding your other question, I don’t know.
That's not what I'm saying. I'm saying rerendering and updating the state of thousands widgets PER second.
I did some Googling but could only find comparisons with RN and sometimes with Swift, but not with any of the web frameworks.
I just skimmed the readme. It states a "local network" multiple times. So in this example, the firefighters need a Wifi network to connect the devices. Not because the files are sent over the internet, but because LocalSend doesn't create an ad-hoc network unlike to Airdrop.
So OP: technically yes, but the experience is not quite the same.
Then you could have the fire-trucks mesh network with each other!
Sarcasm alert: I'm sure that is bound to be 100% reliable out in the middle of nowhere, with whatever cheap power converter they used to provide power from the 12V batteries in the truck, and hopefully doesn't drain them :)
https://developer.android.com/develop/connectivity/wifi/loca...
There's only a few lines in the entire thing, so I don't know how you can miss that twice they say they don't collect anything in the first place, and then they say: "Since we do not collect such information, there's no possibility of us using, sharing, or selling this data."
If you want to say that this technically isn't a declaration, I would simply disagree and count it as one.
Frankly, being an open source app, I would be fine if it even said something like "It's open source. If you think it does anything nefarious, go ahead and show it." without even a suggestion of a promise. But they actually do make a declaration of both intent and action.
Any other data that isn't personal data they might have, like their download estimates or something, is theirs none of our business.
>Frankly, being an open source app, I would be fine if it even said something like "It's open source. If you think it does anything nefarious, go ahead and show it." without even a suggestion of a promise. But they actually do make a declaration of both intent and action.
That is just horrendous. No. That is not a bar that is acceptable for any app, free, paid, open source or not. Likely illegal too.
> Any other data that isn't personal data they might have, like their download estimates or something, is theirs none of our business.
Or something... such as information about files being sent... Or app telemetry etc.
That was my point.
I don't have reason to distrust them, but calling it the best "privacy policy ever" is a huge stretch given what it lacks.
Information about files being sent could be anything from metadata, checksums, to something like (but not likely) CSAM.
Could also be data about your device(s), anything really.
We are talking about the privacy policy. Nothing else.
The policy says that they don't collect, store, or process any personal data. That is great!
What is not great is that the policy does not discuss whether or what type of other non-personal data is collected/stored/processed. That makes it a bad privacy policy. That is what I commented on.
You mention earlier data about your devices, this seems to me like it would fall into the `personal data` category, and be excluded.
There sure is a disconnect.
What exactly is not great? What's missing?
I see only 2 possible arguments here and neither one seems to actually exist, but you tell me what I'm missing.
One possibility is there is some data that the statement doesn't cover.
Let's see... The statement says they don't posess anything at all. And since the statement is so short, there is no possibility to hide any technicalities in confusing fine print.
So, what data isn't included in "we don't have anything"? What is something the statement says or fails to say?
All I see is farcical things like "aha! but it doesn't say what they are going to do with my email!" 1, yes it does, 2, what email?
The other possibility is the statement is a lie because the code sends them data.
Does it?
This is a stupid thing to try to contrive some way to criticize. It's literally as good as it can get.
Also, not doing your homework for you for some free software where you can not only take or leave the software as you please, but have the source too, is maybe illegal? Dude you kill me. Say stuff like that for another 40 minutes and you got a Netflix special.
You represent that you are over the age of 18. The Company does not permit those under 18 to use the Service.
I planned to use it with family (kids).This actually seems really awful?
It's pretty typical on HN to see somebody singing the praises of apple while failing to notice the competition provides similar functionality.
then how come there are zero FOSS "AirDrop replacements" that seamlessly create an ad-hoc wireless network between two devices to allow for truly p2p high speed transfers?
Since Apple won't implement any third party one, and theirs is natively integrated with their platform, half the ecosystem won't implement or adopt any FOSS alternative.
Since such an alternative won't be pre loaded on handsets (and the Android ecosystem is complex without one single vendor producing firmware everyone ships), the rival would need to be installed manually by users before use.
Not impossible - WhatsApp and other apps have (in some markets) gained near-ubiquity without being built-in, but I think the native app barrier here will always be a hurdle. And Apple presumably knows and strategizes that an alternative won't gain adoption if their half of the ecosystem won't adopt it, therefore holding back the wider market and keeping airdrop functionality as a USP.
Here's how Apple describes its EU-mandated USB-C port on the iPhone 15, after rejecting criticisms about proprietary cables for years:
"The new USB-C connector lets you charge your Mac or iPad with the same cable you use to charge iPhone 15. You can even use iPhone 15 to charge Apple Watch or AirPods.5 Bye-bye, cable clutter."
https://www.apple.com/ca/iphone-15/
The reason this keeps happening is because Apple (and Google) keep widening the feature gap between computers and phones, because the latter gives consumers far less choice when it comes to using third-party applications and peripherals.
These kinds of blind spots exist because not only is there no money in solving them (and open solutions are too hard to use as usual) but in this case there is money in not solving them. A great simple ubiquitous solution would reduce demand for large complicated cloud storage systems that allow cloud data mining of all your files and/or require subscriptions.
For me, a pair of netcats has served that use-case quite well.
python -m http.server 8000
You first start one server on a desktop/laptop which has the software, and then any client (Android, iOS, PlayStation, Kindle, etc) with a web browser (no need to install any client software) can upload or download files from it.You can download prebuilt binaries for x86-64 Linux, Windows 7 or higher, or Mac OS 10.7 Lion or higher (sorry, no prebuilt binaries for Apple Silicon, but they could be added if there is sufficient demand) from https://github.com/akovacs/uploadserver/releases/ or compile from source using a nightly rust toolchain if you prefer.
Start the file server on a desktop machine:
chmod +x upload_server
./upload_server
Determine your machine's IP address using: # Linux
hostname -I
# Mac
ifconfig
# Windows
ipconfig
Navigate to the server's ip address port 8000 (indicated by the hostname -I command you ran earlier) in the web browser of your choice on any device (no need to download or install any client applications) 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 the web GUI or via a commandline tool: curl http://192.168.1.X:8000/uploads/uploaded_file.txt --output downloaded_file.txt
If you don't have a local network, 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.Compared to cloud services or `python -m http.server 8000`, this is extremely fast since the server is written in rust, it is fairly simple (compiled and stripped binary is typically less than 3MB), it sends everything over local LAN, it seems to handle large files (over 4GB) fairly well, and you only need to install the software on one machine.
Also what about syncthing[1] (for recurrent/permanent sync) and croc[2] (for one time copies) ?
I have used both for a number of years already. Before croc, magic wormhole was available for even longer.
Obviously I can move files around. I can also program in 10 languages. I am not normal.
But even for me, it's not convenient. I don't "need" a friendly ubiquitous way to do it, but if I had one it'd be really nice and would save me time.
Regardless of the quality of any tool, most people will not necessarily use the most friendly way. They will use the tool they already know and have. Reason most people have been using Microsoft Word over the year with very crappy results to share screenshot to people for example. There were plenty of available screenshot tools that would save wherever you want in the format you want, but you had to install them, they were not installed on their windows XP computer out of the box. So you would see people preferring copy/pasting to Word, not even paint or that other image tool I don't remember the name that was available ou of the box on windows.
So nowadays, there is only one thing that is ubiquitous and available in most people devices that allows them to reach other: messaging tools. In the past it was email, nowadays it is Whatsapp. You can make the nicest, fast and friendly tool to share files to others, people will still use Whatsapp to send files to others and even themselves.
(But of course, I hardly have the time or perhaps even ability to really go far with that thought. Oh well.)
I have also a very weird problem with detection: my iPad can’t send to my Windows PC, but my PC can! Restart server, turn off firewall … all no help. My LAN is a bit complex with VLAN so I didn’t report the issue because it might just be me.
However, LANDrop doesn’t seem to have the same problem. That’s weird square.
Comparing the GitHub repos for the two, it seems like LANDrop is pretty stale, while LocalSend is very active.
https://github.com/LANDrop/LANDrop https://github.com/localsend/localsend
Something to consider, although I'm not sure how much it practically matters.
* Eliminates the need to be in one network of any kind.
* Allows nearby detection.
* Nowadays good for laptop <-> smartphone
* Possiblilty to create AP with WiFi for big transfers
Bluetooth discovery is the strength of AirDrop. I’m not sure but I think Apple creates a temporary WiFi and the other party is connecting to it briefly for big transfers?The application Teleport [1] uses Zeroconf for discovery. It misses cross-platform support. Probably it is better use Multicast directly, setup of Avahi is complicated (conflicts) and requires a Daemon.
PS: People often forget that Bluetooth has already the built-in capability to transfer files (e.g. vCard). I only remember GNOME to present it and then also not in Nautilus. Same as WebDAV which works much better than SMB for me. Again, most people just don’t know that there is WebDAV built-in.
Yesterday, a friend tried to airdrop a picture to me from his iPhone 11 Pro to my iPhone 15 Pro. Touching the top of the phones did the funny jiggle, but didn't send the file. He then clicked on my picture in AirDrop, which showed him "waiting on confirmation" but I never got a pop-up. After a few retries and reboot, we gave up. He sent me the picture over WhatsApp, which, ironically, "just works."
Apple needs to get these bugs fixed. I lament the fact that they remain more focused on hardware then software.
I have used such apps before, but it seems they have gone unmaintained and don't work anymore.
And if I can't be bothered to setup Python on the source host, or there are network complications, running uploadserver[1] on the destination host works great.
I'm wary of all these fancy tools with "magic" in their name, that rely on external relay servers. Even if they don't, I'm quite fond of the simplicity of plain old HTTP. I don't need anything more sophisticated, and in most cases, not even encryption.
netcat/socat would be another solution, but they're not as ubiquitous as Python and HTTP. And I can never remember the command incantations ':D
https://github.com/localsend/protocol?tab=readme-ov-file#51-...
Or do you mean uploading with an http frontend?
- B: Yes, uploading via a web page would be nice too. I have seen other apps do this.
python -m http.server 8000
You first start one server on a desktop/laptop which has the software, and then any client (Android, iOS, PlayStation, Kindle, etc) with a web browser (no need to install any client software) can upload or download files from the web GUI.You can download prebuilt binaries for x86-64 Linux, Windows, or Mac OS (sorry, no prebuilt binaries for Apple Silicon, but they could be added if there is sufficient demand) from https://github.com/akovacs/uploadserver/releases/ or compile from source using a nightly rust toolchain if you prefer.
Compared to cloud services or `python -m http.server 8000`, this is extremely fast since the server is written in rust, it is fairly simple (compiled and stripped binary is typically less than 3MB), it sends everything over local LAN, it seems to handle large files (over 4GB) fairly well, and you only need to install the software on one machine.
For additional details, please see: https://news.ycombinator.com/item?id=39665095
I'm not on Apple, so I didn't sufficiently retain the details, but I remember reading about this a year or two ago.
winget install LocalSend.LocalSendUse Quickshare (built-in app for Android, previously called Nearby Share)for other androids .
LocalSend works on all platforms.
Have been looking for a simple way to share files between pc and android wireless but not via internet, but seems it always is just file/s you could transfer, not folders with everything in them.
If LocalSend is the same and can only transfer selected file/s, have anyone any tips on a alternative app that do the same but also with folders?
# Initial Setup
1. Install Android Platform Tools from: https://developer.android.com/tools/releases/platform-tools#... and verify that you can execute the adb tool.
2. Connect the Android device and the computer to the same Wi-Fi network
3. Also connect the Android device to the computer via USB cable (just for this initial setup)
4. Pair the phone with the computer and enable Wireless debugging as described here: https://developer.android.com/tools/adb#connect-to-a-device-...
# Subsequent usage (does not require USB cable):
5. Toggle the Wireless Debugging quick setting toggle to enable adb connections from your computer to your phone
6. Retrieve the Android device's IP address in Settings → About → Status.
7. On the computer command line type: adb connect ip-address-of-device:5555
8. Push the folder to the Android device: adb push /path/to/folder/to/copy/on/computer /sdcard/path/to/destination/on/android/device
No mobile support yet but since Tauri is rolling it out, it’ll be easier to add it as soon as I can make time.
Disclaimer: I’m the creator.
That said, the next version will have multi connection tcp striping, which is a lot faster than any single tcp solution in many cases, especially over long distances, similar to some ftp/usenet clients. (Spoiler there will be online p2p transfers. See https://github.com/betamos/rdv if curious)
Be able to transfer folder and not just files between devices wireless easy without internet would be amazing.
It transfers folders without Internet, and has an Android app like you requested.
It also supports resumable file/folder transfers, which majority of other tools mentioned in this thread don't support.
Disclaimer: I'm the creator.
Even works over tailscale on Wifi with Client isolation on.
Does LocalSend also have this capability?
I especially like the documented HTTP based protocol which might allow for some interesting stuff like uploading a picture to a digital picture frame.
You represent that you are over the age of 18. The Company does not permit those under 18 to use the Service.
[1]: https://localsend.org/#/terms-of-serviceToo bad it seems to not be mantained anymore
Not to say they have no overlap, I use both. LocalSend is nice to quickly send that one picture from my Android to my MacBook
Airdrop even requires bluetooth.
https://issuetracker.google.com/issues/36904180 (won't fix, obsolete, according to these mofos)
https://i.imgur.com/xei98fy.png (who the fuck knows how many more comments it would have got if they didn't block commenting)
It was implemented once on Cyanogenmod thought...
A lot of the posts about this have been de-indexed from Google Search too.
That’s what I’d really like when sending stuff between my devices because my most common use case is I see or think of something work-related when I’m off and don’t want to dig out the company laptop to make note of it, or the other way around see a personal interest or a nerd snipe while at work and want to stash it for off-the-clock.
I usually sling mails between devices, less commonly stash something in iCloud (or similar), but those are pretty noisy and high overhead workflows.
I usually use Firefox Sync to send myself tabs.
Via https://tailscale.com/kb/1106/taildrop:
- "Since Taildrop is an alpha feature, you’ll need to opt your network in to the test to use it."
- "Taildrop is only available on Synology with Tailscale v1.18.2".
- "Currently that means you need to manually install Tailscale on your Synology NAS."
Taking Occam's Razor to it:
- Buy Enterprise™ hardware to use alpha software.
- "more secure" has a prefix of "maybe" and a suffix of "(?)" in the comment recommending it
I'm ruling it out altogether.
> - "Taildrop is only available on Synology with Tailscale v1.18.2".
> - "Currently that means you need to manually install Tailscale on your Synology NAS."
Only apply if you're installing it ON Synology hardware, otherwise it is matter of installing the tailscale client and opting your network in.
"Taildrop is only available on Synology with Tailscale v1.18.2 or later."
That sentence is the first sentence under the "Setting up Taildrop on Synology" section of the documentation.
Maybe not great wording or arrangement of statements on that page since it seems to have stopped you in your tracks reading at that point, but you can scroll down and see discussion of using it on other platforms. What you're hyper-focused on is a subsection under the heading specifically dealing with Synology.
# Browser Based
1. FilePizza https://file.pizza/
2. SnapDrop https://snapdrop.net/ https://github.com/RobinLinus/snapdrop. A fork PairDrop https://github.com/schlagmichdoch/pairdrop
3. Instant.io https://instant.io/
4. file ai http://fileai.com/
5. Send Anywhere https://send-anywhere.com/
6. Just Beaam it https://www.justbeamit.com/
7. Yt2fb.in https://yt2fb.in/file-transfer/
8. drop.lol https://drop.lol/ https://github.com/mat-sz/filedrop
# CLI
1. croc https://github.com/schollz/croc
2. p2pcopy https://github.com/psantosl/p2pcopy
3. pcp https://github.com/dennis-tra/pcp
4. wormhole-william https://github.com/psanford/wormhole-william
[1]: https://gist.github.com/SMUsamaShah/fd6e275e44009b72f64d0570...
LANDrop - https://landrop.app/
ShareDrop - https://www.sharedrop.io/
beamit - https://justbeamit.com/
payload - https://payload.app/ (as mentioned)
pairdrop - https://pairdrop.net/
all via https://news.ycombinator.com/item?id=37251411
Also:
pixeldrain - https://pixeldrain.com/
https://github.com/fm-sys/snapdrop-android/issues/356#issuec...
Croc: https://github.com/schollz/croc
Magic-Wormhole: https://github.com/magic-wormhole/magic-wormhole
I used to use MW but switched to croc as the single binary was easier to deploy.
= this is not open source
unlike, say, wormholehttps://codeberg.org/localsend/localsend
While GitHub is not open source, LocalSend is under the MIT License: https://codeberg.org/localsend/localsend/src/branch/main/LIC...