Skip to content

docs: refresh the comparison table for the 2.4.0 feature set - #180

Merged
pmaxhogan merged 1 commit into
mainfrom
docs/comparison-refresh
Jul 26, 2026
Merged

pmaxhogan merged 1 commit into
mainfrom
docs/comparison-refresh

Conversation

@pmaxhogan

Copy link
Copy Markdown
Owner

Six new rows in "How Driven compares" for what landed since v2.3.0, plus a
re-verification of every competitor cell I touched against current upstream
docs. Docs-only; no code or site-landing/ changes (the landing page has no
mirror of this table).

Rows added

Row Why
Re-uploads backup copies deleted at the destination #171 (audit) + #168 (live self-heal)
Parallel, multi-threaded local scan #169
OS-level CPU / disk I/O priority for backup work #170, #173, #176, #179
Live preview of which files a rule keeps or drops #172, #177
Rolling local logs plus a one-click diagnostics bundle #167
Reproducible end-to-end benchmark suite in the repo #178

Also: a :grey_question: legend entry ("not documented"), so a closed-source
client whose behaviour Google or Backblaze simply does not publish is marked
honestly instead of being guessed at; the intro paragraph now mentions the
priority work; the Features list gains the parallel scanner, the preview, the
priority setting, the remote audit, and rolling logs; and just bench is in
the recipe list with a pointer to bench/README.md.

On the benchmark numbers

I deliberately quoted no upload throughput from #178. That was a 16 MiB /
300-file smoke run - a pipeline proof, not a verdict - and a headline MiB/s
from it would not survive scrutiny. The two numbers that did make it in are
locally measured and honest at their scale: the exclusion-preview
re-classification (536 ms cached vs 868 ms fresh walk on a 63k-entry tree,
from #177) and the scan thread clamp. The bench suite appears as a row on its
own merits, with the caveats left in bench/README.md.

Competitor claims and where each was verified

Versions checked: rclone 1.74.4, restic 0.19.1, Duplicati 2.3.0.4,
Backblaze Personal Backup 10.0.2, Drive for desktop 128.0.

CPU / I/O priority - nobody else has it. rclone has no priority code and
closed both requests pointing at ionice
(rclone/rclone#864). restic's FAQ answers "How to
prioritize restic's IO and CPU time" entirely with ionice/nice recipes
(https://restic.readthedocs.io/en/stable/faq.html). Duplicati still accepts
--thread-priority but the shipping string is "has no effect, use the
operating system controls to set the process priority"
(Duplicati/Library/Main/Options.cs at the v2.3.0.4_stable_2026-07-09 tag)

Parallel scan. rclone walks at --checkers (8) and transfers at
--transfers (4) (https://rclone.org/docs/). Duplicati's
FileEnumerationProcess is a single serial task with the concurrency
downstream of it, so its walk is a genuine :x: (source at the stable tag).
restic reads at --read-concurrency, default 2
(https://restic.readthedocs.io/en/stable/manual_rest.html). Google and
Backblaze document nothing about scan concurrency - hence the new
"not documented" marker rather than a guessed :x:.

Destination-side deletion. rclone gets a :white_check_mark: here, not an
:x:: it keeps no state, so copy/sync re-list the destination every run
and re-transfer anything missing (https://rclone.org/commands/rclone_sync/).
The note says so plainly, including that this is why it is slower on the
incremental case. Drive for desktop is the one that is worse than absent -
"any files you put in the trash are put in the trash everywhere"
(https://support.google.com/drive/answer/2375102). Duplicati and restic detect
damage but recovery is operator-driven (Duplicati's RepairHandler.cs refuses
missing dblock files without --rebuild-missing-dblock-files; restic's
troubleshooting doc says re-run backup to heal,
https://restic.readthedocs.io/en/stable/077_troubleshooting.html). Backblaze
documents nothing either way, so it is marked not-documented rather than :x:.

Live rule preview - and one claim I had to walk back. Duplicati shipped
server-evaluated inclusion state in its tree UI in 2.3.0.4 on 2026-07-09
(duplicati/duplicati#6955, closing a six-year-old
request, duplicati/duplicati#4194). Six weeks ago
"nobody else has this" would have been true; it is not any more, so Duplicati
gets a :white_check_mark: and the note records the remaining difference
(it marks the nodes you expand, with no whole-source counts). rclone and
restic are --dry-run only.

Logs and diagnostics. Driven is not unique here and the row shows that:
Drive for desktop and Backblaze both get :white_check_mark:
(https://knowledge.workspace.google.com/admin/drive/capture-google-drive-for-desktop-logs-for-support,
https://www.backblaze.com/computer-backup/docs/send-logs-to-backblaze-windows).
Duplicati is partial - its "Create bug report" bundle is real, but file
logging is opt-in, warnings-only by default, and unrotated. restic has no
log-file option at all.

Benchmark suite. Negative evidence for all five (repo tree listings plus
code search); the note names Duplicati's unreleased AutoTune harness and
Backblaze's B2-not-client benchmark rather than pretending there is nothing
adjacent.

No existing rows were removed and none had become false. The trailing line
now names the exact versions checked instead of just the month.

Checks

  • 40 notes, sequential, every table marker resolves to one and every note is
    cited (validated by script).
  • All 27 table rows have 7 cells.
  • Zero em/en dashes or other dash-like non-ASCII; only the superscript digits
    the file already used. git ls-files --eol reports w/lf.
  • README is not covered by prettier or any markdown linter in CI (prettier
    runs against ui/src only), so there is no formatting gate to run.
  • deploy-landing.yml's TAGLINE_MARKER is the README's first line, which is
    untouched.

🤖 Generated with Claude Code

https://claude.ai/code/session_01JLB3E2Jm7knNJd37fVpH8X

Adds six rows covering what landed since v2.3.0 (destination-deletion
healing, parallel scanning, OS I/O priority, live exclusion preview,
rolling logs plus diagnostics bundle, and the benchmark suite), and
re-verifies the competitor cells against current upstream docs.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JLB3E2Jm7knNJd37fVpH8X
@github-actions

Copy link
Copy Markdown
Contributor

Coverage

Area main this PR delta
Rust (lib crates) 80.94% 80.94% +0.00 (OK)
UI (vue/ts) 91.40% 91.40% +0.00 (OK)

Gate: passed - no coverage regression (epsilon 0.1 pp).

@pmaxhogan
pmaxhogan merged commit e669d57 into main Jul 26, 2026
18 checks passed
@pmaxhogan
pmaxhogan deleted the docs/comparison-refresh branch July 26, 2026 00:29
@github-project-automation github-project-automation Bot moved this from Todo to Done in Driven Jul 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant