10 个稳定版本
1.0.9 | 2024 年 5 月 6 日 |
---|---|
1.0.7 | 2023 年 7 月 15 日 |
1.0.6 | 2023 年 1 月 20 日 |
1.0.5 | 2022 年 12 月 17 日 |
1.0.1 | 2019 年 12 月 24 日 |
在 算法 中排名 #20
567,798 每月下载量
用于 584 个 包(32 个直接使用)
70KB
1.5K SLoC
Dissimilar:具有语义清理的 diff 库
这个库是将 Diff Match Patch 的 Diff 组件移植到 Rust 的结果。diff 实现基于 Myers' diff 算法,但包含一些 语义清理,通过提取可能偶然出现的共同点来提高可读性。
Diff Match Patch 最初于 2006 年构建,用于驱动 Google Docs。
[dependencies]
dissimilar = "1.0"
编译器支持:需要 rustc 1.36+
接口
以下是 Rust 实现的完整 API。它操作借用的字符串,diff 算法的返回值是一个指向输入字符串切片的块向量。
pub enum Chunk<'a> {
Equal(&'a str),
Delete(&'a str),
Insert(&'a str),
}
pub fn diff(text1: &str, text2: &str) -> Vec<Chunk>;
许可证
此包中的 diff 算法是用 https://github.com/google/diff-match-patch 中找到的 Java 和 C++ 实现移植到 Rust 的,并在此处根据原始许可证的 Apache 许可证 2.0 版提供。整个项目,包括未经修改的上游部分和移植过程中引入的 Rust 特定修改,均在此 Apache 许可证下分发。
除锈实现独有的知识产权外,还可以根据您的选择,在 MIT 许可证 下提供,如果需要的话。这适用于上游存储库中没有找到的所有设计选择和实现选择。
除非您明确声明,否则您根据 Apache-2.0 许可证定义的任何有意提交的、旨在包含在此包中的贡献,均将双重 Apache 和 MIT 许可,没有任何额外条款或条件。