# openrsync: an ISC implementation of rsync protocol 27

> An ISC-licensed rsync that copies a directory and checks the result. regress/functional/test00_simple.test builds dir1/one.txt, an expected tree under dir2, runs openrsync -a from dir1 to dir3, and compare_trees diffs the listings and file contents.

- Type: Case study
- Targets: Protocol
- Category: Independent reconstruction cases
- Relationship: Independent reconstruction project
- Sources reviewed: 2026-11-03
- Added to the catalog: 2026-11-09
- Original resource: <https://github.com/kristapsdz/openrsync>
- Primary source: <https://github.com/kristapsdz/openrsync/blob/8235c68f11b4fad5e24849a01d04ea153c29ee28/README.md>
- Catalog page: <https://awesomerea.org/resources/openrsync-protocol-case/>
- Record JSON: <https://awesomerea.org/resources/openrsync-protocol-case/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/openrsync-protocol-case/index.md)

## Requirements & limits

- **Scope:** Commit 8235c68f11b4fad5e24849a01d04ea153c29ee28. The README calls openrsync an implementation of rsync with a BSD (ISC) license, compatible with rsync 3.1.3 and with any peer that supports protocol 27. rsync.5 says it is compatible with version 27 of the reference. The officially supported system is OpenBSD.
- **Testing evidence:** regress/functional/conf.sh sets rsync to ./openrsync unless that variable is already set. test00_simple.test creates dir1/one.txt with mkdirfile, builds the same file under dir2/dir1, runs $rsync -a dir1 dir3, and calls compare_trees dir2 dir3. compare_trees diffs file listings, directory listings, and then file contents with diff -ru. make regress_functional runs these tests.
- **License:** LICENSE.md grants permission to use, copy, modify, and/or distribute the software for any purpose, provided the copyright notice is kept. The copyright line is 2019, Kristaps Dzonsons.

## Primary sources

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>

## More in Protocols

- [Thermal Master P3: a browser client for the vendor USB protocol](https://awesomerea.org/resources/thermal-master-p3-protocol-case/index.md) · Case study
- [SNX-VPN: reconstructing Check Point browser login for SNX](https://awesomerea.org/resources/snxvpn-case/index.md) · Case study
- [OpenDS: reconstructing an FRC Driver Station client](https://awesomerea.org/resources/opends-frc-case/index.md) · Case study
- [CO/Tech power plugs: reproducing captured radio commands](https://awesomerea.org/resources/cotech-remote-control-case/index.md) · Case study
- [ts3j: a Java implementation of the TeamSpeak 3 client protocol](https://awesomerea.org/resources/ts3j-protocol-case/index.md) · Case study
- [WCH BLE Analyzer Pro: reconstructing its USB capture protocol for Linux](https://awesomerea.org/resources/wch-ble-analyzer-pro-linux-case/index.md) · Case study

## About this entry

The description was reviewed against primary sources.
Original editorial content: MIT. Linked projects, papers and assets retain their own rights and licenses.
