19 个版本 (稳定版)
2.6.0 | 2024年7月21日 |
---|---|
2.5.0 | 2024年3月28日 |
2.4.0 | 2023年12月29日 |
2.3.0 | 2023年10月7日 |
0.5.0 | 2021年2月1日 |
在 文本处理 中排名 3
每月下载量 1,975,322
在 1,641 个 Crates 中使用 (直接使用 130 个)
185KB
4K SLoC
Similar:一个 Diffing 库
Similar 是一个针对 Rust 的无依赖项 crate,它实现了不同的 diffing 算法和高级接口。它基于 Patience 算法的 pijul 实现,并从中借鉴了一些想法。它还结合了由 Brandon Williams 大量编写的 Myers diff 算法。此库是为 insta 快照测试库 构建的。
use similar::{ChangeTag, TextDiff};
fn main() {
let diff = TextDiff::from_lines(
"Hello World\nThis is the second line.\nThis is the third.",
"Hallo Welt\nThis is the second line.\nThis is life.\nMoar and more",
);
for change in diff.iter_all_changes() {
let sign = match change.tag() {
ChangeTag::Delete => "-",
ChangeTag::Insert => "+",
ChangeTag::Equal => " ",
};
print!("{}{}", sign, change);
}
}
截图
盒子里有什么?
- Myer's diff
- 耐心 diff
- Hunt–McIlroy / Hunt–Szymanski LCS diff
- 在任意可比较序列上 diff
- 行、单词、字符和字形级别 diff
- 文本和字节 diff
- 生成统一 diff
相关项目
- insta 快照测试库
- similar-asserts 断言库
许可证和链接
- 文档
- 问题跟踪器
- 示例
- 许可证: Apache-2.0
依赖项
~0–700KB
~10K SLoC