Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Resmushit Laravel Package

golchha21/resmushit

View on GitHub
Deep Wiki
Context7

reSmushit for Laravel

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 [email protected] 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.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk
martialbe/flysystem-oss
chondal/3312client
jeroen-g/flickr
opscale-co/nova-genbi
itsjustvita/laravel-retention
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log