1
1
# Comparison between ` rustic ` and ` restic `
2
2
3
3
Note that we regularly update this document to compare the latest versions of
4
- rustic and restic. Currently, we compare restic 0.17.1 with rustic 0.9.1.
5
-
6
- You can also read a
7
- [ simple comparison of borg, restic and rustic blogpost] ( https://archive.ph/So9vG ) .
4
+ rustic and restic. Currently, we compare restic 0.17.3 with rustic 0.9.5.
8
5
9
6
## General differences
10
7
@@ -66,7 +63,7 @@ You can also read a
66
63
| ` ls ` | ✅ | ✅ |
67
64
| ` merge ` | ❌ | ✅ |
68
65
| ` migrate ` | ✅ | ❌ (not needed; repo version migration via ` config ` ) |
69
- | ` mount ` | ✅ | ❌ (WIP) |
66
+ | ` mount ` | ✅ | ✅ (linux only) |
70
67
| ` prune ` | ✅ | ✅ |
71
68
| ` recover ` | ✅ | ❌ |
72
69
| ` repair index ` | ✅ | ✅ |
@@ -108,8 +105,8 @@ You can also read a
108
105
| ` --insecure-tls ` | ✅ | ❌ |
109
106
| ` --json ` | ✅ | ✅ |
110
107
| ` --key-hint ` | ✅ | ❌ |
111
- | ` --limit-download ` | ✅ | ❌ (for opendal option ` trottle ` ) |
112
- | ` --limit-upload ` | ✅ | ❌ (for opendal option ` trottle ` ) |
108
+ | ` --limit-download ` | ✅ | (✅) (for opendal option ` trottle ` ) |
109
+ | ` --limit-upload ` | ✅ | (✅) (for opendal option ` trottle ` ) |
113
110
| ` --log-file ` | ❌ | ✅ (or in config profile) |
114
111
| ` --no-cache ` | ✅ | ✅ (or in config profile) |
115
112
| ` --no-extra-verify ` | ✅ needed in every call | ✅ configure once using ` config ` |
@@ -159,7 +156,8 @@ You can also read a
159
156
| by date/time | ❌ | ✅ ` --filter-before ` , ` filter-after ` |
160
157
| by size | ❌ | ✅ ` --filter-size ` |
161
158
| by size added to repo | ❌ | ✅ ` --filter-size-added ` |
162
- | custom | ❌ | ✅ ` --filter-fn ` (using [ Rhai] ( https://rhai.rs/ ) ) |
159
+ | custom Rhai | ❌ | ✅ ` --filter-fn ` (using [ Rhai] ( https://rhai.rs/ ) ) |
160
+ | custom ` jq ` syntax | ❌ | ✅ ` --filter-jq ` |
163
161
164
162
## Comparison of important commands
165
163
@@ -177,10 +175,10 @@ You can also read a
177
175
178
176
### ` backup `
179
177
180
- | general | ` restic ` | ` rustic ` |
181
- | ----------------------------------------------- | -------- | -------- |
182
- | allow to create multiple snapshot in single run | ❌ | ✅ |
183
- | allow to backup relative paths | ❌ | ✅ |
178
+ | general | ` restic ` | ` rustic ` |
179
+ | ----------------------------------------------- | --------------------------- | -------- |
180
+ | allow to create multiple snapshot in single run | ❌ | ✅ |
181
+ | allow to backup relative paths | (✅) full path in snapshots | ✅ |
184
182
185
183
| option | ` restic ` | ` rustic ` (options also in config profile) |
186
184
| ----------------------- | --------------------------------- | ----------------------------------------- |
@@ -252,15 +250,17 @@ You can also read a
252
250
253
251
### ` dump `
254
252
255
- | general | ` restic ` | ` rustic ` |
256
- | ---------- | -------- | -------- |
257
- | dump files | ✅ | ✅ |
258
- | dump dirs | ✅ | ❌ |
253
+ | general | ` restic ` | ` rustic ` |
254
+ | ----------------------------------- | -------- | -------- |
255
+ | dump files | ✅ | ✅ |
256
+ | dump dirs | ✅ | ✅ |
257
+ | allow auto-detection of used format | ❌ | ✅ |
259
258
260
- | option | ` restic ` | ` rustic ` |
261
- | --------------------------------------- | -------- | ----------------------- |
262
- | snapshot filtering options for ` latest ` | ✅ | ✅ |
263
- | ` --archive ` | ✅ | ❌ (no dumping of dirs) |
259
+ | option | ` restic ` | ` rustic ` |
260
+ | --------------------------------------- | ------------ | ------------------------------- |
261
+ | snapshot filtering options for ` latest ` | ✅ | ✅ |
262
+ | ` --archive ` | ✅ (tar,zip) | ✅ (tar,targz,zip,content,auto) |
263
+ | ` --target ` | ✅ | ✅ ` --file ` |
264
264
265
265
### ` forget `
266
266
@@ -273,13 +273,17 @@ You can also read a
273
273
| ------------------------------ | -------------------- | ----------------------------------------- |
274
274
| snapshot filtering options | ✅ | ✅ |
275
275
| ` --keep-last ` | ✅ | ✅ |
276
+ | ` --keep-minutely ` | ❌ | ✅ |
277
+ | ` --keep-hourly ` | ✅ | ✅ |
278
+ | ` --keep-daily ` | ✅ | ✅ |
276
279
| ` --keep-daily ` | ✅ | ✅ |
277
280
| ` --keep-weekly ` | ✅ | ✅ |
278
281
| ` --keep-monthly ` | ✅ | ✅ |
279
282
| ` --keep-quarter-yearly ` | ❌ | ✅ |
280
283
| ` --keep-half-yearly ` | ❌ | ✅ |
281
284
| ` --keep-yearly ` | ✅ | ✅ |
282
285
| ` --keep-within ` | ✅ | ✅ |
286
+ | ` --keep-within-minutely ` | ❌ | ✅ |
283
287
| ` --keep-within-hourly ` | ✅ | ✅ |
284
288
| ` --keep-within-daily ` | ✅ | ✅ |
285
289
| ` --keep-within-weekly ` | ✅ | ✅ |
@@ -288,7 +292,7 @@ You can also read a
288
292
| ` --keep-within-half-yearly ` | ❌ | ✅ |
289
293
| ` --keep-within-yearly ` | ✅ | ✅ |
290
294
| ` --keep-tag ` | ✅ | ✅ |
291
- | ` --usafe-allow-remove-all ` | ✅ | ✅ --keep-none` |
295
+ | ` --usafe-allow-remove-all ` | ✅ | ✅ ` --keep-none ` |
292
296
| ` --compact ` | ✅ | ❌ |
293
297
| ` --group-by ` | ✅ (host/paths/tags) | ✅ (host/label/paths/tags) |
294
298
| ` --prune ` | ✅ | ✅ |
@@ -390,25 +394,25 @@ You can also read a
390
394
| summarize snapshots with identical result (like ` +3 ` ) | ❌ | ✅ |
391
395
| fast searching for given full paths | ❌ | ✅ |
392
396
393
- | option | ` restic ` | ` rustic ` |
394
- | ------------------------------ | -------------------------- | -------------------------- |
395
- | ` --all ` | ❌ (no summarizing) | ✅ |
396
- | ` --blob ` | ✅ | ❌ |
397
- | ` --glob ` | ✅ (give patterns as args) | ✅ |
398
- | ` --group-by ` | ❌ | ✅ |
399
- | ` --ignore-case ` | ✅ | ✅ (` --iglob ` ) |
400
- | ` --long ` | ✅ | ❌ (default: long output) |
401
- | ` --newest ` | ✅ | (✅) use ` --filter-before ` |
402
- | ` --numeric-uid-gid ` | ❌ (default: numeric ids) | ✅ |
403
- | ` --oldest ` | ✅ | ✅ use ` --filter-after ` |
404
- | ` --pack ` | ✅ | ❌ |
405
- | ` --path ` (filter snapshots) | ✅ | ✅ ` --filter-path ` |
406
- | ` --path ` (full path to search) | ❌ | ✅ |
407
- | ` --show-pack-id ` | ✅ | ❌ |
408
- | ` --show-misses ` | ❌ | ✅ |
409
- | ` --snapshot ` | ✅ | ✅ (give ids as args) |
410
- | ` --tag ` | ✅ | ✅ ` --filter-tags ` |
411
- | ` --tree ` | ✅ | ❌ |
397
+ | option | ` restic ` | ` rustic ` |
398
+ | ------------------------------ | -------------------------- | ------------------------- |
399
+ | ` --all ` | ❌ (no summarizing) | ✅ |
400
+ | ` --blob ` | ✅ | ❌ |
401
+ | ` --glob ` | ✅ (give patterns as args) | ✅ |
402
+ | ` --group-by ` | ❌ | ✅ |
403
+ | ` --ignore-case ` | ✅ | ✅ (` --iglob ` ) |
404
+ | ` --long ` | ✅ | ❌ (default: long output) |
405
+ | ` --newest ` | ✅ | ✅ use ` --filter-before ` |
406
+ | ` --numeric-uid-gid ` | ❌ (default: numeric ids) | ✅ |
407
+ | ` --oldest ` | ✅ | ✅ use ` --filter-after ` |
408
+ | ` --pack ` | ✅ | ❌ |
409
+ | ` --path ` (filter snapshots) | ✅ | ✅ ` --filter-path ` |
410
+ | ` --path ` (full path to search) | ❌ | ✅ |
411
+ | ` --show-pack-id ` | ✅ | ❌ |
412
+ | ` --show-misses ` | ❌ | ✅ |
413
+ | ` --snapshot ` | ✅ | ✅ (give ids as args) |
414
+ | ` --tag ` | ✅ | ✅ ` --filter-tags ` |
415
+ | ` --tree ` | ✅ | ❌ |
412
416
413
417
### ` diff `
414
418
@@ -429,3 +433,7 @@ You can also read a
429
433
| ` --metadata ` | ✅ | ✅ |
430
434
| ` --no-content ` | ❌ | ✅ |
431
435
| exclude options for local files | ❌ (no diff with local files) | ✅ |
436
+
437
+ ## External Links
438
+
439
+ [ simple comparison of borg, restic and rustic blogpost] ( https://archive.ph/So9vG ) .
0 commit comments