Blog

Release notes, internals, and the occasional benchmark.

v0.2.4 — streaming dedup and ignore patterns

The release that finally made pinemere usable for daily backups. Streaming mode, .pineignore, and a rewritten manifest format.

How Merkle-tree dedup actually works in pinemere

A walkthrough of the chunking strategy, hash tree construction, and why we ended up with variable-size blocks.

NVMe vs spinning rust: sync benchmarks

Real numbers from syncing 48 GB of photos across different storage backends. Spoiler: the bottleneck is almost never where you think.