Overview
reflect is rsync’s little brother. Same job — make this tree look like that tree — same muscle memory (reflect src/ dest/), but built as a library + CLI instead of a daemon on port 873.
Linux and macOS only. Source stays in the hold; this page ships the brand, the idea, and a curated speed board.
Speed board
Wall times, warm page cache, single run. vs rsync is rsync / reflect — above 1.0 means reflect is faster.
| CORPUS | REFLECT | RSYNC | CP | TAR | VS RSYNC |
|---|---|---|---|---|---|
| small | 0.138s | 0.475s | 0.286s | 0.255s | 3.44× |
| large | 0.021s | 0.177s | 0.017s | 0.283s | 8.4× |
| sparse | 0.009s | 3.027s | 0.007s | 1.148s | 336× |
| deep | 0.056s | 0.134s | 0.065s | 0.047s | 2.39× |
| incremental | 0.036s | 0.091s | 0.291s | 0.502s | 2.53× |
- small
- 8 000 files / 400 dirs, ~62.4 MiB
- large
- one 256 MiB blob
- sparse
- 1 GiB logical, ~1 MiB data
- deep
- 2 000 files, depth 8, ~269 KiB
- incremental
- 1% of a seeded small tree flipped
2026-09-11 — feature completion. AMD Ryzen 5 7600X, Linux (btrfs), Zig 0.16.0, rsync 3.5.0, ReleaseSafe. Sparse vs-rsync is inflated by an outlier rsync run; treat 336× as a hole-preserving copy story, not a ranking move — the gauge pins at 10× and shows a “+”.
Features
| rsync | reflect | |
|---|---|---|
| CLI | yes | yes |
| Daemon | yes | no |
| Library | no | yes (libreflect + C ABI) |
Familiar flags. SSH when you need it. No inherited config file from 2003.