← BACK TO RIGGING

reflect

rsync’s little brother — a library and CLI, no daemon.

Zig CLI C ABI

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.

0× small tree vs rsync
0× large blob vs rsync
0×+ sparse image vs rsync
0× incremental vs rsync
Reflect versus rsync, cp, and tar
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

rsyncreflect
CLIyesyes
Daemonyesno
Librarynoyes (libreflect + C ABI)

Familiar flags. SSH when you need it. No inherited config file from 2003.