Releases: MogensenJesse/image-optimizer
Releases · MogensenJesse/image-optimizer
Image Optimizer v0.6.10
What's New in v0.6.0
New Features
- SVG optimization — SVG files are now supported via vexy-vsvg (a native Rust port of SVGO), removing metadata, minifying paths, and collapsing groups for smaller file sizes
- Internationalization — the app is now available in 6 languages: English, Dutch, German, French, Spanish, and Russian
- Toast notifications — non-intrusive feedback when unsupported files are skipped, with auto-dismiss animation
Improvements
- Structured logging — configurable log levels via
RUST_LOG - UI accessibility — consistent focus indicators on all interactive elements
- Typography consistency — standardized font weights and spacing across panels and menus
- Dropdown styling — added chevron icon to the language selector
- Skipped-files messaging — shows one filename with a count of others instead of listing all
- Progress bar responsiveness — visual now closely tracks the percentage text
- Unified progress tracking — progress bar now accurately reflects overall job completion
- Updated JS and Rust dependencies
Fixes
- Fixed toast notification only appearing once for repeated actions
- Fixed progress events being dropped during fade-in animation
- Fixed processing timer not starting for fast operations
v0.6.1
Improvements
- SVG optimization — replaced vexy-vsvg with oxvg_optimiser for significantly better SVG minification (up to 67% compression)
- Adaptive size display — file savings now shown in B, KB, or MB depending on magnitude
- Native library bundling — libvips and its dependencies are now included in all platform installers (Windows DLLs, macOS dylibs, Linux deb dependency)
- In-app changelog rendering — bold and inline code markdown now renders correctly
Fixes
- Fixed "DLL not found" errors on Windows installations (
libvips-42.dll,libgobject-2.0-0.dll) - Fixed silent launch failures on macOS and Linux due to missing native libraries
- Fixed "0 MB saved" display when optimizing small files
v0.6.2 - v0.6.10
Improvements
- Faster CI builds — added Rust and libvips caching, removed duplicate macOS build
- macOS universal binary — single download now works on both Intel and Apple Silicon Macs
- Translated UI — "Options" label and file-size units (B, KB, MB) are now localized in all languages
- More reliable releases — every macOS build is now automatically inspected before publishing to confirm all required libraries are bundled
Fixes
- Fixed native DLLs not being copied next to the executable on Windows
- Fixed macOS build script compatibility with older bash versions
- Fixed compilation failure on macOS caused by LTO and window-vibrancy conflict
- Fixed macOS app crash on launch caused by a missing native library inside the bundle
- Dropped unused MSI installer to simplify Windows distribution
Image Optimizer v0.6.6
What's New in v0.6.0
New Features
- SVG optimization — SVG files are now supported via vexy-vsvg (a native Rust port of SVGO), removing metadata, minifying paths, and collapsing groups for smaller file sizes
- Internationalization — the app is now available in 6 languages: English, Dutch, German, French, Spanish, and Russian
- Toast notifications — non-intrusive feedback when unsupported files are skipped, with auto-dismiss animation
Improvements
- Structured logging — configurable log levels via
RUST_LOG - UI accessibility — consistent focus indicators on all interactive elements
- Typography consistency — standardized font weights and spacing across panels and menus
- Dropdown styling — added chevron icon to the language selector
- Skipped-files messaging — shows one filename with a count of others instead of listing all
- Progress bar responsiveness — visual now closely tracks the percentage text
- Unified progress tracking — progress bar now accurately reflects overall job completion
- Updated JS and Rust dependencies
Fixes
- Fixed toast notification only appearing once for repeated actions
- Fixed progress events being dropped during fade-in animation
- Fixed processing timer not starting for fast operations
v0.6.1
Improvements
- SVG optimization — replaced vexy-vsvg with oxvg_optimiser for significantly better SVG minification (up to 67% compression)
- Adaptive size display — file savings now shown in B, KB, or MB depending on magnitude
- Native library bundling — libvips and its dependencies are now included in all platform installers (Windows DLLs, macOS dylibs, Linux deb dependency)
- In-app changelog rendering — bold and inline code markdown now renders correctly
Fixes
- Fixed "DLL not found" errors on Windows installations (
libvips-42.dll,libgobject-2.0-0.dll) - Fixed silent launch failures on macOS and Linux due to missing native libraries
- Fixed "0 MB saved" display when optimizing small files
v0.6.2 – v0.6.6
Improvements
- Faster CI builds — added Rust and libvips caching, removed duplicate macOS build
- macOS builds — fixed compilation failure caused by LTO and window-vibrancy conflict
Fixes
- Fixed native DLLs not being copied next to the executable on Windows
- Fixed macOS build script compatibility with older bash versions
- Dropped unused MSI installer to simplify Windows distribution
Image Optimizer v0.6.4
v0.6.4
Improvements
- SVG optimization — replaced vexy-vsvg with oxvg_optimiser for significantly better SVG minification (up to 67% compression)
- Adaptive size display — file savings now shown in B, KB, or MB depending on magnitude
- Native library bundling — libvips and its dependencies are now included in all platform installers (Windows DLLs, macOS dylibs, Linux deb dependency)
- In-app changelog rendering — bold and inline code markdown now renders correctly
Fixes
- Fixed "DLL not found" errors on Windows installations (
libvips-42.dll,libgobject-2.0-0.dll) - Fixed silent launch failures on macOS and Linux due to missing native libraries
- Fixed "0 MB saved" display when optimizing small files
What's New in v0.6.0
New Features
- SVG optimization — SVG files are now supported via vexy-vsvg (a native Rust port of SVGO), removing metadata, minifying paths, and collapsing groups for smaller file sizes
- Internationalization — the app is now available in 6 languages: English, Dutch, German, French, Spanish, and Russian
- Toast notifications — non-intrusive feedback when unsupported files are skipped, with auto-dismiss animation
Improvements
- Structured logging — configurable log levels via
RUST_LOG - UI accessibility — consistent focus indicators on all interactive elements
- Typography consistency — standardized font weights and spacing across panels and menus
- Dropdown styling — added chevron icon to the language selector
- Skipped-files messaging — shows one filename with a count of others instead of listing all
- Progress bar responsiveness — visual now closely tracks the percentage text
- Unified progress tracking — progress bar now accurately reflects overall job completion
- Updated JS and Rust dependencies
Fixes
- Fixed toast notification only appearing once for repeated actions
- Fixed progress events being dropped during fade-in animation
- Fixed processing timer not starting for fast operations
Image Optimizer v0.6.0
What's New in v0.6.0
New Features
- Internationalization — the app is now available in 6 languages: English, Dutch, German, French, Spanish, and Russian
- Toast notifications — non-intrusive feedback when unsupported files are skipped, with auto-dismiss animation
Improvements
- Structured logging — configurable log levels via
RUST_LOG - UI accessibility — consistent focus indicators on all interactive elements
- Typography consistency — standardized font weights and spacing across panels and menus
- Dropdown styling — added chevron icon to the language selector
- Skipped-files messaging — shows one filename with a count of others instead of listing all
- Progress bar responsiveness — visual now closely tracks the percentage text
- Unified progress tracking — progress bar now accurately reflects overall job completion
- Updated JS and Rust dependencies
Fixes
- Fixed toast notification only appearing once for repeated actions
- Fixed progress events being dropped during fade-in animation
- Fixed processing timer not starting for fast operations
Image Optimizer v0.5.3
What's New in v0.5.3
Image optimization is now powered by a native Rust engine (libvips), replacing the Node.js sidecar. This results in a 20–50% increase in optimization speed, lower memory usage, and a simpler architecture.
New Features
- Native image processing engine — all optimization now runs natively in Rust using libvips, eliminating the separate Node.js process
- Smart lossless compression — quality 100% now uses maximum compression effort across all formats (JPEG, PNG, WebP, AVIF) for the smallest possible file sizes
Improvements
- Shrink-on-load for JPEG resizing — only decodes the pixels needed, significantly faster for large images
- Sequential file access for compression-only operations, reducing I/O overhead
- Optimized build settings for faster image processing
- Lossy mode encoding tuned to prioritize speed while maintaining great quality
- Settings UI improvements
- Updated JS and Rust dependencies
Fixes
- Resolved AVIF color shifts in lossless mode
- Fixed AVIF bit-depth compatibility issues
- Fixed CI builds for Windows, Linux, and macOS
Other
- Removed Node.js sidecar and all related IPC/serialization code
- Simplified project architecture to a single-process model
Image Optimizer v0.4.0
Settings Panel
- Redesigned from overlay to a sliding side panel alongside the dropzone
- Added changelog when an update is available
Styling improvements
- Refactored styles for better performance and consistency
Full Changelog: v0.3.5...v0.4.0
Image Optimizer v0.3.5
Auto-Update System
- Added in-app update checking and installation via
tauri-plugin-updater - App checks for updates automatically on startup (configurable)
- Manual "Check now" button in settings for on-demand update checks
- Updates are downloaded, verified against a signed public key, and installed with a single click
- Signed release artifacts (
.sigfiles) for update authenticity verification
Settings Panel
- New settings panel accessible via the cog icon in the title bar
- Toggle for enabling/disabling automatic update checks on startup
- Update status display with download progress
- Preference persistence via
tauri-plugin-store
Title Bar
- Added settings button with cog icon
- Green notification badge appears when an update is available
Build & Release
- Streamlined version management:
npm version patchnow syncspackage.json,Cargo.toml,Cargo.lock, andtauri.conf.jsonautomatically - Release tags always match the built app version (
v__VERSION__) - Signed builds via
TAURI_SIGNING_PRIVATE_KEYin CI
Full Changelog: 0.2.5...v0.3.5
0.3.0
Add settings panel and updater integration Introduce a Settings panel and updater flow: add a SettingsPanel React component, styles, and a settings icon; update TitleBar to show a settings button and update badge; wire App to open the panel and auto-check updates (via plugin-store). Add src/utils/updater.js as a thin wrapper around @tauri-apps/plugin-updater to check, download, and install updates. Initialize tauri-plugin-store in the Rust main and register the tauri-plugin-updater (desktop only); expose updater/store capabilities in src-tauri/capabilities/default.json. Also add TAURI_SIGNING_PRIVATE_KEY to the GitHub Actions workflow environment for signing. UI/cosmetic adjustments include importing the new styles into main.scss.
Image Optimizer v0.2.5
Added UI versioning
Image Optimizer v0.2.4
Performance
- Optimized Sharp worker pool sizing based on CPU cores and task count
- Added UV_THREADPOOL_SIZE auto-configuration for improved I/O parallelism
- Replaced synchronous file operations with async alternatives
- Configured Sharp caching and concurrency for optimal worker performance
Build & CI
- Added GitHub Actions caching for Rust, npm, and sidecar dependencies
- Improved Linux support and cross-platform sidecar builds
Fixes
- Fixed worker pool over-spawning when batch size < CPU cores
- Fixed sidecar packaged detection for cross-platform compatibility
- Fixed temp file cleanup race conditions (moved to Rust backend)
- Fixed progress timer lifecycle in useProgressTracker
- Resolved clippy warnings in Rust backend
Code Quality
- Upgraded to Tauri 2.9, React 19, Vite 7
- Added Biome linter for frontend code
- Simplified AppState (removed unnecessary Mutex/async overhead)
- Removed unused benchmarking feature and dead code
- Added Rustdoc comments to core modules
- Unified optimize_image to reuse batch logic
Documentation
- Added ARCHITECTURE.md
- Added GITHUB_ACTIONS.md with CI/CD documentation
- Updated README roadmap