Which GUI platform and why?

This page summarizes the projects mentioned and recommended in the original post on /r/golang

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • gotk3

    Go bindings for GTK3

    gotk3 together with gotk3-layershell. Because almost all of my projects are aimed at sway / Wayland.

  • gotk3-layershell

    Gotk3 addon module that provides gtk_layer_shell compatibiility

    gotk3 together with gotk3-layershell. Because almost all of my projects are aimed at sway / Wayland.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

  • windigo

    Windows API and GUI in idiomatic Go.

    I write native Windows stuff sometimes, and I use Windigo, which I wrote based on my WinLamb C++ lib. It's a GUI system over raw Win32, so this has the disadvantage that you'll have to learn some Win32... but it has the advantage that you have the unleashed power of Win32 at your fingertips.

  • winlamb

    A lightweight modern C++11 library for Win32 API, using lambdas to handle Windows messages.

    I write native Windows stuff sometimes, and I use Windigo, which I wrote based on my WinLamb C++ lib. It's a GUI system over raw Win32, so this has the disadvantage that you'll have to learn some Win32... but it has the advantage that you have the unleashed power of Win32 at your fingertips.

  • Wails

    Create beautiful applications using Go

    Id suggest Wails if you want a standalone window or directly embed any fronted framework with go:embed into the binary. If browser tab is good enough. Svelte works very well for me. Nothing beats html/css/js in terms of gui design in the go world imho...

  • gio

    Mirror of the Gio main repository (https://git.sr.ht/~eliasnaur/gio)

  • monte-carlo-pi

    +1 for Fyne. I've used Ebiten to create a graphical monte carlo simulation to estimate pi and really enjoyed it. But if the OP specifically mentioned Fyne, it sounds like they are looking for something with a bunch of built-in widgets which Ebiten doesn't have (to my knowledge) as it is focused strictly on 2d game dev.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

  • nucular

    GUI toolkit for go

  • sabnzbd

    SABnzbd - The automated Usenet download tool

    One option to consider is just running an http server locally and using the browser as your interface (along the lines of what sabnzbd does). Considering how go pretty much gives you everything out of the box to run a Web server, this approach has some virtues, though it may confuse nontechnical users.

  • giu

    Cross platform rapid GUI framework for golang based on Dear ImGui.

    I'm using giu. Personally, I just like the way it looks and is easy to use.

  • gio-x

    Mirror of the Gio x repository (https://git.sr.ht/~whereswaldon/gio-x)

    I know that it's very complex. I think we don't even have a video codec written in Golang. I don't know what MPV is, but I'll take a look. My point is that some features that seem "basic" (comparing to JS/HTML) don't exist in Gio. The video is one of them, it's easy to create a `` on browsers. But, I most want the `blur` and `drop-shadow` features, but I don't know how to implement them. I'm still using Gio, and I'm also trying to add some features (the latest one that I'm working on is to implement [File Dialog](https://github.com/gioui/gio-x/pull/3), for Windows/WASM/Android). I hope that someday Gio implements most features that browsers (JS) have. :P

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts