Live data from Hacker News

Show HN: Payload – Cross-platform desktop app for LAN file transfers

payload.app

1–10 of 33 posts

Show HN: Payload – Cross-platform desktop app for LAN file transfers

#1
Hi HN.

I built Payload to make file transfers easy for less-technical users who need large/fast transfers, so I have focused on auto-discovery, drag-and-drop, visually distinct device icons.

It's using Tauri (an "Electron alternative" built on Rust) which keeps my binaries small and bundles to .msi, .dmg, .deb and .appimage. No CLI, iOS or Android support (yet).

The network stack is a separate binary written in Go. It uses mDNS for local network discovery and TLS over TCP or Quic, with a public Ed25519 keypair for each device. The protocol is ad-hoc and symmetrical control stream using JSON and binary data streams. Planning to open source these parts eventually..

Transfers should saturate the local network link. It reaches ~116 MB/s wired at my home, but if you have a >1000 Mbit link, I'd be curious to see how much speed you can squeeze out.

See also:

https://news.ycombinator.com/item?id=21575869

https://news.ycombinator.com/item?id=24351111

Show HN: Payload – Cross-platform desktop app for LAN file transfers
payload.app

Re: Show HN: Payload – Cross-platform desktop app for LAN file transfers

#3
post #2

Is the main selling point the ease of use copying between devices, or better performance compared to existing network file sharing software? I want to understand how this is better than Samba or NFS.

Short answer: ease of use. Setting up shared folders cross-platform is non-trivial for the average person.

The long answer is that transfers and shared storage are fundamentally different use-cases (imo). Shared storage usually means you grant and revoke access to a subdir (ACLs), which are (1) often overly permissive and (2) exposes a file structure that isn't necessary for the other side.

Transfers OTOH is an ephemeral action where sender picks files from their file system, receiver decides the destination directory (so file systems are not exposed in either direction).

That said, if you are looking for shared storage, check out https://www.spacedrive.com/. It's also built with Tauri.

Re: Show HN: Payload – Cross-platform desktop app for LAN file transfers

#4
Just tested this between my MacBook Pro (Max with 64GB RAM) and my main workstation, GodBoxV3 (Dual 20 Core Xeon, 256GB RAM, and lots of SSD/NVMe storage). The MacBook has a 10GbE link and GodBoxV3 has 2x10GbE Links... Tried sending a file from the Mac to GodBoxV3 and it didn't top out at more than 40MB/s. The Windows client also crashed about halfway through. Mind you, when I restarted it, it did recover the transfer. Going the other direction, I seem to be getting around the same kind of speed. One thing I want to test is whether it works over a VPN. Interesting concept and easy to use. lets see if it can get even better.

Re: Show HN: Payload – Cross-platform desktop app for LAN file transfers

#5
post #4

Just tested this between my MacBook Pro (Max with 64GB RAM) and my main workstation, GodBoxV3 (Dual 20 Core Xeon, 256GB RAM, and lots of SSD/NVMe storage). The MacBook has a 10GbE link and GodBoxV3 has 2x10GbE Links... Tried sending a file from the Mac to GodBoxV3 and it didn't top out at more than 40MB/s. The Windows client also crashed about halfway through. Mind you, when I restarted it, it did recover the transfe…

Thanks a ton for trying out! I get >100 MB/s between my M1 and Windows machine (with significantly worse specs than yours) so this was a cold shower. Can I ask:

- Did you transfer a large e.g. a large directory (I haven't optimized for large amount of files) or just a single file? If so, was that file large enough to let the speed ramp up?

- Did you happen to notice high CPU or memory usage during the transfer? Expected memory usage of payload-agent.exe is ~7-20 Mb. CPU can sometimes be a bottleneck if Payload decides to use Quic (but it should prefer TLS/TCP under normal conditions and 40 MB/s is still too slow).

..or free to file a bug report at https://github.com/betamos/payload

Re: Show HN: Payload – Cross-platform desktop app for LAN file transfers

#6
Not knocking the project, I love the idea -- but that it needs to be built today is, for me, such a strong indicator of some of the terribly divisive decisions that were made by the big incumbents so long ago. Which is to say, this would have been trivially easy to implement 20 years as a standard feature of operating systems.

I'll check it out. FWIW, I've just been using a dedicated syncthing folder for this purpose.

Re: Show HN: Payload – Cross-platform desktop app for LAN file transfers

#7
https://file.pizza afaik does LAN transfers using webrtc, supports iOS and Android because it's just a browser application.

(Does have browser JS limitations, but then for serious copying I would use something like ssh anyhow. Don't want an hour-long transfer to fail halfway through because javascript had a hiccup.)

Re: Show HN: Payload – Cross-platform desktop app for LAN file transfers

#8
post #3
post #2

Is the main selling point the ease of use copying between devices, or better performance compared to existing network file sharing software? I want to understand how this is better than Samba or NFS.

Short answer: ease of use. Setting up shared folders cross-platform is non-trivial for the average person. The long answer is that transfers and shared storage are fundamentally different use-cases (imo). Shared storage usually means you grant and revoke access to a subdir (ACLs), which are (1) often overly permissive and (2) exposes a file structure that isn't necessary for the other side. Transfers OTOH is an ephem…

> Setting up shared folders cross-platform is non-trivial for the average person

It's nontrivial for me either. Until Windows got a native SSH client, it was the same problem every time: do I install like an FTP server somewhere and use Explorer, or set up a samba server on my linux box or how even do I copy more than a few megabytes... I don't understand how normal people can do this if even I have trouble, especially between two different OSes. Probably usb sticks are the answer, but then normal people don't have micro-to-female-A converters to connect flash drives to a smartphone, or know that you can even do such a thing.

And so that's why I maintain https://dro.pm and, e.g. when implementing encryption (which I didn't end up implementing because it was literally impossible given the ~2020 state of browser support), one of the main requirements is compatibility. If it's not going to work on any potato, I might as well not have it half the time, because on my own hardware I can usually just ssh. Unless you really want to transfer more than a few gigabytes of data, this works reliably (good old 90s , no JavaScript magic in that part) and the occasional wait is better than having to do sorcery with custom software on both ends, also because I usually don't own the non-linux endpoint.

Re: Show HN: Payload – Cross-platform desktop app for LAN file transfers

#10
post #5
post #4

Just tested this between my MacBook Pro (Max with 64GB RAM) and my main workstation, GodBoxV3 (Dual 20 Core Xeon, 256GB RAM, and lots of SSD/NVMe storage). The MacBook has a 10GbE link and GodBoxV3 has 2x10GbE Links... Tried sending a file from the Mac to GodBoxV3 and it didn't top out at more than 40MB/s. The Windows client also crashed about halfway through. Mind you, when I restarted it, it did recover the transfe…

Thanks a ton for trying out! I get >100 MB/s between my M1 and Windows machine (with significantly worse specs than yours) so this was a cold shower. Can I ask: - Did you transfer a large e.g. a large directory (I haven't optimized for large amount of files) or just a single file? If so, was that file large enough to let the speed ramp up? - Did you happen to notice high CPU or memory usage during the transfer? Expec…

Why use QUIC in LAN?
Post reply on HN