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

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.
milito/query-filter
apiboxsym/user-bundle
apiboxsym/health-check-bundle
jayeshmepani/jpl-moshier-ephemeris-php
elnasnato/laraliveui
labrodev/rest-sdk
sampaui/sampaui
babelqueue/php-sdk
facebook/capi-param-builder-php
babelqueue/symfony
hamzi/corewatch
minionfactory/raw-hydrator
hexters/coinpayment
rjcodes/rjcms
act-training/laravel-permissions-manager
alimarchal/laravel-chart-of-accounts
babenkoivan/elastic-scout-driver
mkwebdesign/filament-watchdog-v5
renatomarinho/laravel-page-speed
zedmagdy/filament-business-hours