#​469 — July 18, 2023

Unsub  |  Web Version

Together with  Ardan Labs

Go Weekly

A Rationale for Using Coroutines in Go — Many of the initial reactions to this suggestion by Russ Cox to introduce coroutines to Go were negative, with folks instead preferring Go’s existing channels based approach for the problems coroutines can solve. Nonetheless, there are some interesting and specific use cases for coroutines in Go, such as when iterating over generic collections, and Russ tries to convince us of their merit here. Luckily, it's all possible "without language changes".

Russ Cox

govulncheck 1.0 Released — We featured Go’s new vulnerability management tool last year when Julie Qiu gave an overview of the project. Now she’s back with a release ready to put into production. It statically analyzes your code and uses the Go Vulnerability Database to highlight relevant, known vulnerabilities.

Julie Qiu (The Go Security Team)

Go! Experts at Your Service — Do you need help filling skill gaps, speeding up development & creating high performing software with Go, Docker, K8s, Terraform and Rust? We’ll help you maximize your architecture, structure, tech-debt and human capital.

Ardan Labs Consulting sponsor

The Gorilla (Project) ReawakensGorilla is/was a suite of packages for building Go webapps (Mux remains a popular HTTP router option) but the packages sadly went into an “archive only” mode last year. A team of developers is in the early stages of resurrecting the project – watch this space.

Gorilla Web Toolkit Maintainers

Analyzing Go Build Times — Go’s compiler is pretty quick, but John was curious was what factors affect compile times. In this article he used the 350,000 lines of the Istio project to put Go through its paces, try out some ideas, and ultimately came up with some tips.

John Howard


Monitor, Test and Debug your APIs with APIToolkit — A toolbox for building and maintaining APIs better than ever. Test and validate all API requests, and spot bugs faster.

APIToolkit sponsor

Event-Driven Architecture: What You Need to Know — The first in a series of posts on event-driven architecture and building a system using this paradigm in Go. This first post covers the what and why?

Matt Boyle

5 Ways to Write a Go Database Model — Paul covers the vanilla approach, using struct mapping, SQL generators (like squirrel), a code generator (sqlc), and ORMs, pointing out pros and cons for each approach.

Paul Boyd

🛠 Code & Tools

Pop: Charm's Latest Project Tackles Email — The Charm folks have a well earned reputation for producing useful Go powered tools and libraries and Pop, essentially a modern way to send emails from the terminal, looks to be no exception.


ntp 1.2: A Simple NTP Client Package for Go — For querying your Network Time Protocol server of choice for the current time.

Brett Vickers

So You’re Still Using Infrastructure as Code? — With Encore's Infrastructure SDK: No manual work to run locally, Preview Environments for each PR, and zero tedious IaC.

Encore sponsor

Sarama 1.40: A Go Library for Apache Kafka — Originally created by Shopify, it appears IBM has now taken over the reins as Shopify wants to bind against librdkafka in future instead.


Go Rate Limiter 0.3: A Blocking 'Leaky-Bucket' Rate Limit Implementation — The ‘bucket’ gets refilled based upon the time elapsed between requests. v0.3 sees a return to development after a pause for a couple of years and offers a “more efficient internal implementation” without any external changes.



Find a Job Through Hired — Hired makes job hunting easy-instead of chasing recruiters, companies approach you with salary details up front. Create a free profile now.

📰 The Go-powered RSS reader

goread: A Terminal-Based RSS / Feed Reader — If you're tired of social news sites like Twitter or Reddit chopping and changing about, following a variety of RSS or Atom feeds remains a great option, and there's a Go-flavored terminal client built around Bubble Tea you can try.

P.S. Go Weekly has its own RSS feed if you want to test it out.

Adam Piaseczny