iup-go
bimg
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.
iup-go
-
Ideas for GUI libraries?
For years I had Qt experience in Python and C++. But I found it too heavy to introduce in a Go project. After trying a couple different options (I'm not a web dev) I actually really liked IUP. https://github.com/gen2brain/iup-go
-
IUP – Cross platform C GUI library
You can check the screenshot from Windows 10 here https://github.com/gen2brain/iup-go/blob/main/examples/sampl.... If you are not using the manifest it will not follow the system appearance and will always look like Windows XP Classic.
-
bindings to GTK or QT
I've tried a few different Go gui solutions so far. Coming from a C++/Python Qt background, I wanted to use Qt bindings but found them to be a bit too heavy as a dependency in Go. And I'm not a skilled web dev so some of the other options didn't suit me well enough. But I did actually enjoy using this in a recent project: https://github.com/gen2brain/iup-go
-
Desktop UI
For native controls check https://github.com/gen2brain/iup-go.
-
Are there any cross-platform GUI frameworks programmable with Go which you’d recommend?
That depends on your requirements. I'm currently using IUP for a desktop app (Linux and WIndows). Caveats:
-
Go GUI with access to filesystem... Best approach?
For native UI, you can check https://github.com/gen2brain/iup-go. There are 50+ examples to help you, i.e. show images, buttons, file dialogs, etc.
-
What is the coolest Go open source projects you have seen?
If I may, https://github.com/gen2brain/iup-go: Cross-platform UI library with native controls.
-
What makes Go unsuitable for UI development?
You can check https://github.com/gen2brain/iup-go. The Cocoa backend is still not finished but it works for basic UI. There is GLCanvas for Linux and Windows.
-
The Linux GUI toolkit situation, or why Electron (or similar) is sadly the future.
I recently created a Go binding here https://github.com/gen2brain/iup-go and was amazed how simple API is, thanks to their attribute system. Although they have some controls that are custom, everything else is native. Compared to Qt or wxWidgets, IUP is just a UI toolkit, Qt/wxWidgets is much more than just a UI toolkit.
- iup-go: Cross-platform UI library with native controls
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?
unison - A unified graphical user experience toolkit for Go desktop applications
govips - A lightning fast image processing and resizing library for Go
purego
imaginary - Fast, simple, scalable, Docker-ready HTTP microservice for high-level image processing
zenity - Zenity dialogs for Golang, Windows, macOS
imaging - Imaging is a simple image processing package for Go
bubbletea - A powerful little TUI framework 🏗
bild - Image processing algorithms in pure Go
syncthing - Open Source Continuous File Synchronization
goimagehash - Go Perceptual image hashing package
beeep - Go cross-platform library for sending desktop notifications, alerts and beeps
fastimage - Finds the type and/or size of a remote image given its uri, by fetching as little as needed.