4 releases (2 breaking)
0.2.1 | Sep 21, 2023 |
---|---|
0.2.0 | Jul 26, 2021 |
0.1.0 | Oct 24, 2020 |
0.0.0 | Sep 10, 2020 |
#7 in #retrieving
Used in ftp2mfs
31KB
713 lines
Asynchronous Retrieving Rust rSYNc Client
A tokio-based rsync wire protocol client library for listing files on and downloading from rsyncd servers.
Status
Incredibly alpha. It seems to do the thing, which is: retrieve a list of files on the server, and then retrieve some of those files whole. But don't look at it sharply…
Limitations
- Rsyncd only, no execute-over-ssh.
- Rsync protocol 27.0 only (Fortunately, newer rsyncds do fallbacks.)
- Dates are parsed as i32. (I hope this library and maybe even rsync are dead by 2038…)
- The MOTD and error messages are
log
ed, but can't otherwise be intercepted. - Protocol error handling is probably flawed.
- Use of
anyhow
. - No tests
Related crates
- rsyn
is probably closest in functionality, implements an rsync wire protocol client. Sadly, the library is aimed directly at implementing an rsync client CLI clone, so getting a
Read
for the retrieved files is not possible. - rrsync implements its own wire protocol(?).
- rsync-list
seems to parse the output of executing
rsync
. Brr. - librsync-sys, librsync-ffi, fast_rsync only do the delta calculation. arrsync may depend on them in the future.
- libsyncr remains a mystery to me.
Dependencies
~6–15MB
~180K SLoC