Skip to content

Commit

Permalink
Update README, CHANGELOG, and bump to 0.10.0
Browse files Browse the repository at this point in the history
  • Loading branch information
Freaky committed Dec 19, 2020
1 parent 3b81002 commit f43a151
Show file tree
Hide file tree
Showing 4 changed files with 58 additions and 27 deletions.
40 changes: 33 additions & 7 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,33 +1,59 @@
# Changelog

## [0.10.0] - 2020-12-19

### Fixed

- Exclusively lock files prior to compaction (should fix #40)

### Changed

- Update dependencies
- Minor UI tweaks due to changes in DPI handling
- Migrate to new dialog crates
- More small internal improvements by @Dr-Emann, thanks! ([#30], [#32])

## [0.9.0] - 2020-03-03

### Added
- Preserve file timestamps following compression/decompression ([#16])

- Preserve file timestamps following compression/decompression ([#16])

## [0.8.0] - 2020-02-29

### Added
- Excluded directories now get skipped entirely ([#8])

- Excluded directories now get skipped entirely ([#8])

### Changed
- Paused jobs no longer poll ([#10], @Dr-Emann)
- Less refcounting ([#9], @Dr-Emann)

- Paused jobs no longer poll ([#10], @Dr-Emann)
- Less refcounting ([#9], @Dr-Emann)

### Fixed
- Tests ([#11], @Dr-Emann)

- Tests ([#11], @Dr-Emann)

### Removed
- WofUtil.dll version check ([#6])

- WofUtil.dll version check ([#6])

## [0.7.1] - 2019-07-17

### Added
- Initial release

- Initial release

[0.7.1]: https://github.com/Freaky/Compactor/releases/tag/v0.7.1
[0.8.0]: https://github.com/Freaky/Compactor/releases/tag/v0.8.0
[0.9.0]: https://github.com/Freaky/Compactor/releases/tag/v0.9.0
[0.10.0]: https://github.com/Freaky/Compactor/releases/tag/v0.10.0
[#6]: https://github.com/Freaky/Compactor/issues/6
[#8]: https://github.com/Freaky/Compactor/issues/8
[#9]: https://github.com/Freaky/Compactor/pull/9
[#10]: https://github.com/Freaky/Compactor/pull/10
[#11]: https://github.com/Freaky/Compactor/pull/11
[#16]: https://github.com/Freaky/Compactor/issues/16
[#30]: https://github.com/Freaky/Compactor/pull/30
[#32]: https://github.com/Freaky/Compactor/pull/32
[#40]: https://github.com/Freaky/Compactor/issues/40
2 changes: 1 addition & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "compactor"
version = "0.9.0"
version = "0.10.0"
authors = ["Thomas Hurst <[email protected]>"]
homepage = "https://github.com/Freaky/Compactor"
description = "An interface to Windows 10 filesystem compression"
Expand Down
41 changes: 23 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Compactor

## A friendly user interface to Windows 10 filesystem compression.
## A friendly user interface to Windows 10 filesystem compression

With modern lightweight compression algorithms running at gigabytes per second per core, it's practically a no-brainer to apply them to filesystems to make better use of storage and IO.

Expand All @@ -10,12 +10,14 @@ Compactor is here to plug that gap, with a simple GUI utility anyone can use.

![](https://i.imgur.com/A9si8Zh.png)

## Installation [![v0.9.0](https://img.shields.io/github/release-pre/Freaky/Compactor.svg)](https://github.com/Freaky/Compactor/releases/tag/v0.9.0) [![Downloads](https://img.shields.io/github/downloads/Freaky/Compactor/total.svg)](https://github.com/Freaky/Compactor/releases)
## Installation [![v0.10.0](https://img.shields.io/github/release-pre/Freaky/Compactor.svg)](https://github.com/Freaky/Compactor/releases/tag/v0.10.0) [![Downloads](https://img.shields.io/github/downloads/Freaky/Compactor/total.svg)](https://github.com/Freaky/Compactor/releases)

Downloads are available from the [Github Releases](https://github.com/Freaky/Compactor/releases) page under *Assets*, or you can use these direct links:

* [v0.9.0 32-bit](https://github.com/Freaky/Compactor/releases/download/v0.9.0/Compactor-0.9.0-i686.zip)
* [v0.9.0 64-bit](https://github.com/Freaky/Compactor/releases/download/v0.9.0/Compactor-0.9.0.zip)
* [v0.10.0 32-bit](https://github.com/Freaky/Compactor/releases/download/v0.10.0/Compactor-0.10.0-i686.zip)
* [v0.10.0 64-bit](https://github.com/Freaky/Compactor/releases/download/v0.10.0/Compactor-0.10.0.zip)

The 64-bit version is recommended for most users.

If you get "*Windows protected your PC*" trying to run it, it's just [SmartScreen](https://www.pcworld.com/article/3197443/how-to-get-past-windows-defender-smartscreen-in-windows-10.html) upset the binaries aren't (yet) signed. Click "*More info*" and "*Run anyway*" if you judge things to be above-board.

Expand Down Expand Up @@ -51,7 +53,7 @@ Written in [Rust], a modern compiled systems programming language from Mozilla,

### Beta Software

Compactor has received only limited testing. I've used it extensively on my desktop and laptop without a problem, it's saved me *hundreds of gigabytes* of disk space. Hopefully it will do the same for you.
While it has been used successfully by thousands of people, Compactor should be used with care. It is intended for compressing replacable software, not precious files.

**Make backups**. Report bugs. Be nice. You are reminded:

Expand All @@ -65,9 +67,15 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
```

It's in shouty legal text so you know I mean it.

### Data Corruption

There has been [one report][#40] of data corruption with open SQLite database files. The author has been unable to reproduce this, but file locking was added to version 0.10 which should prevent them from being modified.

### Permissions

Compactor currently has no mechanism to elevate its privileges using UAC for protected files. If you're using a limited account you might need to run it as an Administrator, or a user with similar privileges.
Compactor currently has no mechanism to elevate its privileges using UAC for protected files. If you're using a limited account you may need to run the program with elevated permissions.

Be careful what you compress. System files should be skipped automatically, and the Windows folder should be in the list of default exclusions (if you want to compact Windows, check out its [CompactOS] feature), but you almost certainly don't want to blindly run this across your entire `C:\` drive.

Expand Down Expand Up @@ -101,28 +109,24 @@ A totally-not-cherry-picked sample of compression results with the default setti

A more comprehensive database of results is [maintained by the CompactGUI project](https://docs.google.com/spreadsheets/d/14CVXd6PTIYE9XlNpRsxJUGaoUzhC5titIC1rzQHI4yI/edit#gid=0).


## Future

In the fairly-concrete TODO:
There are many things I want to do with Compactor in future. These include, but are certainly not limited to:

* Hook up an interface to the saved paths database (count, option to clear it).
* Recompression, for changing compression modes without manually decompressing/recompressing.
* Make analysis optional. It isn't fundamentally needed.
* Multithreaded analysis/compaction for SSDs.
* GUI rework of some description. The longer I leave this the better Rust should get at it :P
* Installer. Why does this involve so much XML oh god.
* Sign the binaries/installer. If I give away my code I get a free one, right?
* Double-check the default exclusions list. Should be able to do something with the compresstimation code to verify them.

More tentative:
* Sign the binaries/installer. This appears to involve money.
* Scheduled task or a background service for set-it-and-forget-it operation.

* Scheduled task or a background service to periodically recompress selected directories.
* Write bindings to Microsoft's [Compression API], add benchmarks for the various compression modes to help users decide which is most appropriate for their system.
* Examine [overlapped IO], see if we can get more information and control out of the compression process (per-file progress and cancellation).
Feature requests can be discussed in the [forum](https://github.com/Freaky/Compactor/discussions), or you may open [an issue](https://github.com/Freaky/Compactor/issues).

## Alternatives

* [`compact.exe`] is a command-line tool that ships with Windows 10. If you're familiar with the command line and batch files, maybe you'd prefer that. Weirdo.
* [CompactGUI] is a popular Visual Basic program that shells out to `compact.exe` to do its work, instead of using the Windows API directly as Compactor does. It has some... performance issues, particularly with larger folders.
* NTFS has supported [LZNT1 compression][lznt1] since 1995, hidden behind a checkbox under `Properties` &rarr; `Advanced Attributes`. It's less flexible and has a reputation for poor performance, but is more set-it-and-forget-it.
* NTFS has supported [LZNT1 compression][lznt1] since 1995, hidden behind a checkbox under `Properties` &rarr; `Advanced Attributes`. It's less flexible and has a reputation for poor performance and issues with fragmentation, but is more set-it-and-forget-it.

Are you aware of any others? Do let me know.

Expand Down Expand Up @@ -161,3 +165,4 @@ You can find him on Twitter at [@blaagh], or bug him on IRC as `Freaky` on FreeN
[overlapped IO]: https://docs.microsoft.com/en-us/windows/desktop/sync/synchronization-and-overlapped-input-and-output
[compresstimator]: https://github.com/Freaky/compresstimator
[lznt1]: https://en.wikipedia.org/wiki/NTFS#File_compression
[#40]: https://github.com/Freaky/Compactor/issues/40

0 comments on commit f43a151

Please sign in to comment.