Golang Weekly - Russ Cox makes the case for coroutines

Plus Gorilla is back, IBM takes over Sarama, a Go powered TUI feed reader, and Go 1.21rc3. |

#​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

IN BRIEF:

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.

Charm

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.

IBM

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.

Uber

Jobs

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.
Hired

📰 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

n

Older messages

Go, meet Python. Python, meet Go.

Tuesday, July 11, 2023

Plus using fuzz testing in practice, working with eBPF from Go, and how it feels to be a solo gopher. | #​468 — July 11, 2023 Unsub | Web Version Together with Teleport logo Go Weekly Finding Bugs with

Answering all the big questions

Tuesday, July 4, 2023

Plus a big GoReleaser release, all the GopherCons, and an MIT workshop on concurrency that uses Go. | #​467 — July 4, 2023 Unsub | Web Version Together with Ardan Labs Go Weekly Frequently Asked

Go's three new builtin functions

Tuesday, June 27, 2023

Plus running Go in Jypyter Notebooks, a Go app generator, and using htmx with Go. | #​466 — June 27, 2023 Unsub | Web Version Together with Ardan Labs Go Weekly Go 1.21 Release Candidate — Despite

Random numbers in Go, version 2

Tuesday, June 20, 2023

Plus how and when to use Go pointers effectively, Mergo 1.0, and just how much Go is 'admired and desired.' | #​465 — June 20, 2023 Unsub | Web Version Together with Courier logo Go Weekly

Go toolchain changes in Go 1.21+

Tuesday, June 13, 2023

Plus talking to Matt Boyle about DDD, Ebitengine turns 10, and building traffic lights and fractals with Go. | #​464 — June 13, 2023 Unsub | Web Version ✍️ If you're intrigued about domain-driven

You Might Also Like

Simplify Kotlin Error Handling

Thursday, March 6, 2025

View in browser 🔖 Articles Goodbye try-catch, Hello runCatching! Exception handling in Kotlin just got cleaner! This article explores how runCatching can replace traditional try-catch blocks, making

JSK Daily for Mar 5, 2025

Wednesday, March 5, 2025

JSK Daily for Mar 5, 2025 View this email in your browser A community curated daily e-mail of JavaScript news Unions and intersections of object types in TypeScript In this blog post, we explore what

Daily Coding Problem: Problem #1709 [Medium]

Wednesday, March 5, 2025

Daily Coding Problem Good morning! Here's your coding interview problem for today. This problem was asked by Facebook. Given an array of integers, write a function to determine whether the array

How Swiss Tables make Go 1.24 faster

Wednesday, March 5, 2025

Plus a way to call external library functions without Cgo. | #​544 — March 5, 2025 Unsub | Web Version Together with pgAnalyze Go Weekly Faster Go Maps with Swiss Tables — One of Go's newest

Mapped | European Fertility Rates by Country 👶

Wednesday, March 5, 2025

The population replacement threshold is a fertility rate of 2.1. In 2025, all of Europe, except one small nation, is well below that level. View Online | Subscribe | Download Our App Invest in your

Trust in JS supply chain; sync vs. async code; JIT vulnerabilities; parseInt() and keycap emojis; V8

Wednesday, March 5, 2025

We have 10 links for you - the latest on JavaScript and tools Secure your JavaScript dependencies. socket.dev Sponsor Open source code makes up 90% of most codebases. Socket detects what traditional

The importance of flow state for developers

Wednesday, March 5, 2025

You are receiving this email because you subscribed to microservices.io. Considering migrating a monolith to microservices? Struggling with the microservice architecture? I can help: architecture

This beefy phone is a projector too 📽️

Wednesday, March 5, 2025

Biggest tech opps; How Firefox changed; Drone flying tips -- ZDNET ZDNET Tech Today - US March 5, 2025 GOTRAX 4 electric scooter A smartphone that's also a projector? I tested it, and it's

⚙️ Self-driving Ubers

Wednesday, March 5, 2025

Plus: A trade war, and AI ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌

Post from Syncfusion Blogs on 03/05/2025

Wednesday, March 5, 2025

New blogs from Syncfusion ® S&P 500 Returns After Rate Cuts: Visualized Using a Flutter Heatmap By Kompelli Sravan Kumar Kompelli Lakshman Learn how to visualize the S&P 500 returns after