*It already has no deps
Great job there. A nice tool you've made.
Edit: already adressed: https://github.com/9001/copyparty?tab=readme-ov-file#copypar...
At one point in his demo, he uploads a file but terminates the upload more or less halfway. Then he begins downloading the file - which only progresses to the point it had been uploaded, and subsequently stalls indefinitely. And, finally, he finishes uploading the file (which gracefully resumes) and the file download (which is still running) seamlessly completes.
I found that particularly impressive.
This is underselling it by at least three orders of magnitude. This is astonishing tool, you have to watch the demo video: https://www.youtube.com/watch?v=15_-hgsX2V0
> inverse linux philosophy -- do all the things, and do an okay job > - quick drop-in service to get a lot of features in a pinch > - some of the alternatives might be a better fit for you
This includes a link to this doco in the repo which is an incredible source of info: https://github.com/9001/copyparty/blob/hovudstraum/docs/vers...
Edit: Source: https://en.wikipedia.org/wiki/File_eXchange_Protocol#Technic...
1. You connect to servers A and B.
2. Tell B to receive a PASV transfer. It replies with the IP address and port it's receiving on.
3. Tell A to send to that address and port.
This is documented in RFC 959, starting with
"In another situation a user might wish to transfer files between two hosts, neither of which is a local host."https://github.com/Emeryth/openwrt-zsun
https://wiki.hackerspace.pl/projects:zsun-wifi-card-reader
I got them in bulk from China for ~$6 each.
Resumable, can queue, send directories, drag & drop, LAN (without account) & WAN (hybrid p2p), all transfers + metadata are e2ee. Linux, Windows, Mac, iOS, Android.
Disclaimer: I’m the creator
> seafile … and nextcloud … their license is problematic
There’s nothing problematic about the AGPL, really. It protects users. It protects developers against someone taking over their projects. The only people it bothers are those who wish to take a free software project and integrate with an unfree one. That seems like a feature to me!
(also a great app to download everything you wanted from a site, regex selections, etc.)
Makes several connections and downloads chunks in parallel, for some sites with limited upload (their, your download) speeds per session it really speeds up the downloads.
Sadly, not much development recently (9 months ago was the last commit)
So yeah - this is probably one of those half-baked ideas that just wouldn't be a good one to actually implement "in-the-wild".
Yes when I heard it was python I immediately checked the dependencies expecting a ginormous list and found basically nothing. Incredibly impressive, just a few "stolen" libs here: https://github.com/9001/copyparty/tree/hovudstraum/copyparty...
Worth scrolling through util.py to see lots of hand-implemented code: MultipartParser, read_header(), read_socket_chunked(), html_escape(), atomic_move(), killtree ("still racy but i tried"), termsize(), etc
https://github.com/9001/copyparty/blob/hovudstraum/copyparty...
6k loc for http server/client handling transferring files, rss feed, etc. See `def run(self)` for main request parsing.
https://github.com/9001/copyparty/blob/hovudstraum/copyparty...