PHPackages                             eleven-miles/iris - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Image &amp; Media](/categories/media)
4. /
5. eleven-miles/iris

ActiveLibrary[Image &amp; Media](/categories/media)

eleven-miles/iris
=================

A PHP WordPress package that converts images to webP on upload; by default.

v2.0.1(2y ago)22.9k[1 PRs](https://github.com/Eleven-Miles/iris/pulls)MITPHPPHP &gt;=7.4

Since Aug 22Pushed 2y ago3 watchersCompare

[ Source](https://github.com/Eleven-Miles/iris)[ Packagist](https://packagist.org/packages/eleven-miles/iris)[ RSS](/packages/eleven-miles-iris/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (8)DependenciesVersions (16)Used By (0)

Eleven Miles: Iris
==================

[](#eleven-miles-iris)

Requirements
------------

[](#requirements)

This package can be used with WordPress 5.8 and forward, due to WebP support being introduced. This package enables servers to directly process and convert JPEG or PNG files on upload as well as bulk and single image conversions via WP CLI.

Setup
-----

[](#setup)

This package is installed using Composer.

Run `composer require eleven-miles/iris` to install.

CLI Commands
------------

[](#cli-commands)

### Bulk Conversion

[](#bulk-conversion)

Use `wp iris` to run a full media library conversion. This will run through all JPG and PNG attachments and convert them to webp. This process uses Action Scheduler to queue up each conversion and wait until each is complete to progress.

### Single Conversion

[](#single-conversion)

Use `wp iris-id $id` to run a single image conversion. This command takes an attachment ID as an argument and then runs a webp conversion on the single image.

Dependancies
------------

[](#dependancies)

Iris requires the two following plugins to be installed and activated.

### Action Scheduler

[](#action-scheduler)

Iris uses [Action Scheduler](https://actionscheduler.org/usage/) to run webp convertion at scheduled intervals. This functionality helps when converting media libraies, and when images are uploaded in bulk. The GD image processing can have memory issues when bulk uploading images and return failed conversion. Action Scheduler helps to ensure that all images are converted by queuing up the conversions.

### Offload Media

[](#offload-media)

Iris uses [Offload Media](https://deliciousbrains.com/wp-offload-media/) to store converted images in the cloud. During the Iris process the following Offload method - `Media_Library_Item::get_by_source_id` - is used to check if the attachement exists in the relevant storage system (eg AWS S3 bucket).

Debugging
---------

[](#debugging)

For debugging: `Debug::debug($image_meta);`

###  Health Score

30

—

LowBetter than 64% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity22

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity55

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~57 days

Recently: every ~35 days

Total

9

Last Release

909d ago

Major Versions

v1.1.3 → v2.02023-10-30

### Community

Maintainers

![](https://www.gravatar.com/avatar/8d165dc4e785a667b83bbbe50b3f64547e428c5c7088cb5573900b6bc106ae0c?d=identicon)[harryfinn](/maintainers/harryfinn)

![](https://www.gravatar.com/avatar/69675bbe4bb2bffa2762f30e2dc952ec90cf085a5ff9db0762d5ec9f742673c8?d=identicon)[joelouisworthington](/maintainers/joelouisworthington)

![](https://www.gravatar.com/avatar/37cd6b7d28106a8a13c337320fbcfd203eec2b4ddd31d1df0cc0989a7aa5ec58?d=identicon)[calumbutchart](/maintainers/calumbutchart)

![](https://www.gravatar.com/avatar/f2f1790df04e24cd87452ab308df123e34d2623608ca826085a8cfe9242b3345?d=identicon)[aimeehaines](/maintainers/aimeehaines)

![](https://www.gravatar.com/avatar/7817168ac0a20b55835cdfbe72a1f2ef5c33199ca03d3cf7b81af42ebd644f8f?d=identicon)[elevenmiles](/maintainers/elevenmiles)

---

Top Contributors

[![joelouisworthington](https://avatars.githubusercontent.com/u/13175830?v=4)](https://github.com/joelouisworthington "joelouisworthington (8 commits)")

---

Tags

webpwordpress

### Embed Badge

![Health badge](/badges/eleven-miles-iris/health.svg)

```
[![Health](https://phpackages.com/badges/eleven-miles-iris/health.svg)](https://phpackages.com/packages/eleven-miles-iris)
```

###  Alternatives

[milon/barcode

Barcode generator like Qr Code, PDF417, C39, C39+, C39E, C39E+, C93, S25, S25+, I25, I25+, C128, C128A, C128B, C128C, 2-Digits UPC-Based Extention, 5-Digits UPC-Based Extention, EAN 8, EAN 13, UPC-A, UPC-E, MSI (Variation of Plessey code)

1.5k13.3M39](/packages/milon-barcode)[bkwld/croppa

Image thumbnail creation through specially formatted URLs for Laravel

510496.0k23](/packages/bkwld-croppa)[goat1000/svggraph

Generates SVG graphs

132849.6k3](/packages/goat1000-svggraph)[cohensive/embed

Media Embed (for Laravel or as a standalone).

120370.4k](/packages/cohensive-embed)[netresearch/rte-ckeditor-image

Image support in CKEditor for the TYPO3 ecosystem - by Netresearch

63991.3k4](/packages/netresearch-rte-ckeditor-image)[humanmade/tachyon-plugin

Rewrites WordPress image URLs to use Tachyon

87338.5k2](/packages/humanmade-tachyon-plugin)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
