On Thu, Nov 26, 2020 at 04:26:24PM +0000, Dave Cridland wrote: > On Wed, 25 Nov 2020 at 18:03, Lyndon Nerenberg <lyndon@xxxxxxxxxx> wrote: > > > The cluster I use doesn't support rsync > > I appreciate this is slightly off-topic, but given the consistent > suggestion that "rsync" should replace FTP, perhaps this is the best place > to ask - I can find an implementation of rsync easily enough, but I can't > find the specification published as an open standard anywhere - do you know > where I can find it? Fun question! The RSYNC algorithm is outlined in these (excellent) papers by Andrew Tridgell: https://rsync.samba.org/~tridge/phd_thesis.pdf and https://www.andrew.cmu.edu/course/15-749/READINGS/required/cas/tridgell96.pdf Currently only two interoperable implementations of the RSYNC protocol exist: GPL rsync, aka 'the original' source: https://github.com/WayneD/rsync web: https://rsync.samba.org/ initial release: 1996 openrsync, a clean-room implementation by the OpenBSD project source: https://cvsweb.openbsd.org/src/usr.bin/rsync/ web: https://www.openrsync.org/ initial release: 2019 To produce openrsync the paper was very helpful, but also some reverse engineering was required: ktrace, 'rsync -vvvv', and lots of tcpdump. In hindsight a specification in the form of a IETF RFC would've been very helpful :-) Currently the closest thing to a specification about what happens on the wire probably is the notes compiled during the openrsync development, the notes can be found here (mandoc format): https://github.com/openbsd/src/blob/master/usr.bin/rsync/rsync.5 For your convenience i put a HTML version up here: http://sobornost.net/~job/rsync.5.html Kind regards, Job