librsync

remote delta-compression library

  • 所有者: librsync/librsync
  • 平台:
  • 許可證: GNU Lesser General Public License v2.1
  • 分類:
  • 主題:
  • 喜歡:
    0
      比較:

Github星跟蹤圖

librsync

http://librsync.sourcefrog.net/

\copyright

Copyright 1999-2016 Martin Pool and other contributors.

librsync is distributed under the GNU LGPL v2.1
(see COPYING), which basically
means that you can dynamically link librsync into non-GPL programs, but you
must redistribute the librsync source, with any modifications you have made.

librsync contains the BLAKE2 hash algorithm, written by Samuel Neves and
released under the CC0 public domain dedication.

Introduction

librsync is a library for calculating and applying network deltas,
with an interface designed to ease integration into diverse
network applications.

librsync encapsulates the core algorithms of the rsync protocol, which
help with efficient calculation of the differences between two files.
The rsync algorithm is different from most differencing algorithms
because it does not require the presence of the two files to calculate
the delta. Instead, it requires a set of checksums of each block of
one file, which together form a signature for that file. Blocks at
any in the other file which have the same checksum are likely to be
identical, and whatever remains is the difference.

This algorithm transfers the differences between two files without
needing both files on the same system.

librsync is for building other programs that transfer files as efficiently
as rsync. You can use librsync in a program you write to do backups,
distribute binary patches to programs, or sync directories to a server
or between peers.

This tree also produces the @ref rdiff command-line tool that exposes the key
operations of librsync: generating file signatures, generating the delta from a
signature to a new file, and applying the delta to regenerate the new file
given the old file.

librsync was originally written for the rproxy experiment in
delta-compression for HTTP.
librsync is used by: Dropbox,
rdiff-backup,
Duplicity, and others.
(If you would like to be listed here, let me know.)

What librsync is not

  1. librsync does not implement the rsync wire protocol. If you want to talk to
    an rsync server to transfer files you'll need to shell out to rsync.
    You cannot make use of librsync to talk to an rsync server.

  2. librsync does not deal with file metadata or structure, such as filenames,
    permissions, or directories. To this library, a file is just a stream of bytes.
    Higher-level tools can deal with such issues in a way appropriate to their
    users.

  3. librsync also does not include any network functions for talking to SSH
    or any other server. To access a remote filesystem, you need to provide
    your own code or make use of some other virtual filesystem layer.

More information

  • \ref page_downloads
  • \ref versioning
  • \ref page_install
  • \ref page_api
  • \ref page_support
  • \ref page_contributing
  • \ref rdiff command line interface
  • \ref NEWS.md
  • \ref page_formats

主要指標

概覽
名稱與所有者librsync/librsync
主編程語言C
編程語言C (語言數: 5)
平台
許可證GNU Lesser General Public License v2.1
所有者活动
創建於2014-04-22 05:36:08
推送於2025-05-08 15:20:48
最后一次提交2025-05-08 08:20:47
發布數13
最新版本名稱v2.3.4 (發布於 )
第一版名稱v1.0.0 (發布於 )
用户参与
星數750
關注者數35
派生數148
提交數1.7k
已啟用問題?
問題數114
打開的問題數23
拉請求數125
打開的拉請求數2
關閉的拉請求數22
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?