Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
71 lines (66 sloc) 2.75 KB


Code tree

Compile & Install


  • Note taken on [2011-05-15 N 15:18]
    Note that on some systems you will have to force configure not to use gcc because gcc may not support some features (such as 64 bit file offsets) that your system may support. Set the environment variable CC to the name of your native compiler before running configure in this case.


copy rsync to system $PATH or `make install’


popt option-parsing library (rsync >= 2.4.7)

  • Note taken on [2011-05-15 N 15:32]
    A recent copy is included in the rsync code base and used if the system doesn’t have it installed. Using the bundled lib is possible by passing the –with-included-popt option passed to `./configure’.

zlib compression library

  • Note taken on [2011-05-15 N 15:46]
    Specific patched version bundled with the code base. Building with a generic zlib will probably result in problems with rsync. Registered in the TODO file as a task ‘Use generic zlib’.

Problems & Patches


  • Probably several modes of operation
    • Daemon (TCP 873)
      • Writable
      • Readonly?
    • Client
    • xattr-enabled (Extended file attributes)
  • Protocols
    • native rsync
    • RSH
    • SSH
  • Replaces
    • rcp
    • scp


  • Synchronization of files and directories
  • Delta encoding to minimize data transfer
  • Only one trasmission in each direction while mirroring
  • Supports compression and recursion
  • Scriptable
  • Can update whole directory trees and filesystems
  • Optionally preserves symbolic links, hard links, file ownership, permissions, devices and times

requires no special privileges to install

  • Does not require setuid
  • Internal pipelining reduces latency for multiple files
  • Can use rsh, ssh or direct sockets as the transport
  • Supports anonymous rsync which is ideal for mirroring

Metrics (by

  • Mostly written in C (~38k LoC)
  • Mature, well-established codebase
  • Small development team
  • Decreasing year-over-year development activity


See also

  • librsync - possibly a different implementation of the rsync algorithm