https://github.com/gomdimapps/slimmer
Slimmer is a high-performance PHP library for advanced file compression and PDF optimization. It provides a fluent API to seamlessly compress PDFs and images (JPG, PNG) using Ghostscript, featuring auto-dimensioning to prevent canvas issues, stream support
https://github.com/gomdimapps/slimmer
ghostscript image-compression optimization-tools pdf-compressor pdf-optimization php
Last synced: about 2 hours ago
JSON representation
Slimmer is a high-performance PHP library for advanced file compression and PDF optimization. It provides a fluent API to seamlessly compress PDFs and images (JPG, PNG) using Ghostscript, featuring auto-dimensioning to prevent canvas issues, stream support
- Host: GitHub
- URL: https://github.com/gomdimapps/slimmer
- Owner: GomdimApps
- License: mit
- Created: 2026-05-16T04:06:29.000Z (14 days ago)
- Default Branch: main
- Last Pushed: 2026-05-16T13:27:39.000Z (13 days ago)
- Last Synced: 2026-05-16T15:43:44.268Z (13 days ago)
- Topics: ghostscript, image-compression, optimization-tools, pdf-compressor, pdf-optimization, php
- Language: PHP
- Homepage: https://packagist.org/packages/gomdim-apps/slimmer
- Size: 380 KB
- Stars: 2
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Slimmer
> Advanced file compression for PHP โ PDF ยท Images ยท Archives
A PHP library for compressing PDFs, images, and directories with minimal dependencies. Uses [Ghostscript](https://www.ghostscript.com/) for PDFs, PHP's `ext-gd` for images, and system `tar` for archives.
[](https://packagist.org/packages/gomdim-apps/slimmer)
[](LICENSE)
## Quick Start
```bash
composer require gomdim-apps/slimmer
```
### PDF Optimization
```php
use GomdimApps\Slimmer\Optimizers\PdfOptimizer;
$ratio = (new PdfOptimizer())
->withQuality('screen')
->optimize('input.pdf', 'output.pdf');
```
### Image Compression
```php
use GomdimApps\Slimmer\Optimizers\ImageOptimizer;
$ratio = (new ImageOptimizer())
->withQuality(75)
->optimize('input.jpg', 'output.jpg');
```
### Tar Archiving
```php
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.zst` compression
## 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**](https://GomdimApps.github.io/Slimmer)
Key sections:
- [Installation & Requirements](https://GomdimApps.github.io/Slimmer/#/installation)
- [PDF Optimizer](https://GomdimApps.github.io/Slimmer/#/pdf-optimizer)
- [Image Optimizer](https://GomdimApps.github.io/Slimmer/#/image-optimizer)
- [Tar Compression](https://GomdimApps.github.io/Slimmer/#/tar-compression)
- [Streams & Buffers](https://GomdimApps.github.io/Slimmer/#/streams-buffers)
- [Error Handling](https://GomdimApps.github.io/Slimmer/#/error-handling)
- [Troubleshooting](https://GomdimApps.github.io/Slimmer/#/troubleshooting)
## Docker Testing
Run the test suite in an isolated environment:
```bash
make test
```
## License
MIT