# Changelog ## Release 0.9 This is a fairly major release, with most changes under the hood. There are some minor updates in dependencies. The underlying mechanism for updating sure files has been rewritten. Earlier versions of rsure would read an entire tree into memory, and perform updates on this in-memory structure. For large directory trees, this could take up a lot of memory. The new version always performs scans in a linear manner, and updates are performed using a few temp files (where the rsure file is). This slightly increases the space needed where the surefile is stored, but greatly reduces memory usage. By recording hash updates to a temporary sqlite database, we can now perform these hash updates in parallel, using multiple cores. On fast disks, this can result in a speed improvement. Other than the lower memory usage, this change shouldn't be visible to users of rsure. ## Release 0.8.2 This is a minor release with some minor improvements, mostly having to do with moving to Rust 2018. As of this release, Rust 2018 is required to build Rsure. In addition to the 2018 changes, this release also makes some improvements to the progress meter. If the client of the library uses `log_init` to initialize the logging system, the progress meter will cooperate with the logging system to present a clean, and frequently updated message. Otherwise, the meter will remain as before, only updated ever 5 seconds. This also adds a separate progress meter to indicate the status of the initial filesystem scan. With large trees, this scan can take some time, and the meter is a useful indicator of what is happening. ## Release 0.8.1 This is a minor release that updates the versions of child dependencies. ## Release 0.8 Release 0.8 of rsure makes some notable changes to the library and commandline tool. The most significant change is that the 'weave' format is the primary format that deltas are stored in. Instead of distinguishing the old files by 2sure.weave.gz and 2sure.dat.gz, weave files are just called 2sure.dat.gz. It may be possible to add format detection to detect the old format, but I suspect there isn't a lot of use of these files anyway. Other changes: - Move to 'failure' instead of 'error-chain'. - Bump many dependencies.