arrsync

Crates.ioarrsync
lib.rsarrsync
version0.2.1
sourcesrc
created_at2020-09-10 12:19:37.214177
updated_at2023-09-21 15:27:28.045542
descriptionAsynchronous Retrieving Rust rSYNc Client
homepage
repositoryhttps://github.com/jcaesar/ftp2mfs
max_upload_size
id287006
size30,981
(jcaesar)

documentation

README

Asynchronous Retrieving Rust rSYNc Client

Crates.io Docs.rs

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 loged, 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.
Commit count: 121

cargo fmt