a C library of Client-side rsync over HTTP via curl
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
android
doc
extra
libcurl
libs
src
.gitignore
CMakeLists.txt
LICENSE
README.md

README.md

TODO

V0.1.0 可用,但性能有问题
V0.2.0 Commits on Jan 8, 2016。未打Tag,可用,性能优化。
V0.3.0 计划把整个工程从QMake切换至CMake,完善可用性。未完成。

crsync

a C library of Client-side rsync over HTTP via curl

Guide

基于rsync算法的客户端二进制增量差异更新组件

  1. 纯C语言实现, 使用libcurl HTTP通讯,跨平台兼容性良好。
  2. 客户端使用rsync算法计算与服务器新版本的二进制差异,并增量下载更新数据。
  3. 服务器仅需支持HTTP File传输,普通CDN即可,无须搭建rsyncd。
  4. 目前已支持Android,Windows,理论上支持所有平台。
  5. 源码简单易懂,核心部分仅1000行,可随意扩展修改。

Workflow

  • 服务端生成新版本的摘要文件, 并部署到HTTP FileServer
  • 客户端使用libcurl下载资源,断点续传。
  • 客户端计算文件版本差异,增量下载差异内容并合并到本地。
  • 客户端附带一个轻量级版本控制策略组件。

Android Build

  • Run src/crsync-build.cmd, output src/libs/TARGET_ARCH_ABI/libcrsync.so.

Qt MinGW Build

  • build src/crsync.pro, output src/m32/crsync.exe

Patent

一种数据文件的增量更新方法和服务器、客户端以及系统,由原团队成员撰写并申请。