An image compression tool written in Rust, supporting PNG, JPEG, and WebP formats.
git clone https://github.com/yourusername/feather.git
cd feather
cargo build --releasehttps://github.com/josexy/feather/releases
# Compress a single file
feather input.jpg -o output.jpg
# Compress a directory recursively
feather input_dir/ -r -o output_dir/
# Compress in-place (overwrites original files)
feather images/ -r --in-place
# Compress with backup
feather images/ -r --in-place --backupfeather input_dir/ -r --min-size 5M -o output_dir/feather input_dir/ -r --max-size 10M -o output_dir/feather input_dir/ -r --min-size 5M --max-size 10M -o output_dir/# Set JPEG quality (1-100, default: 85)
feather input.jpg --jpeg-quality 90 -o output.jpg
# Enable PNG lossy compression with quality (1-100)
feather input.png --png-lossy --png-quality 80 -o output.png
# Set WebP quality (1-100, default: 80)
feather input.webp --webp-quality 85 -o output.webp# Resize to maximum width of 1920px
feather input.jpg --max-width 1920 -o output.jpg
# Resize to maximum height of 1080px
feather input.jpg --max-height 1080 -o output.jpg
# Set both width and height constraints
feather input.jpg --max-width 1920 --max-height 1080 -o output.jpg# Only process JPEG files
feather images/ -r --glob-pattern "*.jpg" -o output/
# Process multiple patterns
feather images/ -r --glob-pattern "*.{jpg,jpeg,png}" -o output/