# openrsync：ISC 许可的 rsync 协议 27 实现

> 一个 ISC 许可的 rsync 实现，复制目录并核对结果。regress/functional/test00_simple.test 生成 dir1/one.txt 和 dir2 下的预期目录树，用 openrsync -a 把 dir1 复制到 dir3，再由 compare_trees 比较目录清单和文件内容。

- 类型：案例
- 目标：协议
- 类别：独立重建案例
- 关联：独立重建项目
- 来源复核于：2026-11-03
- 收录于：2026-11-09
- 原始资源：<https://github.com/kristapsdz/openrsync>
- 一手来源：<https://github.com/kristapsdz/openrsync/blob/8235c68f11b4fad5e24849a01d04ea153c29ee28/README.md>
- 目录页面：<https://awesomerea.org/zh/resources/openrsync-protocol-case/>
- 记录 JSON：<https://awesomerea.org/resources/openrsync-protocol-case/record.json>
- 英文版：[English](https://awesomerea.org/resources/openrsync-protocol-case/index.md)

## 使用条件与局限

- **范围：**提交 8235c68f11b4fad5e24849a01d04ea153c29ee28。README 称 openrsync 是采用 BSD（ISC）许可的 rsync 实现，与 rsync 3.1.3 兼容，也与任何支持协议 27 的对端兼容。rsync.5 写明它与参考实现的第 27 版兼容。官方支持的系统是 OpenBSD。
- **测试证据：**regress/functional/conf.sh 在变量尚未设置时把 rsync 设为 ./openrsync。test00_simple.test 用 mkdirfile 建立 dir1/one.txt，并在 dir2/dir1 下放同一份文件，然后运行 $rsync -a dir1 dir3，再调用 compare_trees dir2 dir3。compare_trees 比较文件清单、目录清单，再用 diff -ru 比较文件内容。make regress_functional 运行这些测试。
- **许可：**LICENSE.md 允许为任何目的使用、复制、修改和/或分发本软件，只要保留版权声明。版权行是 2019 年 Kristaps Dzonsons。

## 一手来源

1. <https://github.com/kristapsdz/openrsync/blob/8235c68f11b4fad5e24849a01d04ea153c29ee28/README.md>
2. <https://github.com/kristapsdz/openrsync/blob/8235c68f11b4fad5e24849a01d04ea153c29ee28/rsync.5>
3. <https://github.com/kristapsdz/openrsync/blob/8235c68f11b4fad5e24849a01d04ea153c29ee28/regress/functional/test00_simple.test>
4. <https://github.com/kristapsdz/openrsync/blob/8235c68f11b4fad5e24849a01d04ea153c29ee28/regress/functional/lib.sh>
5. <https://github.com/kristapsdz/openrsync/blob/8235c68f11b4fad5e24849a01d04ea153c29ee28/regress/functional/conf.sh>
6. <https://github.com/kristapsdz/openrsync/blob/8235c68f11b4fad5e24849a01d04ea153c29ee28/LICENSE.md>

## 同分区更多条目：协议

- [Thermal Master P3：浏览器里的厂商 USB 协议客户端](https://awesomerea.org/zh/resources/thermal-master-p3-protocol-case/index.md) · 案例
- [SNX-VPN：重建 Check Point SNX 的浏览器登录流程](https://awesomerea.org/zh/resources/snxvpn-case/index.md) · 案例
- [OpenDS：重建 FRC Driver Station 客户端](https://awesomerea.org/zh/resources/opends-frc-case/index.md) · 案例
- [CO/Tech 电源插座：复现采集到的无线电命令](https://awesomerea.org/zh/resources/cotech-remote-control-case/index.md) · 案例
- [ts3j：TeamSpeak 3 客户端协议的 Java 实现](https://awesomerea.org/zh/resources/ts3j-protocol-case/index.md) · 案例
- [WCH BLE Analyzer Pro：重构 Linux 抓包所需的 USB 协议](https://awesomerea.org/zh/resources/wch-ble-analyzer-pro-linux-case/index.md) · 案例

## 关于此条目

说明已依据一手来源复核。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
