3 个版本

使用旧的 Rust 2015

0.1.2 2016年9月7日
0.1.1 2016年8月16日
0.1.0 2016年8月4日

7 in #filetime

29 每月下载量
用于 optra

CC0 许可

64KB
1K SLoC

rdiff

CC0 Build Status Crates.io

rdiff 是一个用于比较文件随时间版本的包。它用 Rust 编写,需要版本 > 1.8。

在法律允许的范围内,rdiff 的贡献者已放弃对 rdiff 的所有版权和相关或邻近权利。

文档

用法

Cargo.toml

[dependencies]
rdiff = "0.1"

在你的 Rust 文件中(从 examples/predefined.rs 获取)

extern crate rdiff;

use rdiff::BlockHashes;
use std::fs::File;

pub fn example() {
    let file = File::open("examples/filev1.txt").unwrap();
    let mut hashes = BlockHashes::new(file, 8).unwrap();
    let file = File::open("examples/filev2.txt").unwrap();
    let difference = hashes.diff_and_update(file).unwrap();
    println!("Inserts: {:?}", difference.inserts().collect::<Vec<_>>());
    println!("Deletes: {:?}", difference.deletes().collect::<Vec<_>>());
}

这将输出

Inserts: [Insert(8, 'widely understood '), Insert(90, ' absolutely'), Insert(381, 'hters, or sons if the family was progressive.\n'), Insert(572, 'not, even though he had been following the news quite closely.\n\n'), Insert(734, '\nMr. Ben')]
Deletes: [Delete(34, 24), Delete(428, 8), Delete(638, 8), Delete(742, 8)]

依赖项

~4MB
~56K SLoC