2个版本
0.1.1 | 2019年10月30日 |
---|---|
0.1.0 | 2019年10月22日 |
#12 in #rsync
35KB
677 行
librsyncr
librsyncr 是一个Rust库,可以在不访问同一系统上的两个文件的情况下计算两个文件之间的差异。它是librsync C库的重新实现(不查看librsync源代码),签名和差异文件与该库兼容。C库有3562行C代码(不包括注释或供应商的Blake2和MD4代码),但这个库只有753行。
strong_hash
功能
默认用于从签名文件中查找块的哈希不抵抗哈希DoS攻击。如果您正在将此库用于处理不受信任的签名文件的网络服务,您可能需要启用 strong_hash
功能。
性能
在Intel Core-i7-6700K 4.0 GHz处理器上使用Wikiquote存档文件(约38 MB)进行测试
# this library
./target/release/examples/rdiff signature ./enwikiquote-20170501-abstract.xml ./enwikiquote-20170501-abstract-sig.xml
85ms (447 MB/s)
# librsync
./rdiff signature ./enwikiquote-20170501-abstract.xml ./enwikiquote-20170501-abstract-sig.xml
77ms (494 MB/s)
# this library
./target/release/examples/rdiff delta ./enwikiquote-20170501-abstract-sig.xml ./enwikiquote-20170701-abstract.xml ./enwikiquote-delta.xml
115ms (330 MB/s)
# librsync
./rdiff delta ./enwikiquote-20170501-abstract-sig.xml ./enwikiquote-20170701-abstract.xml ./enwikiquote-delta.xml
118ms (322 MB/s)
# this library
./target/release/examples/rdiff patch ./enwikiquote-20170501-abstract.xml ./enwikiquote-delta.xml ./enwikiquote-new.xml
67ms (567 MB/s)
# librsync
./rdiff patch ./enwikiquote-20170501-abstract.xml ./enwikiquote-delta.xml ./enwikiquote-new.xml
24ms (1583 MB/s)
文件格式
C librsync库有签名文件格式文档,.NET librsync库有差异文件格式文档。
许可协议
在Mozilla公共许可证版本2.0下授权。
依赖项
~280KB