v0.11.0-next.0
Breaking changes
- Another complete rewrite of the library, please use
zune-image
with this crate. - CLI has been rewritten to a new, more flexible interface
Improved performance (alot). To libvips performance, like to the moon, but still.
Benchmark data was taken from sharp repository.
Options --directory /tmp --resize 500x200 --filter lanczos3 mozjpeg --quality 80 -- ./2569067123_aca715a2ee_o.jpg
One image from here:
Benchmark 1: rimage-0.11.0-next.0
Time (mean ± σ): 48.6 ms ± 1.3 ms [User: 43.9 ms, System: 8.4 ms]
Range (min … max): 46.7 ms … 53.3 ms 59 runs
Benchmark 2: rimage-0.10.3
Time (mean ± σ): 691.6 ms ± 5.2 ms [User: 709.3 ms, System: 10.1 ms]
Range (min … max): 687.1 ms … 705.0 ms 10 runs
Benchmark 3: squoosh-cli
Time (mean ± σ): 760.6 ms ± 29.7 ms [User: 2155.7 ms, System: 291.2 ms]
Range (min … max): 738.0 ms … 829.5 ms 10 runs
Summary
rimage-0.11.0-next.0 ran
14.23 ± 0.39 times faster than rimage-0.10.3
15.65 ± 0.74 times faster than squoosh-cli
Options --directory /tmp --resize 500x200 --filter lanczos3 mozjpeg --quality 80 -- ./*.jpg
Multiple images in parallel from here (only jpg):
Benchmark 1: rimage-0.11.0-next.0
Time (mean ± σ): 177.2 ms ± 4.6 ms [User: 999.5 ms, System: 38.7 ms]
Range (min … max): 169.3 ms … 184.7 ms 17 runs
Benchmark 2: rimage-0.10.3
Time (mean ± σ): 26.399 s ± 0.336 s [User: 29.653 s, System: 0.089 s]
Range (min … max): 26.045 s … 27.297 s 10 runs
Summary
rimage-0.11.0-next.0 ran
148.99 ± 4.31 times faster than rimage-0.10.3
Features
- added avif decoder (b64b931)
- added avif encoder (18ee7e3)
- added fast resize operation (4317475)
- added features to reduce lib size (e23823f)
- added long_about to jxl codec (8a19d4b)
- added mozjpeg encoder (7f32068)
- added options to jpeg codec (ccd249c)
- added oxipng encoder (4a824dc)
- added quantization operation (25d0d78)
- added threading to resize operation (1e89b34)
- added webp decoder (3916d28)
- added webp encoder (d542749)
- cli/help: added codecs support section (8578367)
- cli: added alpha premultiply preprocessor (33abc88)
- cli: added avif codec (aa89db5)
- cli: added base cli options (a22a0aa)
- cli: added base codecs (60d9aa5)
- cli: added base preprocessors (99d6a33)
- cli: added mozjpeg codec (37359e2)
- cli: added oxipng codec (9658fce)
- cli: added webp codec (57db180)
- cli: changed general options placement (5cf1e96)
- cli: implemented main cli (a666dbf)
- encoders: added exif write support for jpeg and png (fcd4f5e)
- implemented base cli pipeline (18bcbe0)
- preprocessors: implemented quantization operation (e527d69)
- preprocessors: implemented resize operation (7aa016e)
Bug Fixes
- added binary feature (ee148f1)
- added more image formats (15aebe6)
- bin: moved binary to root folder (f637d14)
- cargo: updated cargo.toml (4fba401)
- cli/windows: fixed trailing slash cmd issue (88e6b92)
- cli: fixed clippy issue (8b5d230)
- cli: updated features compilation (0a70264)
- cli: updated preprocessors using traits (b8be3ff)
- codecs: updated qtable type (5a2c2f9)
- deps: changed dav1d dependence to lib aom (032b050)
- deps: optimized dependencies (370f5d3)
- fixed clippy errors (2ca79be)
- fixed clippy errors (b2b7f79)
- fixed clippy warnings (d98091a)
- fixed tests for image_format (454f5c8)
- lib: cleared lib (5d7b2c6)
- made options values public (7d3fa3b)
- moved cli modules to separate directory (81593d0)
- moved encoders to separate modules (7c6816f)