manael
Manael is a simple HTTP proxy for processing images.
Manael: a simple HTTP proxy for processing images
Manael sits in front of an image server and converts responses to formats like WebP on the fly using libvips.
What Manael does as a proxy
Manael is a simple HTTP proxy for processing images. The README states this plainly and then shows how it is used. A user starts the proxy server with a command that sets a listen address and an upstream URL, for example manael http=:8080 upstream_url=http://localhost:9000. After that, Manael sits in front of the upstream image server and processes the images it proxies. The practical use is format conversion on the fly. When a client requests an image and sends an Accept header of image/webp, Manael automatically converts the response if the upstream returned a JPEG or PNG, so the client receives a WebP file instead. The README shows a curl command that fetches headers with Accept image/webp and says the response will have Content-Type image/webp when conversion succeeds. This lets a website serve modern formats to browsers that support them without storing multiple copies of every image. The proxy model means the origin server keeps storing the original, and Manael handles the transformation at request time. The README is short and focused, presenting Manael as a small tool that does one job: stand between a client and an image server and convert images based on what the client asks for in the Accept header.
Installation and building from source
The README offers two ways to get Manael. The first is to download the latest binary from the project's releases page, which is the simplest path for someone who just wants to run it. The second is to build from source, and the README is specific about what that requires. Building needs the libvips development headers in addition to Go and Git. libvips is the image processing library that does the actual conversion work, so Manael is a thin proxy layer over it. The README gives the install commands for the header package on two systems. On Debian or Ubuntu the command is sudo apt-get install -y libvips-dev. On macOS with Homebrew the command is brew install vips. After those headers are present, a normal Go build can produce the binary. The README links to the libvips website so users can read about the library. This dependency is the one wrinkle in building Manael, because a plain Go toolchain is not enough on its own. For most users the prebuilt binary avoids this step entirely. The README's install section is brief but complete: grab a release or install libvips and build. The MIT license at the end means the binary and source can be used freely under that license's terms.
Request handling and limits
The README is explicit about which requests Manael converts and which it passes through. Manael only converts images for GET requests. HEAD requests and other HTTP methods are passed through to the upstream server unchanged. The README adds a practical note: when testing from the command line, use curl with the flags to fetch headers of a converted image, specifically curl with a silent flag, an HTTP method of GET, and the Accept image/webp header, rather than a HEAD request that would skip conversion. This detail matters because a user who tests with HEAD would see no conversion and might think the tool is broken. By limiting conversion to GET, Manael keeps its scope narrow and predictable: it transforms the bodies of image fetches, and it leaves everything else to the upstream. The README does not claim to resize, watermark, or crop, only to convert format based on the Accept header, so users should not expect a general image editing pipeline. The design is a focused proxy that speaks HTTP and delegates the heavy lifting to libvips. For an operator, the behavior is easy to reason about: point it at an upstream, send Accept headers, and receive converted images for GET requests only.
Language, license, and project signals
The README shows Manael is a Go project through its build instructions and its GoDoc and Go workflow badges. The GoDoc badge links to the package documentation under the manael.org domain, and the Go workflow badge points to the project's continuous integration for the Go workflow, which tells a reader the code is built and tested automatically on each change. The Codecov badge suggests test coverage is tracked. The README ends with a License section that links to the MIT license, confirming the permissive terms under which the code and binaries are distributed. The manael.org domain in the GoDoc link hints at the project's home on the web. Taken together, the signals describe a small, single purpose utility written in Go, backed by libvips for image work, tested in CI, and released under MIT. The README does not promise a wide feature set, and that restraint is the point: Manael is a simple proxy that converts image formats on the fly for GET requests based on the client's Accept header. A team that wants WebP or similar conversion in front of an existing image host can run Manael with a one line command and the right upstream URL. The Go and Codecov badges indicate the code is built and tested automatically, and the MIT license permits free use and redistribution.
Editorial conclusion
Manael is written in Go and published under the MIT license. The README starts it with manael http=:8080 upstream_url=http://localhost:9000 and converts images when the client sends Accept image/webp.
Community notes