- JSON Output: Added
--jsonflag for structured JSON output to stdout (progress written to stderr)
- Fast Scan: Added option to skip magic bytes checks while scanning (
--check_extension_only) - Minimum Saving: Implement min saving feature (#95)
- Added CHANGELOG.md to fix #94
- ICC Profile Stripping: New
--strip-iccflag to remove ICC profile information from JPG files, regardless of the-eflag - No Upscale Option: New
--no-upscaleflag to prevent upscaling images when resizing
- Updated libcaesium dependency from 0.19 to 0.20
- Enhanced ICC profile handling for JPEG compression
- Fixed base path computation for files on different drives (Windows)
- Fixed the output path computation when the base directory is empty
- Updated USAGE.md with new command-line options
- Fixed resize parameters building when both width and height are specified
- Improved resize parameter logic to properly handle width and height combinations
- GitHub Actions workflow for automated crates.io publishing
- GIF Support: Added GIF compression support (no format conversion to GIF)
- No Upscale Feature: Prevent upscaling images when resizing with
--no-upscaleflag - Human-readable File Sizes:
--max-sizenow accepts human-readable formats (e.g.,100KB,0.5MB,1GiB)
- Updated libcaesium from 0.18 to 0.19
- Fixed resize logic to handle both width and height parameters simultaneously
- Fixed GIF format mapping in compression parameters
- Added proper GIF quality handling
- Updated README with GIF support information
- Added installation instructions for Cargo and Homebrew
- Enhanced file type detection using first bytes reading instead of full file inference (performance improvement)
- Improved
get_file_mime_typefunction efficiency
- Critical Fix: Fixed output path handling in dry-run mode
- Fixed
same_folder_as_inputlogic to properly place files in the same directory as input - Improved output directory creation to skip in dry-run mode
- Updated libcaesium from 0.17.3 to 0.18.0
- Enhanced lossless compression handling for different formats (JPEG, PNG, WebP)
- Fixed lossless flag application – now properly sets format-specific optimize flags instead of a global flag
- Added Homebrew automated release workflow
- Multi-format support: JPEG, PNG, WebP
- Compression options:
- Quality-based compression
- Lossless compression mode
- Target maximum file size
- Resize options:
- Width and height
- Long-edge and short-edge
- Metadata handling:
- EXIF metadata preservation with
--exifflag - Keep original file dates with
--keep-datesflag
- EXIF metadata preservation with
- Format conversion: Convert between supported image formats
- Batch processing:
- Recursive directory scanning with
-Rflag - Progress bar with different verbosity levels
- Recursive directory scanning with
- Output options:
- Dry-run mode
- Custom output directory
- Suffix support for output files
- Keep folder structure option
- Same folder as input option
- Overwrite policies: all, prompt, bigger, none
- Format-specific options:
- JPEG: chroma subsampling, baseline mode
- PNG: optimization levels (0-6), Zopfli compression
- Progress bar refactoring and code cleanup
- Improved user interface and output formatting
- Verbose level as numbers instead of strings
- Improved CLI argument handling and validation
- Same folder as input option
- Suffix option for output files
- Lossless compression flag
- Major code refactoring for stability and maintainability
- Compress by quality option
- Long edge/Short edge resize option
- Keep the original dates option
- Format conversion support
- Various bug fixes and stability improvements
- Major: Complete migration to Rust
- Improved performance and reliability
- Better cross-platform support
- Fixed Windows build issues
- Updated libcaesium to 0.9.3
- Updated libcaesium to 0.9.2
- Now using libcaesium Rust library
- Fixed the Windows -RS flag bug
- Fixed the rename bug on Windows
- "Compressing..." message for better user feedback
- Support for libcaesium 0.5.0
--quietoption for silent operation
- General bug fixes
- General bug fixes
- Windows binaries available
- Beta release – backup recommended before use
- macOS and Linux users must compile from source
- Resizing support (experimental)
- Dry-run option
- Path handling issues
- Windows binaries available
- Basic compression functionality
- Beta release – backup recommended before use
- macOS and Linux users must compile from source
- All core features now available
- Switched to CMake build system
- Now using libcaesium library
- Initial development stage