Show HN: Imagor v1 – fast image processing server in Go and libvips Imagor is a fast, Docker-ready image processing server written in Go, with libvips. The v1 milestone has got more advancements to its internals. At the moment, all existing popular Go + libvips image applications (imgproxy, imaginary, bimg etc.) bridge libvips through buffer. While these are all good with normal web images, the latency and memory overhead can be noticeable when working through large, raw images, as they are all loading the whole image buffer in memory, sequentially. Imagor v1 now bridges libvips through streams (i.e. Go io.Reader/Seeker/Closer). This greatly increases network throughput especially with network sources like HTTPs, S3, GCS, by giving the ability to overlap processing pipelines. With streaming in place, same goes for image Exif metadata. Imagor can try to retrieve data just enough to extract the header, without reading and processing the whole image in memory. Though of course cgo + stream means a lot of moving parts that can go wrong. Imagor has increased test coverages since then. It has been running in production for months, serving over a million of images everyday. Feel free to create a pull request or report an issue if you found bugs, suggestions or enhancements. https://ift.tt/zgCSo8a August 15, 2022 at 12:30AM
Comments
Post a Comment