Roadmap for restic 0.17 to 0.19

The following is a rough roadmap draft for upcoming restic versions. The roadmap for restic
0.18 and 0.19 only contains the planned major features, we’ll see about the rest once we’re there.
The plan may change over time depending on newly arising issues or pull requests.

The “reduce number of … PR”
task is a wildcard task to slowly reduce the number of waiting PRs without completely
stopping the development of new features.

Restic 0.17

The current state is tracked at Restic 0.17 roadmap · GitHub

  • Feature flags #4601 + initial deprecations #4602
  • Restore inplace support #4575
  • Backup stats #693
  • Network connection timeouts #4193
  • Incremental prune #3806
    • index pruning as a scan over all index files
    • prune memory optimization #4354
  • Reduce number of pre-0.16.0 PR to 25-30
    • S3 AWS Assume Role #4474
    • Extended options for Windows VSS #3067
    • Add retries flag #2515
    • Forget with keeping unknown tag #4568
  • Repository refactoring
    • Drop CleanupHandlers and always use context cancellation
    • Refactor locking code into internal/repository + Readonly(accepts --no-lock)/Append-only/Remove(exclusive) mode
    • Ensure that only internal/repository can write/delete unpacked files other than snapshots

Restic 0.18

  • Support for large directories #2446 + #3583
    • efficient handling of very large files / xattrs #3643
  • limited variant of --strip-prefix ... #2092
  • Start concurrent prune discussion #1141
  • Reduce number of pre-0.17.0 PRs to 20-25
    • Only store device ID for hardlinks #4006
    • check with in-place cache #3747
    • reconnect SFTP #4058

Restic 0.19

  • Non-blocking prune #1141
    • refactor prune into repository, prevent delete/write that bypass the repository struct
    • prune with little additional temporary storage if possible
    • blast radius reduction
    • automatic removal of stale locks #2736
  • Reduce number of pre-0.18.0 PRs to 15-20
    • Support .gitignore #4227

Not knowing that restic 0.16.3 (great program, btw!) doesn’t do ‘inplace’ restore, I just did that a week ago. And for what I experienced, it worked. So, what am I missing? What did really happen when I restored /opt/local with restore -t / (as root)? It seems to have just worked.

There are some corner cases like readonly folders that cause problems; overwriting symlinks was only fixed a few releases ago. The main improvement for inplace restores will however be the support for resuming restores.


The roadmap part for restic 0.17 is now tracked at Restic 0.17 roadmap · GitHub .