---
title: "A new GUI framework enters the ring"
publication: "Go Weekly"
issue: 517
published_at: "2024-07-30"
canonical_url: "https://golangweekly.com/issues/517"
---

Plus seeing Go's new features version by version. |        

#​517 — July 30, 2024 

[Unsub](https://golangweekly.com/leave/*|UID|*)|[Web Version](https://golangweekly.com/issues/517)  

Together with [![Render logo\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,e_trim,w_500,h_100/e_make_transparent/co_white,e_outline:7/bil3olyaqqkao0fkbhis.png)](https://render.com?utm_source=cooperpress&utm_medium=cooperpress)   

Go Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/arvrtpcnl0xxutvocbmx.jpg)](https://www.cogentcore.org/blog/initial-release)  

[Cogent Core: A New GUI Framework for Go](https://www.cogentcore.org/blog/initial-release) — A new GUI framework with a “code once and run everywhere” promise for multiple platforms. It aims to be simpler to use than [Gio](https://gioui.org/) and more powerful than [Fyne](https://fyne.io/). Curiously, Cogent’s web site itself is built in the framework and compiled to WASM to work on the Web. There’s also [▶️ a quick screencast](https://www.youtube.com/watch?v=nZzdy3Kyypk) pitching you on the framework. 

Kai O'Reilly and Randy O'Reilly   

[Go Features by Version (or What's in Which Go)](https://antonz.org/which-go/) — A list of features and the versions in which they first appeared. Proof, if any were needed, that the progress made to Go isn't slowing down. (And if you want to get up to speed with Go 1.23, [here are the notes for you.](https://antonz.org/go-1-23/)) 

Anton Zhiyanov   [![\](https://copm.s3.amazonaws.com/ecbbf111.jpg)](https://render.com?utm_source=cooperpress&utm_medium=cooperpress) 

[Render is Your Fastest Path to Production](https://render.com?utm_source=cooperpress&utm_medium=cooperpress) — Whatever your stack you can build, deploy quickly, update and confidently scale your apps with ease, from the first to the billionth user. Start building with Render for free — the modern cloud for devs. 

Render sponsor   

[Build Your Own SMTP Server in Go](https://valyent.substack.com/p/build-your-own-smtp-server-in-go) — The actual code here isn’t low level, but it's a good practical guide to some of the technologies around sending e-mail, like SMTP, DKIM, and SPF. The [go-smtp library](https://github.com/emersion/go-smtp) ultimately does the heavy lifting. 

Alexis Bouchez   

[What’s New in Go 1.23: Iterators and `reflect.Value.Seq`](https://blog.carlana.net/post/2024/golang-reflect-value-seq/) — Carlana explains four of the functions around generic custom iteration that she proposed, comparing the new code to something she wrote ten(!) years ago using channels. If 2022 was all about generics, is 2024 the year of iterators? 

Carlana Johnson   

[Learn Go with Tests: A Refactoring Checklist](https://quii.gitbook.io/learn-go-with-tests/testing-fundamentals/refactoring-checklist) — The popular [Learn Go with Tests](https://quii.gitbook.io/learn-go-with-tests) guide gains a new chapter that gets you thinking about refactoring, when it makes sense to do it, and some of the basic techniques. 

Chris James   

[The Union of Finite Automata, Explained](https://www.tbray.org/ongoing/When/202x/2024/07/28/Union-of-Finite-Automata) — Tim found existing explanations to be overly academic, so set out to explain the concept with a little Go. 

Tim Bray   

[Merge Go Code 10x Faster at Quality with AI-Driven Code Reviews](https://coderabbit.ai?utm_source=newsletter&utm_medium=cooperpress%2Fgo) — AI-first pull request reviewer that offers context-aware, line-by-line feedback and smart chat. Get a 7-day free trial. Free for OSS projects. 

CodeRabbit sponsor   

📄 [Parsing Protobuf Definitions with Tree-sitter](https://relistan.com/parsing-protobuf-files-with-treesitter) – If you need to go a few steps beyond what `protoc` can do. Karl Matthias 

📄 [Highlights from Git 2.46](https://github.blog/open-source/git/highlights-from-git-2-46/) Taylor Blau (GitHub)  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/dpgggzpxrsnvfenkbagl.jpg)](https://github.com/ollama/ollama/releases/tag/v0.3.0)  

[Ollama 0.3: Quickly Run Large Language Models](https://github.com/ollama/ollama/releases/tag/v0.3.0) — [Ollama](https://ollama.com/) is an increasingly significant Go-powered tool in the LLM world (that uses [llama.cpp](https://github.com/ggerganov/llama.cpp) behind the scenes) that makes it easy to run large language models. Recent releases have added concurrency, Llama 3.1 support, and, now, tool calling. 

Ollama Team   

[betteralign 0.5: Make Your Programs Use Less Memory.. Maybe](https://github.com/dkorunic/betteralign) — A tool to detect structs that _could_ use less memory. It’s a fork of Go’s [fieldalignment](https://pkg.go.dev/golang.org/x/tools/go/analysis/passes/fieldalignment) tool that skips generated or test files, skips specially marked structs or those with anonymous fields, doesn’t drop comments, and similar DX enhancements. 

Dinko Korunic      

📰 Classifieds   

🚨Prevent data breaches before they happen! Secure your Go app on AWS with [LocalOps](https://localops.co/resources/aws-security-checklist?utm_source=golang-weekly&utm_medium=email&utm_campaign=july2024)’ proven AWS security checklist. [Download now](https://localops.co/resources/aws-security-checklist?utm_source=golang-weekly&utm_medium=email&utm_campaign=july2024) and protect your data instantly! 

--- 

Boost your PostgreSQL skills with [Redgate’s 101 webinar series](https://www.red-gate.com/hub/events/series/postgresql-101) of easy-to-follow, expert hosted sessions. It’s PostgreSQL, simplified.      

⚙︎ [Zeppelin](https://github.com/ZeppelinMC/Zeppelin) – A Go-powered Minecraft 1.21 server. _“Why?”_ asks the README. _“Why not,”_ comes the reply. Various Contributors 

⚙︎ [Reed-Solomon](https://github.com/klauspost/reedsolomon) – Fast Reed-Solomon erasure coding. Klaus Post 

⚙︎ [Circumflex](https://github.com/bensadeh/circumflex) – A terminal UI for Hacker News. Ben Sadeh   

- [FerretDB 1.23](https://github.com/FerretDB/FerretDB/releases/tag/v1.23.0) – It's like MongoDB, but on top of Postgres or SQLite.
- [go-yaml 1.12.0](https://github.com/goccy/go-yaml) – YAML processing for Go with more features.
- [Baur 5.0](https://github.com/simplesurance/baur) – Go-powered incremental task runner for monorepos.
- [eBPF 0.16](https://github.com/cilium/ebpf/releases/tag/v0.16.0) – Pure-Go library to work with eBPF programs.
- [Goa 3.18](https://github.com/goadesign/goa) – DSL for building microservices.  

🎁 And one for fun.. 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/wpyoc54hyxm3wtu3ir9b.jpg)](https://github.com/jmigpin/editor)   

[Editor: A Source Code Editor in Pure Go](https://github.com/jmigpin/editor) — Curiously billing itself as a _“simple but advanced source code editor”_, it works on Linux, Windows and macOS (under X server) and certainly has that old school Unix vibe going on. Clearly a serious labor of love after some seven years of development. 

Jorge Miguel Pinto         

Curated by Peter Cooper and [Glenn Goodrich](https://twitter.com/ruprict). 

[Change your email](https://golangweekly.com/edit_subscription/*|UID|*)
[Stop getting this newsletter](https://golangweekly.com/leave/*|UID|*) 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom
