Repository navigation
Releases
1.5.0
- 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:
initcommand no longer requires a password when creating encrypted repositoriesadd-keycommand no longer requires a password for the new key- stricter validation for
initandadd-keysettings
Python API changes:
Repository.initnow returns an instance ofInitResultand no longer requirespasswordargument when creating encrypted repositoriesRepository.add_keynow returns an instance ofAddKeyResultand no longer requirespasswordargumentRepository.snapshotnow returns an instance ofSnapshotResultRepository.restorenow returns an instance ofRestoreResultwith paths of restored files and digests of chunks that those files referencedRepository.upload_objectsnow always returnsNoneRepository.list_objectsnow returns a list of object paths- stricter validation for
initandadd_keysettings
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
1.4.0
-
You can now use TOML configuration file to define common arguments for replicat commands, organize them into profiles, and load them using the
--profileCLI option. Consult--helpoutput for the default location of the file, or provide it explicitly via the--configCLI option, or pass--ignore-configto ignore configuration file altogether. -
The new
-L/--limit-rateoption enables rate limiting for uploads and downloads throughsnapshot,restore,upload-objects, anddownload-objectsCLI commands. The corresponding methods in the Python API received therate_limitargument, which serves the same purpose. -
CLI options
-S/--snapshot-regex,-F/--file-regex, and-O/--object-regexcan 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-filescommand to retrieve them. -
List of columns returned by
list-snapshotsandlist-filescommands can now be configured via the new--columnsCLI option (refer to--helpfor the supported values). Pass the--no-headeroption to omit the table header. Corresponding methods in the Python API acceptcolumnsandheaderarguments, which serve the same purpose. -
add-keycommand has been equipped with the new--cloneCLI 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
1.3.1
1.3.0
- The
uploadCLI command has been renamed toupload-objects. Theuploadmethod ofRepositoryhas been renamed toupload_objects. - Low-level CLI commands
download-objects,list-objects, anddelete-objectshave been added. They correspond to the newdownload_objects,list_objects, anddelete_objectsmethods ofRepository. - Backends are now required to implement one additional method (see
Backend.download_streamand 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
restorefor both new and old snapshots, which continue to be supported. - The
deletecommand will now ask for confirmation before deleting anything, just like the newly addeddelete-objects. Pass-y/--yesto suppress the prompt. - After a snapshot is deleted via the
deletecommand, 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
1.2.2
1.2.1
1.2.0
- Implement stricter and more efficient CLI argument parsing
- Speed up startup
- Avoid loading all the downloaded snapshots into RAM
- Add
--cache-directoryand--no-cacheCLI options - Add
replicat.__version__and the corresponding CLI flag - Send status messages to
stderrinstead ofstdout