burak unlu

Stretta – Image Compressor App

2024
Desktop Application
completed

🎯 Impact: Open-source tool emphasizing privacy-first image compression with cross-platform availability

Overview

Stretta is a high-performance desktop application that provides users with complete control over their image compression needs while maintaining absolute privacy through local processing. Built using Rust, Tauri, React, Vite, and Tailwind CSS, the application combines the security and performance of Rust with a modern, intuitive user interface featuring both dark and light modes.

Developed as a learning project to explore Rust development, Stretta addresses the growing concern about privacy in online image processing tools by ensuring that all compression operations happen locally on the user's machine. No images are ever uploaded to external servers, providing users with complete confidence in their data security while delivering professional-grade compression results. The application supports multiple input formats (JPEG, PNG, GIF, WebP, BMP) and offers various compression methods including lossy JPEG, lossless PNG, and both lossy and lossless WebP compression.

Technologies Used

RustTauriReactViteTailwind CSSshadcn/uiImage ProcessingCross-platform

Key Features

100% local image processing - no internet required
Drag-and-drop interface with intuitive workflow
Multiple input formats: JPEG, PNG, GIF, WebP, BMP
Multiple compression methods: lossy JPEG, lossless PNG, lossy/lossless WebP
Customizable quality settings (10-100%)
Batch processing for multiple images simultaneously
Before/after file size comparison and preview slider
Dark and light mode support
Cross-platform compatibility (Windows, macOS, Linux)
Open source with Apache 2.0 license

Challenges & Solutions

Learning Rust programming language from scratch
Integrating multiple image processing crates (image, oxipng, webp)
Creating responsive Tauri-React bridge for seamless UI interactions
Optimizing memory management for large image batch operations
Cross-platform build and distribution setup
Balancing compression quality with processing speed across different formats

Key Learnings

Rust programming fundamentals and memory safety principles
Tauri framework for building cross-platform desktop applications
Modern React development with Vite and Tailwind CSS
Image processing algorithms and format-specific optimization
Desktop application packaging and distribution workflows
Open source project development and documentation practices
Performance optimization for CPU-intensive operations