Chaosnet Network Protocol
lm-3.github.io
lm-3.github.io
Apologies for going off-topic but it's interesting reading this carefully optimized <1 mile local network compared to how difficult it has been for so long to do basic file transfers and interaction between devices on a local network. ie, transferring photos from a phone or DSLR camera to a laptop and interacting with annoying printers.
I understand the security barriers and some of the legacy reasons why with NAT and whatnot but even modern solutions like Airdrop still have a less-than-desired UX and performance. It's randomly slow, regardless of how fast our network is capable of being.
I just want a cross platform rsync style program built directly into the OS as a first-class citizen, that doesn't require complex setups or configuration, with watching/syncing, while being something a non-technical person can use.
I still default to using HTTP cloud services like Mega/Firefox Send to send basic files as I at least know it will have predictable and reliable performance. And on linux I always set up local SSH servers on everything which comes with its own maintenance baggage.
Admittedly I haven't dug into solving this problem in recent times and tried to find modern solutions (other than Bittorrent Sync) so this may be a dated critique. But just looking at OS level stuff.
Ever tried https://syncthing.net/ ? It's what I settled on, you can put it in local discovery only mode if you like. Running your own discovery server gets more into the weeds (though it's not terribly difficult) but you don't have to go that far if all you want is local device sync.
It's randomly slow, regardless of how fast our network is capable of being.
Have you tried a pair of netcats? That's raw TCP, and a good indication of how fast the network can be in practice. Slowness could be caused by other things, e.g. interference if it's a wireless network, a CPU or disk on one of the hosts being hogged by some other process, etc.
It sounds like you need to invest a little time in automating basic networking stuff (shell scripts do fine). I do not think there is a royal road with effortless magically secure configuration and authentication for random devices, but once you have IPv6 with dynamic DNS for all your machines on your own domain with SSH public keys (this all gets automated by the shell scripts), things get really nice. rsync, Unison, TRAMP, remote shells, SSH port forwarding/SOCKS proxies, whatever else you can think of, just works.
The Internet is a surprisingly nice place when you get rid of NATs and VPNs.
No IPv6 from your ISP? Start looking for a new one, but in the meantime grab a unique local IPv6 prefix for your home network (I find that useful to have anyway; and with IPv6 there are no worries about having multiple addresses on an interface) and use that shell script automation to take advantage of /etc/hosts (and put a blocklist in there while you are at it: https://github.com/StevenBlack/hosts).
Doesn't that again just come down to NIH and building a walled garden? I'm really sour about this too and have given up hope that anything like this will ever happen. My goto example here is Bluetooth and Apple. Not that Bluetooth is super elegant or suited for huge files but it's been a somewhat simple and straight forward way of exchanging some photos or whatnot with a person nearby. Sure it's low range, but it existed long before affordable data plans, WhatsApp etc.; and I can still exchange files between a modern Android device and my 15 year old Sony Ericsson. But not with a mighty iPhone, because why on earth should Apple support something that enables and open ecosystem?
So it's up to third parties to come up with some solution and implement it for every platform on this planet themselves, and no matter how hard they try it will always be a third party add-on that can never integrate as well as a native feature built into the system.