h2non/imaginary

Fast, simple, scalable, Docker-ready HTTP microservice for high-level image processing

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 15 minutes ago
Type:Server / PlatformCategory(s):Image, Video & Audio EditingMedia, Graphics & Games
Added to GitGenius on September 11th, 2026
Created on March 4th, 2015
Open Issues & Pull Requests: 136 (+0)
GitHub issues: Enabled
Number of forks: 500
Total Stargazers: 6,075 (+0)
Total Subscribers: 68 (+0)

Repository Insights (GitGenius)

Most active contributors

Sign in to see contributor activity.

Related repositories by overlapping contributors

No overlapping-contributor repos identified yet.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 15
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 858 days
Stale 30+ days: 15
Stale 90+ days: 14

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • help wanted (1)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

imaginary is a fast HTTP microservice for high-level image processing backed by libvips.

The tool solves the problem of efficiently processing images at scale by wrapping libvips, a C library optimized for image manipulation. It exposes image operations through a simple HTTP API, allowing applications to offload processing to a dedicated service rather than handling it inline. The microservice can read images from HTTP POST payloads, local file paths, or remote HTTP servers, and supports input formats including JPEG, PNG, WEBP, HEIF, and optionally TIFF, PDF, GIF, and SVG. Output is available in JPEG, PNG, and WEBP formats with transparent conversion between them. The service includes optional features such as API token authorization, URL signature protection, HTTP traffic throttling, and CORS support for web clients. It can also return image placeholders on processing errors, ensuring a response is always delivered while reporting error details in response headers.

The tool suits teams building image-heavy applications that need to scale processing independently from their main application logic. It works well for scenarios requiring batch image operations, format conversion, or resizing at high volume. The service is designed for containerized deployment with first-class Docker support and can be deployed to platforms including Fly.io, Cloud Foundry, and Google Cloud Run. Its reliance on libvips rather than ImageMagick or GraphicsMagick offers significant performance advantages, with benchmarks showing libvips typically processes images four to eight times faster while using substantially less memory.

The project maintains active engagement with pull requests and issues, demonstrating responsiveness to community contributions and bug reports. Development activity shows consistent attention to both feature requests and maintenance concerns, with the maintainer addressing questions and feedback across multiple communication channels. The codebase reflects a focus on simplicity and performance, using only Go's native net/http package without additional web frameworks or abstractions.