Version 5.0.1
Some checks failed
deploy / create-windows-binaries (x86_64) (push) Has been cancelled
deploy / create-unix-binaries (macos-latest, x86_64-apple-darwin) (push) Has been cancelled
deploy / create-unix-binaries (ubuntu-latest, x86_64-unknown-linux-musl) (push) Has been cancelled
deploy / deploy (push) Has been cancelled

This commit is contained in:
Josh Holmer 2021-11-15 11:42:06 -05:00
parent bc0d673af0
commit c888142bcb
3 changed files with 291 additions and 220 deletions

View file

@ -1,4 +1,10 @@
### Version 5.0.1
- [Bugfix] Fix an issue where -o5 and -o6 were not testing all options
- [Misc] Bump miniz_oxide to 0.5
### Version 5.0.0 ### Version 5.0.0
- [Breaking] Bump minimum Rust version to 1.46.0 - [Breaking] Bump minimum Rust version to 1.46.0
- [Bugfix] Avoid many panics that may occur on broken files - [Bugfix] Avoid many panics that may occur on broken files
- [Bugfix] Fix race condition that may cause tests to fail - [Bugfix] Fix race condition that may cause tests to fail
@ -8,20 +14,24 @@
- [Misc] Bump `crc` to 2.x - [Misc] Bump `crc` to 2.x
### Version 4.0.3 ### Version 4.0.3
- Bump itertools to 0.10.x - Bump itertools to 0.10.x
- Temporarily disable i686 releases, which were failing due to an odd linker issue, - Temporarily disable i686 releases, which were failing due to an odd linker issue,
so that at least amd64 builds will publish successfully so that at least amd64 builds will publish successfully
- This only relates to the releases published on Github. You can still manually compile oxipng for any platform. - This only relates to the releases published on Github. You can still manually compile oxipng for any platform.
### Version 4.0.2 ### Version 4.0.2
- Includes another update to libdeflater that improves support for targets - Includes another update to libdeflater that improves support for targets
without a C stdlib, like wasm32. without a C stdlib, like wasm32.
### Version 4.0.1 ### Version 4.0.1
- Includes an update to libdeflater that improves support for targets - Includes an update to libdeflater that improves support for targets
without a C stdlib, like wasm32. without a C stdlib, like wasm32.
### Version 4.0.0 ### Version 4.0.0
- [Breaking] Bump minimum Rust version to 1.45.0 - [Breaking] Bump minimum Rust version to 1.45.0
- [Feature] Make `libdeflater` and `zopfli` optional for API users - [Feature] Make `libdeflater` and `zopfli` optional for API users
- [Bugfix] Fix cloudflare-zlib on aarch64 CPUs - [Bugfix] Fix cloudflare-zlib on aarch64 CPUs
@ -30,11 +40,13 @@
- Various internal improvements - Various internal improvements
### Version 3.0.1 ### Version 3.0.1
- [Bugfix] Re-add `--force` flag to CLI - [Bugfix] Re-add `--force` flag to CLI
- This was accidentally removed somehow - This was accidentally removed somehow
- Many non-breaking dependency version bumps - Many non-breaking dependency version bumps
### Version 3.0.0 ### Version 3.0.0
- [Breaking] Bump minimum Rust version to 1.41.0 - [Breaking] Bump minimum Rust version to 1.41.0
- [Breaking] Use IndexMap/IndexSet to provide more consistent performance ([#202](https://github.com/shssoichiro/oxipng/pull/202)) - [Breaking] Use IndexMap/IndexSet to provide more consistent performance ([#202](https://github.com/shssoichiro/oxipng/pull/202))
- This changes some public-facing types. - This changes some public-facing types.
@ -54,6 +66,7 @@
- Various performance and internal improvements - Various performance and internal improvements
### Version 2.3.0 ### Version 2.3.0
- Allow disabling all alpha optimizations ([#181](https://github.com/shssoichiro/oxipng/pull/181)) - Allow disabling all alpha optimizations ([#181](https://github.com/shssoichiro/oxipng/pull/181))
- Fix interlacing issues on tiny images ([#182](https://github.com/shssoichiro/oxipng/pull/182)) - Fix interlacing issues on tiny images ([#182](https://github.com/shssoichiro/oxipng/pull/182))
- Reduce memory usage in filtering ([#191](https://github.com/shssoichiro/oxipng/pull/191)) - Reduce memory usage in filtering ([#191](https://github.com/shssoichiro/oxipng/pull/191))
@ -62,6 +75,7 @@
- Add support for WASM ([#194](https://github.com/shssoichiro/oxipng/pull/194)) - Add support for WASM ([#194](https://github.com/shssoichiro/oxipng/pull/194))
### Version 2.2.2 ### Version 2.2.2
- Fix grayscale bit-depth reduction ([#171](https://github.com/shssoichiro/oxipng/pull/171)) - Fix grayscale bit-depth reduction ([#171](https://github.com/shssoichiro/oxipng/pull/171))
- Fix typos and incorrect log message ([#172](https://github.com/shssoichiro/oxipng/pull/172)) - Fix typos and incorrect log message ([#172](https://github.com/shssoichiro/oxipng/pull/172))
- Make metadata order deterministic ([#174](https://github.com/shssoichiro/oxipng/pull/174)) - Make metadata order deterministic ([#174](https://github.com/shssoichiro/oxipng/pull/174))
@ -73,9 +87,11 @@
- Update `bit-vec` crate to 0.6 - Update `bit-vec` crate to 0.6
### Version 2.2.1 ### Version 2.2.1
- Fix compression of very large files ([#167](https://github.com/shssoichiro/oxipng/pull/167)) ([#168](https://github.com/shssoichiro/oxipng/pull/168)) - Fix compression of very large files ([#167](https://github.com/shssoichiro/oxipng/pull/167)) ([#168](https://github.com/shssoichiro/oxipng/pull/168))
### Version 2.2.0 ### Version 2.2.0
- Various internal improvements ([#154](https://github.com/shssoichiro/oxipng/pull/154)) ([#158](https://github.com/shssoichiro/oxipng/pull/158)) ([#160](https://github.com/shssoichiro/oxipng/pull/160)) ([#161](https://github.com/shssoichiro/oxipng/pull/161)) ([#162](https://github.com/shssoichiro/oxipng/pull/162)) ([#163](https://github.com/shssoichiro/oxipng/pull/163)) - Various internal improvements ([#154](https://github.com/shssoichiro/oxipng/pull/154)) ([#158](https://github.com/shssoichiro/oxipng/pull/158)) ([#160](https://github.com/shssoichiro/oxipng/pull/160)) ([#161](https://github.com/shssoichiro/oxipng/pull/161)) ([#162](https://github.com/shssoichiro/oxipng/pull/162)) ([#163](https://github.com/shssoichiro/oxipng/pull/163))
- Update `image` crate to 0.21.0 - Update `image` crate to 0.21.0
- Update `itertools` crate to 0.8.0 - Update `itertools` crate to 0.8.0
@ -84,49 +100,61 @@
- Bump minimum required Rust version to 1.31.0 - Bump minimum required Rust version to 1.31.0
### Version 2.1.8 ### Version 2.1.8
- Fix non-standard sBIT headers in other code locations ([#153](https://github.com/shssoichiro/oxipng/issues/153)) - Fix non-standard sBIT headers in other code locations ([#153](https://github.com/shssoichiro/oxipng/issues/153))
### Version 2.1.7 ### Version 2.1.7
- 80x faster palette reduction ([#150](https://github.com/shssoichiro/oxipng/pull/150)) - 80x faster palette reduction ([#150](https://github.com/shssoichiro/oxipng/pull/150))
- Optimize RGB to palette conversion ([#148](https://github.com/shssoichiro/oxipng/pull/148)) - Optimize RGB to palette conversion ([#148](https://github.com/shssoichiro/oxipng/pull/148))
- Various microoptimizations ([#146](https://github.com/shssoichiro/oxipng/pull/146)) - Various microoptimizations ([#146](https://github.com/shssoichiro/oxipng/pull/146))
- Introduce third-party safe wrapper around cloudflare-zlib ([#149](https://github.com/shssoichiro/oxipng/pull/149)) - Introduce third-party safe wrapper around cloudflare-zlib ([#149](https://github.com/shssoichiro/oxipng/pull/149))
### Version 2.1.6 ### Version 2.1.6
- Identify and drop useless sRGB profiles ([#143](https://github.com/shssoichiro/oxipng/pull/143)) - Identify and drop useless sRGB profiles ([#143](https://github.com/shssoichiro/oxipng/pull/143))
- Alpha heuristic improvements ([#144](https://github.com/shssoichiro/oxipng/pull/144)) - Alpha heuristic improvements ([#144](https://github.com/shssoichiro/oxipng/pull/144))
- Bump `miniz_oxide` and `cloudflare-zlib-sys` to 0.2.0 - Bump `miniz_oxide` and `cloudflare-zlib-sys` to 0.2.0
### Version 2.1.5 ### Version 2.1.5
- Fix issue where some images will incorrectly reduce bit depth ([#140](https://github.com/shssoichiro/oxipng/issues/140)) - Fix issue where some images will incorrectly reduce bit depth ([#140](https://github.com/shssoichiro/oxipng/issues/140))
### Version 2.1.4 ### Version 2.1.4
- Bump `image` crate to 0.20.0 - Bump `image` crate to 0.20.0
### Version 2.1.3 ### Version 2.1.3
- Fix i686 builds - Fix i686 builds
- Performance improvements - Performance improvements
### Version 2.1.2 ### Version 2.1.2
- Fix issue with PNG to Indexed reduction on images with transparency pixel ([#129](https://github.com/shssoichiro/oxipng/issues/129)) - Fix issue with PNG to Indexed reduction on images with transparency pixel ([#129](https://github.com/shssoichiro/oxipng/issues/129))
### Version 2.1.1 ### Version 2.1.1
- More fixes for alpha optimization on interlaced images ([#133](https://github.com/shssoichiro/oxipng/issues/133)) - More fixes for alpha optimization on interlaced images ([#133](https://github.com/shssoichiro/oxipng/issues/133))
### Version 2.1.0 ### Version 2.1.0
- [SEMVER_MINOR] Bump minimum Rust version to 1.27.0 - [SEMVER_MINOR] Bump minimum Rust version to 1.27.0
- [SEMVER_MINOR] Reenable faster Cloudflare zlib compression on platforms that support it - [SEMVER_MINOR] Reenable faster Cloudflare zlib compression on platforms that support it
- Fix memory leak with Cloudflare zlib ([#126](https://github.com/shssoichiro/oxipng/issues/126)) - Fix memory leak with Cloudflare zlib ([#126](https://github.com/shssoichiro/oxipng/issues/126))
- Minor fixes and cleanup - Minor fixes and cleanup
### Version 2.0.2 ### Version 2.0.2
- Fix an issue in alpha optimization on interlaced images ([#113](https://github.com/shssoichiro/oxipng/issues/113)) - Fix an issue in alpha optimization on interlaced images ([#113](https://github.com/shssoichiro/oxipng/issues/113))
### Version 2.0.1 ### Version 2.0.1
- Revert making Cloudflare zlib the default, as it introduced a major memory leak. It will be put back behind a feature flag, and reenabled when the issue is fixed. - Revert making Cloudflare zlib the default, as it introduced a major memory leak. It will be put back behind a feature flag, and reenabled when the issue is fixed.
- Revert minimum Rust version to 1.24.0 - Revert minimum Rust version to 1.24.0
### Version 2.0.0 ### Version 2.0.0
- [SEMVER_MAJOR] Make PngError a proper Error enum - [SEMVER_MAJOR] Make PngError a proper Error enum
- [SEMVER_MINOR] Bump minimum Rust version to 1.27.0 - [SEMVER_MINOR] Bump minimum Rust version to 1.27.0
- [SEMVER_MINOR] Make Rayon an optional dependency (enabled by default) - [SEMVER_MINOR] Make Rayon an optional dependency (enabled by default)
@ -140,21 +168,26 @@
- Various performance improvements - Various performance improvements
### Version 1.0.4 ### Version 1.0.4
- Bump `image` to 0.19.0 - Bump `image` to 0.19.0
- Bump `bit-vec` to 0.5.0 - Bump `bit-vec` to 0.5.0
- Bump `regex` to 1.0.0 - Bump `regex` to 1.0.0
### Version 1.0.3 ### Version 1.0.3
- Bump dependencies - Bump dependencies
### Version 1.0.2 ### Version 1.0.2
- Fix a change that breaks Itertools::flatten with recent Rust nightlies - Fix a change that breaks Itertools::flatten with recent Rust nightlies
### Version 1.0.1 ### Version 1.0.1
- Bump rayon to 1.0 ([#99](https://github.com/shssoichiro/oxipng/pull/99) @cuviper) - Bump rayon to 1.0 ([#99](https://github.com/shssoichiro/oxipng/pull/99) @cuviper)
- Bump minor versions of other dependencies for binary distribution - Bump minor versions of other dependencies for binary distribution
### Version 1.0.0 ### Version 1.0.0
- Remove the C dependency on miniz, and replace it with a Rust version ([#57](https://github.com/shssoichiro/oxipng/issues/57)) - Remove the C dependency on miniz, and replace it with a Rust version ([#57](https://github.com/shssoichiro/oxipng/issues/57))
- This improves decompression speed by 15%. Compression speed is not affected. - This improves decompression speed by 15%. Compression speed is not affected.
- [SEMVER_MAJOR] This also obsoletes the `-zm` command line option and the `memory` key on the `Options` struct. - [SEMVER_MAJOR] This also obsoletes the `-zm` command line option and the `memory` key on the `Options` struct.
@ -167,6 +200,7 @@
- Refactor of internal code - Refactor of internal code
### Version 0.19.0 ### Version 0.19.0
- [SEMVER_MAJOR] Default to overwriting the input file if `out_file` is not set. - [SEMVER_MAJOR] Default to overwriting the input file if `out_file` is not set.
This does not affect the CLI, but with the library, it was easy to forget to set the `out_file`, This does not affect the CLI, but with the library, it was easy to forget to set the `out_file`,
and there was no warning that no output file would be written. and there was no warning that no output file would be written.
@ -180,31 +214,38 @@
even if the output path was different from the input path even if the output path was different from the input path
### Version 0.18.3 ### Version 0.18.3
- Return exit code of 1 if an error occurred while processing a file using the CLI app ([#93](https://github.com/shssoichiro/oxipng/issues/93)) - Return exit code of 1 if an error occurred while processing a file using the CLI app ([#93](https://github.com/shssoichiro/oxipng/issues/93))
### Version 0.18.2 ### Version 0.18.2
- Bump `image` to 0.18 - Bump `image` to 0.18
- Fix unfiltering of scan lines in interlaced images ([#92](https://github.com/shssoichiro/oxipng/issues/92)) - Fix unfiltering of scan lines in interlaced images ([#92](https://github.com/shssoichiro/oxipng/issues/92))
### Version 0.18.1 ### Version 0.18.1
- Bump `rayon` to 0.9 - Bump `rayon` to 0.9
- Fix failure to optimize on certain grayscale images ([#89](https://github.com/shssoichiro/oxipng/issues/89)) - Fix failure to optimize on certain grayscale images ([#89](https://github.com/shssoichiro/oxipng/issues/89))
### Version 0.18.0 ### Version 0.18.0
- Bump `itertools` to 0.7 - Bump `itertools` to 0.7
- Bump `image` to 0.17 - Bump `image` to 0.17
- [SEMVER_MAJOR] Bump minimum rustc version to 1.20.0 - [SEMVER_MAJOR] Bump minimum rustc version to 1.20.0
- Fix parsing of glob paths on Windows ([#90](https://github.com/shssoichiro/oxipng/issues/90)) - Fix parsing of glob paths on Windows ([#90](https://github.com/shssoichiro/oxipng/issues/90))
### Version 0.17.2 ### Version 0.17.2
- Bump `image` to 0.16 - Bump `image` to 0.16
- Quickly pass over files that do not have a PNG header ([#85](https://github.com/shssoichiro/oxipng/issues/85) @emielbeinema) - Quickly pass over files that do not have a PNG header ([#85](https://github.com/shssoichiro/oxipng/issues/85) @emielbeinema)
- Return an error instead of crashing on APNG files ([#83](https://github.com/shssoichiro/oxipng/issues/83) @emielbeinema) - Return an error instead of crashing on APNG files ([#83](https://github.com/shssoichiro/oxipng/issues/83) @emielbeinema)
### Version 0.17.1 ### Version 0.17.1
- Remove VC++ download requirement for Windows users - Remove VC++ download requirement for Windows users
### Version 0.17.0 ### Version 0.17.0
- [SEMVER_MAJOR] Bump minimum required rustc version to 1.19.0 - [SEMVER_MAJOR] Bump minimum required rustc version to 1.19.0
- [SEMVER_MINOR] Oxipng will now, by default, attempt to change all transparent pixels to `rgba(0, 0, 0, 0)` to improve compression. - [SEMVER_MINOR] Oxipng will now, by default, attempt to change all transparent pixels to `rgba(0, 0, 0, 0)` to improve compression.
It does fast trials with filters 0 and 5 to see if this is an improvement over It does fast trials with filters 0 and 5 to see if this is an improvement over
@ -219,66 +260,82 @@
- Bump `image` to 0.15 - Bump `image` to 0.15
### Version 0.16.3 ### Version 0.16.3
- Fix command-line help text ([#70](https://github.com/shssoichiro/oxipng/issues/70)) - Fix command-line help text ([#70](https://github.com/shssoichiro/oxipng/issues/70))
### Version 0.16.2 ### Version 0.16.2
- Publicly export `error` module - Publicly export `error` module
### Version 0.16.1 ### Version 0.16.1
- Fix rayon's breaking changes that they made in a point release - Fix rayon's breaking changes that they made in a point release
### Version 0.16.0 ### Version 0.16.0
- [SEMVER_MAJOR] Bump minimum rustc version to 1.17.0 - [SEMVER_MAJOR] Bump minimum rustc version to 1.17.0
- Bump `image` to 0.14 - Bump `image` to 0.14
- Bump `rayon` to 0.8 - Bump `rayon` to 0.8
### Version 0.15.2 ### Version 0.15.2
- Bump `image` to 0.13 ([#65](https://github.com/shssoichiro/oxipng/pull/65)) - Bump `image` to 0.13 ([#65](https://github.com/shssoichiro/oxipng/pull/65))
- Bump `rayon` to 0.7 - Bump `rayon` to 0.7
- Bump `itertools` to 0.6 - Bump `itertools` to 0.6
### Version 0.15.1 ### Version 0.15.1
- Ignore color reductions that would increase file size ([#61](https://github.com/shssoichiro/oxipng/issues/61)) - Ignore color reductions that would increase file size ([#61](https://github.com/shssoichiro/oxipng/issues/61))
### Version 0.15.0 ### Version 0.15.0
- [SEMVER_MINOR] Check images for correctness before writing result ([#60](https://github.com/shssoichiro/oxipng/issues/60)) - [SEMVER_MINOR] Check images for correctness before writing result ([#60](https://github.com/shssoichiro/oxipng/issues/60))
- Fix invalid output when reducing image to a different color type but file size does not improve ([#60](https://github.com/shssoichiro/oxipng/issues/60)) - Fix invalid output when reducing image to a different color type but file size does not improve ([#60](https://github.com/shssoichiro/oxipng/issues/60))
- Don't write new file if moving from interlaced to non-interlaced if new file would be larger - Don't write new file if moving from interlaced to non-interlaced if new file would be larger
### Version 0.14.4 ### Version 0.14.4
- Fix bug when reducing RGBA to Indexed if image has 256 colors plus a background color - Fix bug when reducing RGBA to Indexed if image has 256 colors plus a background color
### Version 0.14.3 ### Version 0.14.3
- Fix multiple bugs when reducing transparency palettes - Fix multiple bugs when reducing transparency palettes
### Version 0.14.2 ### Version 0.14.2
- Fix a bug when reducing palette in images with bit depth less than 8 - Fix a bug when reducing palette in images with bit depth less than 8
- Fix a bug when reducing palette in images with transparency - Fix a bug when reducing palette in images with transparency
### Version 0.14.1 ### Version 0.14.1
- Remove zlib dependency and switch entirely to miniz, since zlib 1.2.11 was not working with oxipng. This costs some performance, but is better than having a broken application. - Remove zlib dependency and switch entirely to miniz, since zlib 1.2.11 was not working with oxipng. This costs some performance, but is better than having a broken application.
### Version 0.14.0 ### Version 0.14.0
- Performance optimizations - Performance optimizations
- [SEMVER_MAJOR] Bump minimum rustc version to 1.13.0 - [SEMVER_MAJOR] Bump minimum rustc version to 1.13.0
- Add categories on crates.io - Add categories on crates.io
### Version 0.13.1 ### Version 0.13.1
- Bump regex dependency to 0.2 - Bump regex dependency to 0.2
- Bump byteorder dependency to 1.0 - Bump byteorder dependency to 1.0
- Bump rayon dependency to 0.6 - Bump rayon dependency to 0.6
### Version 0.13.0 ### Version 0.13.0
- Fix bug in certain PNG headers when reducing color type ([#52](https://github.com/shssoichiro/oxipng/issues/52)) - Fix bug in certain PNG headers when reducing color type ([#52](https://github.com/shssoichiro/oxipng/issues/52))
- [SEMVER_MAJOR] Reduction functions now take `&mut PngData` and return a `bool` indicating whether the image was reduced - [SEMVER_MAJOR] Reduction functions now take `&mut PngData` and return a `bool` indicating whether the image was reduced
- [SMEVER_MAJOR] Bump minimum required rustc version to 1.12.0 - [SMEVER_MAJOR] Bump minimum required rustc version to 1.12.0
### Version 0.12.0 ### Version 0.12.0
- Performance optimizations - Performance optimizations
- Fix processing filenames that contain commas (@aliceatlas [#50](https://github.com/shssoichiro/oxipng/pull/50)) - Fix processing filenames that contain commas (@aliceatlas [#50](https://github.com/shssoichiro/oxipng/pull/50))
- [SEMVER_MINOR] Add zopfli option (-Z), disabled by default. Gives about 10% better compression, but is currently 50-100x slower. - [SEMVER_MINOR] Add zopfli option (-Z), disabled by default. Gives about 10% better compression, but is currently 50-100x slower.
### Version 0.11.0 ### Version 0.11.0
- [SEMVER_MAJOR] Bump minimum rustc version to 1.9.0, required by dependencies - [SEMVER_MAJOR] Bump minimum rustc version to 1.9.0, required by dependencies
- [SEMVER_MINOR] Allow calling optimization presets via crate using `Options::from_preset` - [SEMVER_MINOR] Allow calling optimization presets via crate using `Options::from_preset`
- [SEMVER_MAJOR] Return proper `PngError` type which implements `std::error::Error` from `Result`s - [SEMVER_MAJOR] Return proper `PngError` type which implements `std::error::Error` from `Result`s
@ -286,64 +343,77 @@
- Performance optimizations - Performance optimizations
### Version 0.10.0 ### Version 0.10.0
- [SEMVER_MINOR] Make clap and regex dependencies optional - [SEMVER_MINOR] Make clap and regex dependencies optional
- Enabled by default, needed for executable build; can be disabled for use in crates - Enabled by default, needed for executable build; can be disabled for use in crates
- Remove reduction from palette to grayscale, which was not working and provided minimal benefit - Remove reduction from palette to grayscale, which was not working and provided minimal benefit
### Version 0.9.0 ### Version 0.9.0
- [SEMVER_MAJOR] Significant refactoring of modules - [SEMVER_MAJOR] Significant refactoring of modules
- Use `itertools` to cleanup areas of code - Use `itertools` to cleanup areas of code
- Use multiple threads for filtering trials - Use multiple threads for filtering trials
### Version 0.8.2 ### Version 0.8.2
- Fix issue where images smaller than 4px width would crash on interlacing ([#42](https://github.com/shssoichiro/oxipng/issues/42)) - Fix issue where images smaller than 4px width would crash on interlacing ([#42](https://github.com/shssoichiro/oxipng/issues/42))
### Version 0.8.1 ### Version 0.8.1
- Minor optimizations - Minor optimizations
- Fix issue where interlaced images with certain widths would fail to optimize - Fix issue where interlaced images with certain widths would fail to optimize
### Version 0.8.0 ### Version 0.8.0
- [SEMVER_MINOR] Add support for optimizing PNGs already loaded into memory via library function - [SEMVER_MINOR] Add support for optimizing PNGs already loaded into memory via library function
### Version 0.7.0 ### Version 0.7.0
- Minor compression improvement on interlaced images - Minor compression improvement on interlaced images
- Performance optimizations - Performance optimizations
- [SEMVER_MINOR] Move default Options into a Default impl - [SEMVER_MINOR] Move default Options into a Default impl
- [SEMVER_MINOR] Add option for setting number of threads ([#39](https://github.com/shssoichiro/oxipng/issues/39)) - [SEMVER_MINOR] Add option for setting number of threads ([#39](https://github.com/shssoichiro/oxipng/issues/39))
### Version 0.6.0 ### Version 0.6.0
- Fix issue where output directory would not be created if it did not exist - Fix issue where output directory would not be created if it did not exist
- Use miniz for compression strategies where it outperforms zlib - Use miniz for compression strategies where it outperforms zlib
- [SEMVER_MINOR] Partially implement -p / --preserve, as far as stable Rust will allow for now - [SEMVER_MINOR] Partially implement -p / --preserve, as far as stable Rust will allow for now
- [SEMVER_MINOR] Implement --fix to ignore CRC errors and recalculate correct CRC in output - [SEMVER_MINOR] Implement --fix to ignore CRC errors and recalculate correct CRC in output
### Version 0.5.0 ### Version 0.5.0
- [SEMVER_MINOR] Palette entries can now reduced, on by default ([#11](https://github.com/shssoichiro/oxipng/issues/11)) - [SEMVER_MINOR] Palette entries can now reduced, on by default ([#11](https://github.com/shssoichiro/oxipng/issues/11))
- Don't report that we are in pretend mode if verbosity is set to none - Don't report that we are in pretend mode if verbosity is set to none
- Add cargo bench suite ([#7](https://github.com/shssoichiro/oxipng/issues/7)) - Add cargo bench suite ([#7](https://github.com/shssoichiro/oxipng/issues/7))
### Version 0.4.0 ### Version 0.4.0
- Performance optimizations - Performance optimizations
- [SEMVER_MAJOR] `-s` automatically infers `--strip safe` ([#31](https://github.com/shssoichiro/oxipng/issues/31)) - [SEMVER_MAJOR] `-s` automatically infers `--strip safe` ([#31](https://github.com/shssoichiro/oxipng/issues/31))
- Update byteorder and clap crates - Update byteorder and clap crates
- Fix issue where interlaced images incorrectly applied filters on the first line of a pass - Fix issue where interlaced images incorrectly applied filters on the first line of a pass
### Version 0.3.0 ### Version 0.3.0
- Properly decode interlaced images - Properly decode interlaced images
- [SEMVER_MINOR] Allow converting between progressive and interlaced images ([#3](https://github.com/shssoichiro/oxipng/issues/3)) - [SEMVER_MINOR] Allow converting between progressive and interlaced images ([#3](https://github.com/shssoichiro/oxipng/issues/3))
- Fix a bug that would cause oxipng to crash on very small images - Fix a bug that would cause oxipng to crash on very small images
### Version 0.2.2 ### Version 0.2.2
- Limit number of threads to 1.5x number of cores - Limit number of threads to 1.5x number of cores
- Significantly improve memory usage, especially with high optimization levels. ([#32](https://github.com/shssoichiro/oxipng/issues/32)) - Significantly improve memory usage, especially with high optimization levels. ([#32](https://github.com/shssoichiro/oxipng/issues/32))
- Refactor output code ([#19](https://github.com/shssoichiro/oxipng/issues/19)) - Refactor output code ([#19](https://github.com/shssoichiro/oxipng/issues/19))
### Version 0.2.1 ### Version 0.2.1
- Add rustdoc for public methods and structs - Add rustdoc for public methods and structs
- Improve filter mode 5 heuristic ([#16](https://github.com/shssoichiro/oxipng/issues/16)) - Improve filter mode 5 heuristic ([#16](https://github.com/shssoichiro/oxipng/issues/16))
- Add tests for edge-case images with subtitles ([#29](https://github.com/shssoichiro/oxipng/issues/29)) - Add tests for edge-case images with subtitles ([#29](https://github.com/shssoichiro/oxipng/issues/29))
### Version 0.2.0 ### Version 0.2.0
- Fix program version that is displayed when running `oxipng -V` - Fix program version that is displayed when running `oxipng -V`
- Ensure `--quiet` mode is actually quiet (@SethDusek [#20](https://github.com/shssoichiro/oxipng/pull/20)) - Ensure `--quiet` mode is actually quiet (@SethDusek [#20](https://github.com/shssoichiro/oxipng/pull/20))
- Write status/debug information to stderr instead of stdout - Write status/debug information to stderr instead of stdout
@ -352,9 +422,11 @@
- [SEMVER_MINOR] Add `-s` alias for `--strip` - [SEMVER_MINOR] Add `-s` alias for `--strip`
### Version 0.1.1 ### Version 0.1.1
- Fix `oxipng *` writing all input files to one output file ([#15](https://github.com/shssoichiro/oxipng/issues/15)) - Fix `oxipng *` writing all input files to one output file ([#15](https://github.com/shssoichiro/oxipng/issues/15))
### Version 0.1.0 ### Version 0.1.0
- Initial beta release - Initial beta release
- Reduce color type and bit depth - Reduce color type and bit depth
- Recompress with zlib - Recompress with zlib

55
Cargo.lock generated
View file

@ -48,9 +48,9 @@ checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb"
[[package]] [[package]]
name = "bitflags" name = "bitflags"
version = "1.2.1" version = "1.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
[[package]] [[package]]
name = "build_const" name = "build_const"
@ -60,9 +60,9 @@ checksum = "b4ae4235e6dac0694637c763029ecea1a2ec9e4e06ec2729bd21ba4d9c863eb7"
[[package]] [[package]]
name = "bytemuck" name = "bytemuck"
version = "1.7.0" version = "1.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9966d2ab714d0f785dbac0a0396251a35280aeb42413281617d0209ab4898435" checksum = "72957246c41db82b8ef88a5486143830adeb8227ef9837740bdec67724cf2c5b"
[[package]] [[package]]
name = "byteorder" name = "byteorder"
@ -72,9 +72,9 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
[[package]] [[package]]
name = "cc" name = "cc"
version = "1.0.68" version = "1.0.72"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4a72c244c1ff497a746a7e1fb3d14bd08420ecda70c8f25c7112f2781652d787" checksum = "22a9137b95ea06864e018375b72adfb7db6e6f68cfc8df5a04d00288050485ee"
[[package]] [[package]]
name = "cfg-if" name = "cfg-if"
@ -145,9 +145,9 @@ dependencies = [
[[package]] [[package]]
name = "crc" name = "crc"
version = "2.0.0" version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "10c2722795460108a7872e1cd933a85d6ec38abc4baecad51028f702da28889f" checksum = "49fc9a695bca7f35f5f4c15cddc84415f66a74ea78eef08e90c5024f2b540e23"
dependencies = [ dependencies = [
"crc-catalog", "crc-catalog",
] ]
@ -179,9 +179,9 @@ dependencies = [
[[package]] [[package]]
name = "crossbeam-deque" name = "crossbeam-deque"
version = "0.8.0" version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "94af6efb46fef72616855b036a624cf27ba656ffc9be1b9a3c931cfc7749a9a9" checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e"
dependencies = [ dependencies = [
"cfg-if", "cfg-if",
"crossbeam-epoch", "crossbeam-epoch",
@ -229,9 +229,9 @@ checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
[[package]] [[package]]
name = "filetime" name = "filetime"
version = "0.2.14" version = "0.2.15"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1d34cfa13a63ae058bfa601fe9e313bbdb3746427c1459185464ce0fcf62e1e8" checksum = "975ccf83d8d9d0d84682850a38c8169027be83368805971cc4f238c2b245bc98"
dependencies = [ dependencies = [
"cfg-if", "cfg-if",
"libc", "libc",
@ -303,9 +303,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
[[package]] [[package]]
name = "libc" name = "libc"
version = "0.2.98" version = "0.2.107"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "320cfe77175da3a483efed4bc0adc1968ca050b098ce4f2f1c13a56626128790" checksum = "fbe5e23404da5b4f555ef85ebed98fb4083e55a00c317800bc2a50ede9f3d219"
[[package]] [[package]]
name = "libdeflate-sys" name = "libdeflate-sys"
@ -354,12 +354,11 @@ dependencies = [
[[package]] [[package]]
name = "miniz_oxide" name = "miniz_oxide"
version = "0.4.4" version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b" checksum = "d2b29bd4bc3f33391105ebee3589c19197c4271e3e5a9ec9bfe8127eeff8f082"
dependencies = [ dependencies = [
"adler", "adler",
"autocfg",
] ]
[[package]] [[package]]
@ -415,13 +414,13 @@ dependencies = [
[[package]] [[package]]
name = "oxipng" name = "oxipng"
version = "5.0.0" version = "5.0.1"
dependencies = [ dependencies = [
"bit-vec", "bit-vec",
"byteorder", "byteorder",
"clap", "clap",
"cloudflare-zlib", "cloudflare-zlib",
"crc 2.0.0", "crc 2.1.0",
"crossbeam-channel", "crossbeam-channel",
"filetime", "filetime",
"image", "image",
@ -429,7 +428,7 @@ dependencies = [
"itertools", "itertools",
"libdeflater", "libdeflater",
"log", "log",
"miniz_oxide 0.4.4", "miniz_oxide 0.5.1",
"rayon", "rayon",
"rgb", "rgb",
"rustc_version", "rustc_version",
@ -477,18 +476,18 @@ dependencies = [
[[package]] [[package]]
name = "redox_syscall" name = "redox_syscall"
version = "0.2.9" version = "0.2.10"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5ab49abadf3f9e1c4bc499e8845e152ad87d2ad2d30371841171169e9d75feee" checksum = "8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff"
dependencies = [ dependencies = [
"bitflags", "bitflags",
] ]
[[package]] [[package]]
name = "rgb" name = "rgb"
version = "0.8.27" version = "0.8.29"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8fddb3b23626145d1776addfc307e1a1851f60ef6ca64f376bcb889697144cf0" checksum = "a27fa03bb1e3e2941f52d4a555a395a72bf79b0a85fbbaab79447050c97d978c"
dependencies = [ dependencies = [
"bytemuck", "bytemuck",
] ]
@ -510,9 +509,9 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
[[package]] [[package]]
name = "semver" name = "semver"
version = "1.0.3" version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5f3aac57ee7f3272d8395c6e4f502f434f0e289fcd62876f70daa008c20dcabe" checksum = "568a8e6258aa33c13358f81fd834adb854c6f7c9468520910a9b1e8fac068012"
[[package]] [[package]]
name = "stderrlog" name = "stderrlog"
@ -579,9 +578,9 @@ checksum = "a9b2228007eba4120145f785df0f6c92ea538f5a3635a612ecf4e334c8c1446d"
[[package]] [[package]]
name = "unicode-width" name = "unicode-width"
version = "0.1.8" version = "0.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3" checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973"
[[package]] [[package]]
name = "vec_map" name = "vec_map"

View file

@ -16,7 +16,7 @@ license = "MIT"
name = "oxipng" name = "oxipng"
repository = "https://github.com/shssoichiro/oxipng" repository = "https://github.com/shssoichiro/oxipng"
build = "build.rs" build = "build.rs"
version = "5.0.0" version = "5.0.1"
[badges] [badges]
travis-ci = { repository = "shssoichiro/oxipng", branch = "master" } travis-ci = { repository = "shssoichiro/oxipng", branch = "master" }
@ -34,7 +34,7 @@ byteorder = "^1.4.2"
crc = "^2.0.0" crc = "^2.0.0"
itertools = "^0.10.0" itertools = "^0.10.0"
zopfli = { version = "^0.4.0", optional = true } zopfli = { version = "^0.4.0", optional = true }
miniz_oxide = "0.4" miniz_oxide = "0.5"
rgb = "0.8.25" rgb = "0.8.25"
indexmap = "1.6.1" indexmap = "1.6.1"
libdeflater = { version = "0.7.1", optional = true } libdeflater = { version = "0.7.1", optional = true }