golchha21/resmushit

A Laravel package for the popular image optimization web service reSmush.it

Installs: 21 652

Dependents: 0

Suggesters: 0

Security: 0

Stars: 7

Watchers: 1

Forks: 4

pkg:composer/golchha21/resmushit

1.3.4 2026-02-02 20:59 UTC

This package is auto-updated.

Last update: 2026-02-04 10:00:43 UTC


README

Version Downloads License

A Laravel package for the popular image optimization web service reSmush.it

Installation

Install via composer

composer require golchha21/resmushit

Publish configuration file

php artisan vendor:publish --provider Golchha21\ReSmushIt\Providers\ServiceProvider --tag=config

Example configuration file

// config/ReSmushIt.php

return [

    // Keep a copy of the original image
    'original' => true,

    // Image quality (0–100)
    'quality' => 92,

    // Supported mime types
    'mime' => [
        'image/png',
        'image/jpeg',
        'image/gif',
        'image/bmp',
        'image/tiff',
    ],

    // Custom User-Agent for API requests
    'useragent' => 'ReSmushIt v1.3.4',

    // Preserve EXIF metadata
    'exif' => false,
    
    // Maximum allowed file size in bytes (e.g. 5 MB)
    'max_filesize' => 5242880,
];

Usage

Option 1: Direct class usage

$file = public_path('images/news1.jpg');
$files = [
    public_path('images/news1.jpg'),
    public_path('images/news2.jpg'),
    public_path('images/news3.jpg'),
    public_path('images/news4.jpg'),
];

$resmushit = new ReSmushIt();
$result  = $resmushit->path($file);
$results = $resmushit->paths($files);

Option 2: Facade usage

$file = public_path('images/news1.jpg');
$files = [
    public_path('images/news1.jpg'),
    public_path('images/news2.jpg'),
    public_path('images/news3.jpg'),
    public_path('images/news4.jpg'),
];

Optimize::path($file);
Optimize::paths($files);

Error Handling

If the reSmush.it API is unreachable, times out, or returns an invalid response, the optimizer will return a structured error array instead of triggering a fatal error.

Example

$result = Optimize::path($file);

if (isset($result['error'])) {
    // Handle the error (log it, retry, notify user, etc.)
}

Return Value

Both path() and paths() always return arrays.

  • On success, the response contains optimization details returned by the reSmush.it API.
  • On failure, the response contains an error key describing the issue, along with additional context when available.

This applies to both single and batch optimization.

Changelog

Please see CHANGELOG for more information on what has changed recently.

Security

For common issues and environment-specific fixes, see Troubleshoot. If you discover any security-related issues, please email vardhans@ulhas.net instead of using the issue tracker.

Author

See also the list of contributors who participated in this project.

License

reSmushit for Laravel is open-sourced software licensed under the MIT license.