gomdim-apps / slimmer
PDF, image, and file compressor (Tar/Zstd) using Ghostscript and GD
v1.2.0
2026-05-16 20:12 UTC
Requires
- php: >=8.2
- ext-gd: *
- symfony/process: ^8.0
Requires (Dev)
- pestphp/pest: ^3.0
- phpunit/phpunit: ^11.0
This package is auto-updated.
Last update: 2026-05-16 20:58:20 UTC
README
Slimmer
Advanced file compression for PHP โ PDF ยท Images ยท Archives
A PHP library for compressing PDFs, images, and directories with minimal dependencies. Uses Ghostscript for PDFs, PHP's ext-gd for images, and system tar for archives.
Quick Start
composer require gomdim-apps/slimmer
PDF Optimization
use GomdimApps\Slimmer\Optimizers\PdfOptimizer; $ratio = (new PdfOptimizer()) ->withQuality('screen') ->optimize('input.pdf', 'output.pdf');
Image Compression
use GomdimApps\Slimmer\Optimizers\ImageOptimizer; $ratio = (new ImageOptimizer()) ->withQuality(75) ->optimize('input.jpg', 'output.jpg');
Tar Archiving
use GomdimApps\Slimmer\Optimizers\CompressTar; $ratio = (new CompressTar()) ->withFormat('zst') ->optimize('/path/to/dir', 'output.tar.zst');
Requirements
- PHP: >= 8.2
- ext-gd: For image compression
- Ghostscript (
gs): For PDF optimization - tar: For archiving
- zstd (optional): For
.tar.zstcompression
Features
- ๐ฆ PDF optimization with quality presets
- ๐ผ๏ธ Image compression (JPG, PNG)
- ๐ Tar archiving (
.tar.gz,.tar.zst) - ๐พ In-memory I/O via
fromString()/fromStream() - ๐ Dry-run mode for command inspection
- โฑ๏ธ Timeout control to prevent runaway processes
- ๐ฏ Retention management for archives
Documentation
Full documentation is available at GomdimApps.github.io/Slimmer
Key sections:
- Installation & Requirements
- PDF Optimizer
- Image Optimizer
- Tar Compression
- Streams & Buffers
- Error Handling
- Troubleshooting
Docker Testing
Run the test suite in an isolated environment:
make test
License
MIT