---
title: "Is channel-based iteration slow?"
publication: "Go Weekly"
issue: 574
published_at: "2025-10-15"
canonical_url: "https://golangweekly.com/issues/574"
---

Plus fifteen Go subtleties you might not be aware of. |        

#​574 — October 15, 2025 

[Read the Web Version](https://golangweekly.com/issues/574)  

Together with [![Buf\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_1280,h_546/e_make_transparent/co_white,e_outline:27/dwec8s0a49wnhclxzuo8.png)](https://bit.ly/48dyfhl)   

Go Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/jc8vuwquunk7gtcd36ms.jpg)](https://harrisoncramer.me/15-go-sublteties-you-may-not-already-know/)  

[15 Go Subtleties You May Not Already Know](https://harrisoncramer.me/15-go-sublteties-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   [![\](https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/671e135f.png)](https://bit.ly/48dyfhl) 

[Get O’Reilly Book Data Engineering Design Patterns, Courtesy of Buf](https://bit.ly/48dyfhl) — 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?](https://www.dolthub.com/blog/2025-10-10-how-slow-is-channel-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](https://groups.google.com/g/golang-announce/c/YEyj6FUNbik/m/_SDlIvxuCAAJ). 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](https://github.com/samber/lo) library has started work on [Ro](https://github.com/samber/ro), an attempt to bring the [ReactiveX](https://reactivex.io/) 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](https://cupogo.dev/) is still going out every week.   

[Gist of Go: Atomics](https://antonz.org/go-concurrency/atomics/) — In Go, ‘atomics’ are low-level synchronization primitives from [`sync/atomic`](https://pkg.go.dev/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](https://www.alexedwards.net/blog/preventing-csrf-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](https://simonwillison.net/2025/Oct/15/csrf-in-go/) on the technique covered above.  

📄 [CPU Cache-Friendly Data Structures in Go: 10x Speed with Same Algorithm](https://skoredin.pro/blog/golang/cpu-cache-friendly-go) – 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_](https://github.blog/ai-and-ml/github-copilot/github-copilot-cli-how-to-get-started/) Andrea Griffiths (GitHub) 

📄 [Organizing Go Tests](https://rednafi.com/go/organizing-tests/) Redowan Delowar  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/ogxhaannyaeggfkb34vr.jpg)](https://xuri.me/excelize/)  

[Excelize 2.10: A Pure Go Way to Work with Excel Spreadsheets](https://xuri.me/excelize/) — 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.](https://github.com/qax-os/excelize) 

QI-ANXIN GROUP   

[Sift: A Lightweight Terminal UI for Displaying Go Test Results](https://github.com/timtatt/sift?tab=readme-ov-file) — 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](https://tuple.app?utm_source=cooperpress&utm_medium=newsletter&utm_campaign=go_newsletter_sponsored_20251015) — 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](https://github.com/ebitengine/oto) — Used by the [Ebitengine](https://ebitengine.org/) 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](https://github.com/raphamorim/goiaba) — An experimental/work-in-progress Go parser and WebAssembly compiler written in Rust, being written largely as a learning exercise. 

Raphael Amorim   

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/vunainh8lc0xfbsqkgxk.jpg)](https://github.com/charmbracelet/huh)  

- [Huh 0.8](https://github.com/charmbracelet/huh) _(above)_ – Charm's library for building forms and prompts on the terminal. [v0.8](https://github.com/charmbracelet/huh/releases/tag/v0.8.0) lets you create and maintain your own `Field` types.
- 🕒 [gocron 2.17](https://github.com/go-co-op/gocron) – Job scheduling package for running Go functions at specified intervals.
- [AWS Lambda for Go 1.50](https://github.com/aws/aws-lambda-go) – Samples & tools for building on AWS Lambda.
- [Go Micro 5.10](https://github.com/micro/go-micro) – Popular Go microservices framework.
- [Buf 1.58](https://github.com/bufbuild/buf/releases/tag/v1.58.0) – CLI tool for working with Protocol Buffers.
- [go-github 76.0](https://github.com/google/go-github/releases/tag/v76.0.0) – GitHub v3 API client library.
- [Redigo 1.9.3](https://github.com/gomodule/redigo) – Redis/Valkey client library.         

Curated by Peter Cooper and [Glenn Goodrich](https://twitter.com/ruprict).
Go is a [trademark of Google](https://go.dev/brand).
The [Go gopher](https://go.dev/blog/gopher), whenever used, is an original creation by Renée French. 

[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
