gomdim-apps/slimmer

PDF, image, and file compressor (Tar/Zstd) using Ghostscript and GD

Maintainers

Package info

github.com/GomdimApps/Slimmer

pkg:composer/gomdim-apps/slimmer

Statistics

Installs: 18

Dependents: 0

Suggesters: 0

Stars: 2

Open Issues: 0

v1.2.0 2026-05-16 20:12 UTC

This package is auto-updated.

Last update: 2026-05-16 20:58:20 UTC


README

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