Changes in version 0.5 - Memory allocation failures in tinypng() and tinyjpg() now propagate as R errors instead of calling abort() and crashing the R process. - This package can be built to WASM now (#29). You can install it via webr::install('tinyimg', repos = 'https://yihui.r-universe.dev') in your webR application. Changes in version 0.4 (2026-04-14) - Added tinyjpg() for JPEG optimization (using the mozjpeg Rust crate). - Added tinyimg() as a general entry point for optimizing both PNG and JPEG files in a directory or a vector of paths. - Added tiny_output() helper to generate safe output paths with lossy/quality suffixes (e.g., foo_l2.3.png, foo_q70.jpg), now the default output for all three optimizers. Changes in version 0.3 (2026-03-06) - Added optional lossy PNG optimization before lossless oxipng optimization. - Changed the primary API from optim_png() to tinypng(). - Updated benchmark examples for lossy optimization results, visual comparisons, and lossy-level plots. Changes in version 0.2 (2026-02-20) Initial CRAN release This is the first CRAN release of tinyimg. The package provides tools for optimizing and compressing images using Rust libraries. - PNG optimization via the oxipng Rust crate - Support for single file and directory optimization - Configurable optimization levels (0-6) - Optional alpha channel optimization for transparent pixels - Preservation of file permissions and timestamps - Verbose output showing file size reduction - Recursive directory processing