lilliput
bimg
lilliput | bimg | |
---|---|---|
5 | 5 | |
1,926 | 2,549 | |
0.5% | - | |
6.6 | 3.9 | |
9 days ago | 13 days ago | |
C++ | Go | |
GNU General Public License v3.0 or later | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
lilliput
-
A look at how Discord uses Rust for their data services
We only have one service we've written in go that we maintain, which is the media proxy. We will probably rewrite that in Rust at some point - but it's not a priority, and more of a passion/side project. Most of that service is actually open sourced here: https://github.com/discord/lilliput - it's basically just a CGO wrapper around C/C++ image resizing code. The closed source bits are just the code that downloads and feeds images to that library, then serves the results back over http/grpc.
- Add support for animated WebP images by MCJack123 · Pull Request #103 · discord/lilliput · GitHub
-
Discord's image resizing framework (written in Go) doesn't support animated WebP. Is anyone willing to fix this?
The relevant issue: https://github.com/discord/lilliput/issues/97
-
Discord still doesn't support Animated WEBP, a format that's way better than GIF.
Our image resizing code is open source: https://github.com/discord/lilliput
bimg
-
Go Image Converting
h2non/bimg can handle both if the underlying libvips is compiled with support for both formats.
-
What is the coolest Go open source projects you have seen?
bimg
-
WASM instead of C Dependencies?
I have web applications written in Rust and Go that need some basic image processing (reading JPEGs, PNGs, writing JPEGs, WebPs, AVIFs and resizing). This is something I always struggle with, because most libraries for image processing are written in C (libpng, libwebp, mozjpeg; or higher-level ones like vips). While there are usually dependencies in each language build on top of those C dependencies, like bimg for Go, I don’t like having C dependencies in a Rust, Go or even Node.js projects.
- Image manipulation with Go
-
Image Compression with Golang
For image processing, I will use the bimg library because in my opinion it has a very intuitive API and is easy to use, in addition to being very fast.
What are some alternatives?
govips - A lightning fast image processing and resizing library for Go
mergi - go library for image programming (merge, crop, resize, watermark, animate, ease, transit)
imaginary - Fast, simple, scalable, Docker-ready HTTP microservice for high-level image processing
imaging - Imaging is a simple image processing package for Go
ShibaView - Fast and lightweighed image viewer for Windows. Suitable for image processing and computer vision area, providing presize visualization without interpolation, high zoom and color picking mode.
bild - Image processing algorithms in pure Go
sharp - High performance Node.js image processing, the fastest module to resize JPEG, PNG, WebP, AVIF and TIFF images. Uses the libvips library.
goimagehash - Go Perceptual image hashing package
tacentview - An image and texture viewer for tga, png, apng, exr, dds, pvr, ktx, ktx2, astc, pkm, qoi, gif, hdr, jpg, tif, ico, webp, and bmp files. Uses Dear ImGui, OpenGL, and Tacent. Useful for game devs as it displays information like the presence of an alpha channel and querying specific pixels for their colour.
fastimage - Finds the type and/or size of a remote image given its uri, by fetching as little as needed.