Skip to content

GomdimApps/Slimmer

Repository files navigation

Slimmer Logo

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.

Packagist License

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.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

Key sections:

Docker Testing

Run the test suite in an isolated environment:

make test

License

MIT

About

Wrapper for advanced file compression and PDF optimization in PHP. Seamlessly manage Ghostscript, GD, and directory archiving (Tar/Zstd) with a fluent API and stream support.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages