Skip to content

Releases

1.5.0

Choose a tag to compare

@vaultah vaultah released this 05 Feb 15:33
38c85a4
  • Python 3.13 support and wheels.
  • For encrypted repositories, keys can now be created without a password, in which case secrets will be stored within the key in plaintext. As such, non-password-protected keys must be stored securely. Password-protected keys are still supported.

CLI changes:

  • init command no longer requires a password when creating encrypted repositories
  • add-key command no longer requires a password for the new key
  • stricter validation for init and add-key settings

Python API changes:

  • Repository.init now returns an instance of InitResult and no longer requires password argument when creating encrypted repositories
  • Repository.add_key now returns an instance of AddKeyResult and no longer requires password argument
  • Repository.snapshot now returns an instance of SnapshotResult
  • Repository.restore now returns an instance of RestoreResult with paths of restored files and digests of chunks that those files referenced
  • Repository.upload_objects now always returns None
  • Repository.list_objects now returns a list of object paths
  • stricter validation for init and add_key settings

Miscellaneous changes:

  • revised README
  • added Trove classifiers
  • replaced the deprecated appdirs with platformdirs
  • sprinkled in some type annotations and stubs, added mypy step to the linting script

1.4.1

Choose a tag to compare

@vaultah vaultah released this 28 Oct 01:37
cb9489f
  • More wheels.
  • Python 3.12 support.

1.4.0

Choose a tag to compare

@vaultah vaultah released this 13 May 14:38
fa7030f
  • You can now use TOML configuration file to define common arguments for replicat commands, organize them into profiles, and load them using the --profile CLI option. Consult --help output for the default location of the file, or provide it explicitly via the --config CLI option, or pass --ignore-config to ignore configuration file altogether.

  • The new -L/--limit-rate option enables rate limiting for uploads and downloads through snapshot, restore, upload-objects, and download-objects CLI commands. The corresponding methods in the Python API received the rate_limit argument, which serves the same purpose.

  • CLI options -S/--snapshot-regex, -F/--file-regex, and -O/--object-regex can now be repeated. replicat will combine repeated options using OR (|).

  • When creating snapshots, replicat will record hash digests of entire files, too. Use lf/list-files command to retrieve them.

  • List of columns returned by list-snapshots and list-files commands can now be configured via the new --columns CLI option (refer to --help for the supported values). Pass the --no-header option to omit the table header. Corresponding methods in the Python API accept columns and header arguments, which serve the same purpose.

  • add-key command has been equipped with the new --clone CLI option, which allows you to generate a new key with the same secrets and using the same password as the old key (IOW, rewrap it). For example, you could use this to change KDF parameters.

  • Added support for SHA2 and SHA3 hash algorithms.

  • scrypt's default work factor for new keys has been reduced 4x (r = 2 ^ 22 to r = 2 ^ 20). Old keys can be converted to the new parameters using replicat add-key --clone (the new default will be picked up automatically).

  • Applied actually meaningful runtime and startup optimizations, enhanced progress indication (particularly in restore), soft-locked versions of dependencies, made minor correctness improvements.

  • Beefed README.md up.

1.3.2

Choose a tag to compare

@vaultah vaultah released this 13 Nov 21:46
37651cd
  • Fix a regression in the restore command, which caused the command to fail if it encountered a chunk referenced multiple times by the same file (see #36).

1.3.1

Choose a tag to compare

@vaultah vaultah released this 03 Nov 18:57
1313ca0
  • Ship wheels for Python 3.11.
  • Make delete prompt more helpful.

1.3.0

Choose a tag to compare

@vaultah vaultah released this 02 Nov 22:20
ca7f3bd
  • The upload CLI command has been renamed to upload-objects. The upload method of Repository has been renamed to upload_objects.
  • Low-level CLI commands download-objects, list-objects, and delete-objects have been added. They correspond to the new download_objects, list_objects, and delete_objects methods of Repository.
  • Backends are now required to implement one additional method (see Backend.download_stream and existing implementations).
  • When creating new snapshots, replicat will retrieve creation, modification, and access timestamps of files with nanosecond precision. It will also restore this metadata on restore for both new and old snapshots, which continue to be supported.
  • The delete command will now ask for confirmation before deleting anything, just like the newly added delete-objects. Pass -y/--yes to suppress the prompt.
  • After a snapshot is deleted via the delete command, the cached version will be removed as well.
  • Fixed handling of filenames with special and non-ASCII characters by B2, S3, and S3C backends.
  • Performance has been improved.

1.2.3

Choose a tag to compare

@vaultah vaultah released this 03 Aug 12:12
f4437f9
  • Now supports Python 3.8.

1.2.2

Choose a tag to compare

@vaultah vaultah released this 17 Jul 15:50
5ac1c18
  • Fix a regression in 1.2.1 that caused CLI to ignore user-defined values for -r/--repository. See #15.

1.2.1

Choose a tag to compare

@vaultah vaultah released this 11 Jul 22:13
dae4f11
  • Fix a minor oversight that caused the -r/--repository argument to disappear from the help message.

1.2.0

Choose a tag to compare

@vaultah vaultah released this 24 Jun 23:57
b8998dd
  • Implement stricter and more efficient CLI argument parsing
  • Speed up startup
  • Avoid loading all the downloaded snapshots into RAM
  • Add --cache-directory and --no-cache CLI options
  • Add replicat.__version__ and the corresponding CLI flag
  • Send status messages to stderr instead of stdout