一个在纯 Rust 中优化的 librsync 实现。
在 librsync 中实现更快的同步 使用纯 Rust,在可用的情况下使用 SIMD 操作。请注意,仅支持传统的 MD4 支持格式化,而不是 BLAKE2。 目前, SIMD 支持 x86、x86-64 和 aarch64 目标。
此框架提供了三个主要 API:
Signature::calculate,它接受一个数据块,并返回该数据的“签名”,该签名比原始数据小得多。 2. diff,它接受某个块 A 的签名和数据块 B,并返回块 A 和块 B 之间的差异。如果 A 和 B 相似,则差异通常比块 B 小得多。 3. apply,它接受块 A 和一个差异(由 diff 构造),并(通常)返回块 B。这些函数可用于实现一种协议,以便在网络上高效地传输数据。假设主机 A 和 B 具有类似的某个文件 "foo" 版本,主机 B 希望获取主机 A 的副本。
(*) 请注意警告。fast_rsync 签名使用不安全的 MD4 算法。因此,您不应相信 diff 会生成正确的差异。您必须始终使用其他机制来验证 apply 的输出的完整性,例如 SHA-256 等密码学散列函数。
暂无开放 Issues,或尚未同步最近议题。