#561 — July 9, 2025
Go Weekly
What's //go:nosplit For? — Go has many comment-based directives for tweaking inlining, stack checks, write barriers, and more. Many aren’t well documented, but can have striking effects, such as nosplit which can offer a performance boost in certain scenarios, but may also lead to faults or a locked runtime. This is, nonetheless, a fantastic explainer.
Miguel Young
Generic Interfaces — Axel presents the idea that as interfaces are types themselves, they too can have type parameters. He shows how this lets you write one core implementation of a binary search tree and support built-in, callback-based, or method-based comparisons, before moving on to deeper concepts. There's a lot to get your teeth into here.
Axel Wagner
Build Containers from Scratch — Start with raw Linux tools like chroot, namespaces, and cgroups to truly understand how containers work. Then build your own with Docker and deploy them using Kubernetes.
Frontend Masters sponsor
IN BRIEF:
-
⭐ Go 1.25 Release Candidate 2 has been released.
-
Socket's Sarah Gooding fleshes out the recent story that there's an official Go SDK for MCP (Model Context Protocol) under development.
-
From Go 1.25 onward, Microsoft's build of Go will have telemetry enabled by default.
-
🤖 Imagine a filesystem that's really just an LLM making stuff up: Andrew Healey's implemented this spine-chilling idea in Go as a mountable FUSE filesystem.
-
GitLab has caught a supply chain attack targeting Go developers through a fake MongoDB driver module.
Serving 200 Million Requests Per Day with cgi-bin — CGI was commonly used in the earlier days of the Web to have HTTP requests launch backend processes and return the results. Over time we moved onto persistently-running apps, but could the speed of Go and launching processes in 2025 make cgi-bin viable again? Yes! (But you might not want to..)
Jake Gold
▶️ How I Recreated Shazam's Algorithm from Scratch – A fun look at implementing a music detection algorithm from scratch. Go does the heavy lifting and there’s source. Chigozirim
📄 An Optimization and Debugging Story with Go and DTrace Philippe Gaultier
📄 Developing a Terminal UI in Go with Bubble Tea – Good high level advice. Alex Pliutau
📄 Am I Online? – An interesting way to see if your app is truly online by checking a special Google URL. Anton Zhiyanov
🛠 Code & Tools
doWM: A Tiling and Floating Window Manager for X11 — A fast, lightweight window manager written entirely in Go. You’ll need to be proficient with Linux, however, but this could be a great gateway into tweaking something that feels right for you. GitHub repo.
BobdaProgrammer
🕹️ GORE: A Pure Go Minimal 'Doom' Implementation — A few months ago we linked to doomgeneric, an initial effort to transpile 1993’s Doom to Go. This cleans it up a lot, makes it more "Go-ish" and platform agnostic, and.. it can even render the game on the terminal!
Andre Renaud
Effortless Go Contract Testing: Inferred Automatically From Traffic — Stop hand-crafting brittle contracts. See how they can be inferred from real traffic and updated as your Go APIs evolve.
Signadot sponsor
go-ytdlp: yt-dlp CLI Bindings for Go — yt-dlp is a popular audio/video downloading tool – not just for YouTube but hundreds of platforms.
Liam Stanley
Minimock: A Tool to Generate Mocks from Interface Declarations — Generates statically typed mocks and helpers, is fully integrated with the testing package, and supports generics.
Juno Inc.
Lox: A Lexer and Parser Generator for Go — Inspired by ANTLR at the surface level (combined parser and lexer, action code separated from grammar) but more similar to yacc internally (LR(1), dependency-free parser).
dcaiafa
-
🤖 Mods 1.8 – Charm's pipelineable AI CLI client, now with MCP support.
-
Hugo 0.148 – The popular Go-powered static site generator. Beware of some breaking changes.
-
MCP-Go 0.33 – An implementation of the Model Context Protocol (MCP).
-
OpenFGA 1.9 – Google Zanzibar-inspired authorization engine.
-
GoReleaser 2.11 – Build/release binaries for multiple platforms.
-
pgroll 0.14 – Zero-downtime, reversible, schema migrations.
-
sh 3.12 – Shell script parser, formatter, and interpreter.
-
fzf 0.64 – Popular command-line fuzzy finder.