Roadmap for the CLI

This post will serve as the roadmap for the CLI version. Only features mentioned below will be considered for development.

This post will remain closed to replies. Please continue the discussion of each feature in other threads (or create a new thread if there isn’t one).

Please note that the CLI is what powers the #web-ui, therefore most CLI optimisations will lead to a better overall experience for everyone.

Features to be worked on

  • Memory optimization – currently during the backup, the list of files in the local repository is loaded into memory and compared with the previous snapshot. This causes the memory usage to be proportional to the number of files. This comparison stage should be optimized to avoid loading the entire file list into memory and to generate metadata chunks on the fly.

  • Two pass scanning (aka bundle-or-chunk algorithm) from – this is to bundle small files together and split large files into chunks individually

  • Local config file – the config file can be kept locally to increase the security. We’ll add a switch to the init/add command to enable this option.

  • Add a -filters option to the preferences file to allow for a different set of include/exclude patterns for each storage

  • Allow the latest revision to be specified as -r latestRestore latest version of a file and How to check only the latest revision?

  • Support zlib compression and make the compression level configurable (so it will be possible to disable compression)

  • Support multiple downloading threads for the copy command