#​574 — October 15, 2025

Read the Web Version

Together with  Buf

Go Weekly

15 Go Subtleties You May Not Already Know — A well written roundup of lesser-known Go features or idiosyncrasies that’s worth a skim even if only a few jump out at you. Or if you already know about them all, you can feel a warm glow for the rest of the day 😁 Topics include time.After, nil interfaces, and json’s - tag.

Harrison Cramer

Get O’Reilly Book Data Engineering Design Patterns, Courtesy of Buf — Discover proven design patterns for building reliable, scalable data systems. This free O’Reilly ebook, courtesy of Buf, focuses on several important aspects of data engineering, including data ingestion, data quality, idempotency, and more.

Buf sponsor

How Slow is Channel-Based Iteration? — The makers of the Go-powered Dolt database run an example involving iteration using two channel-based approaches, as well as iter.Pull. Conclusion? “The haters are right: using channels for iteration is slow.”

Zach Musgrave

IN BRIEF:

  • Go 1.25.3 and 1.24.9 have been released. They're minor point releases which address a problem caused by an earlier security patch being overly restrictive when parsing X.509 certificates.

  • The creator of the popular Lodash-like Lo library has started work on Ro, an attempt to bring the ReactiveX reactive programming model to Go.

  • 🎧 It's been a long time since we linked to it, but if you'd also like to listen to Go news, the Cup o'Go podcast is still going out every week.

Gist of Go: Atomics — In Go, ‘atomics’ are low-level synchronization primitives from sync/atomic for performing lock-free, thread-safe operations on shared memory values. Sometimes, race-free concurrency without a mutex really is possible.

Anton Zhiyanov

A Modern Approach to Preventing CSRF/CORF in Go — Go 1.25 introduced a new http.CrossOriginProtection middleware that can help protect against cross-site and cross-origin forgery attacks using browser security headers instead of tokens.

Alex Edwards

💡 Simon Willison reflects further on the technique covered above.

📄 CPU Cache-Friendly Data Structures in Go: 10x Speed with Same Algorithm – When you need to squeeze out every bit of performance, keeping CPU caching in mind can make a big difference. Serge Skoredin

📄 How to Get Started with GitHub Copilot CLI Andrea Griffiths (GitHub)

📄 Organizing Go Tests Redowan Delowar

🛠 Code & Tools

Excelize 2.10: A Pure Go Way to Work with Excel Spreadsheets — A way to read and write XLAM / XLSM / XLSX / XLTM and XLTX files from Go. A long time library that keeps going from strength to strength. GitHub repo.

QI-ANXIN GROUP

Sift: A Lightweight Terminal UI for Displaying Go Test Results — Pipe your verbose Go testing JSON output into this tool for navigable and collapsible test output so you can focus only on what matters to your situation.

Tim Tattersall

What Shopify, Tailwind, and Stripe Use for Pair Programming — Tuple is the most effective way to unblock PRs, make technical decisions, and polish or review code.

Tuple sponsor

Oto 3.4: Low-Level Cross-Platform Sound Library — Used by the Ebitengine 2D game engine to play audio on a remarkable number of platforms from Windows, macOS and Linux to more intriguing options like the Nintendo Switch and iOS.

Ebitengine

Goiaba: An Experimental Go Parser and Compiler in Rust — An experimental/work-in-progress Go parser and WebAssembly compiler written in Rust, being written largely as a learning exercise.

Raphael Amorim

  • Huh 0.8 (above) – Charm's library for building forms and prompts on the terminal. v0.8 lets you create and maintain your own Field types.

  • 🕒 gocron 2.17 – Job scheduling package for running Go functions at specified intervals.

  • AWS Lambda for Go 1.50 – Samples & tools for building on AWS Lambda.

  • Go Micro 5.10 – Popular Go microservices framework.

  • Buf 1.58 – CLI tool for working with Protocol Buffers.

  • go-github 76.0 – GitHub v3 API client library.

  • Redigo 1.9.3 – Redis/Valkey client library.