imgproxy

A standalone server for resizing, processing, and converting images on the fly via HTTP requests.

imgproxy is an open-source standalone server that resizes, processes, and converts images on the fly. It operates as a microservice that handles image processing tasks via HTTP requests, allowing developers to offload these operations from their primary web applications. The software is typically deployed as a Docker container and sits behind a CDN, load balancer, or reverse proxy to handle traffic and caching.

Users provide a source image URL and specific processing options through a crafted URL. imgproxy then fetches the image, applies the requested transformations, and serves the result back to the requester. This approach eliminates the need to pre-generate multiple versions of an image to fit different design requirements, as the processing happens on demand. This allows for rapid design changes without the need to repeatedly re-prepare image assets.

Key features

  • Support for JPEG, PNG, GIF, WebP, AVIF, and JPEG XL formats
  • Image resizing, cropping, rotating, and watermarking
  • Color profile and metadata stripping
  • PNG quantization for file size optimization
  • Simple smart cropping and auto-quality adjustments by file size
  • Signed URLs to prevent unauthorized server use and DoS attacks
  • Image dimension and type validation to prevent image bombs
  • Authorization via HTTP headers to restrict direct access

The server is written in Golang and utilizes the libvips library to maintain a low memory footprint and high processing speed. It is designed for developers who need a scalable way to manage media assets without implementing complex image processing logic or calling command-line tools within their own application code. The architecture focuses on the single responsibility principle, omitting features like HTTPS support to remain lightweight and compatible with standard infrastructure tools. By focusing on a narrow scope, the server ensures that image processing does not consume the resources of the main application server.

imgproxy serves as a specialized infrastructure component for automated image optimization and delivery in high-traffic environments.

Last Modified
Software TypeWeb App / Server
Platform
Last Activity16 days ago
Repository Age9 years
LicenseApache-2.0
Open Source Alternative to
Open Source Software.io

Join our newsletter to get shiny new open source software delivered to your inbox. Unsubscribe anytime.