#​511 — June 18, 2024

Unsub  |  Web Version

Together with  Dragonfly

Go Weekly

Why People are 'Angry' Over Go 1.23 Iterators — ‘Angry’ feels overstated to us, but there’s been a lot of robust debate about Go’s proposed new iterator helpers (see them in action here) on social media this week (e.g. Reddit). There’s a broad mix of opinions, and the creator of the Odin language chimes in with his thoughts, opining that Go should stay unapologetically imperative.

Ginger Bill

💡 Chris Siebenmann chimes in too, acknowledging the complexity of the problem, but how Go's solution has benefits in terms of reducing potential errors.

A Quiz on Advanced Concepts for Go Developers — Someone made a quiz on Go concepts if you’d like to test your chops. Twelve quick multiple choice questions await.


Redis With Wings. Better Performance. Less Overhead — Dragonfly (24k GitHub stars) is a fully compatible drop-in Redis replacement. Dragonfly achieves 25X better performance than Redis and supports millions of QPS on a single instance. Download and deploy yourself or get a free trial of Dragonfly Cloud.

Dragonfly sponsor

Putting Go's context Into Context — A romp through various types of context, from empty to WithDeadline, because “the real beauty is on the inside”, claims the author.

Abin Simon

Common Anti-Patterns in Go Web Apps — An interesting checklist to consider to ensure you don't slip into unhelpful patterns and, instead, write loosely coupled code that keeps everyone productive and happy.

Miłosz Smółka

📄 Performance Benchmarking: gRPC + Protobuf vs. HTTP + JSON Alex Pliutau

📄 Go is a Platform – A gushing reminder of how everything that comes with Go out-of-the-box forms a comprehensive suite of evolving developer tools. Elton Minetto

📄 UUIDv7 Implemented in 20 Languages – Surprisingly short and sweet. Anton Zhiyanov

🛠 Code & Tools

Goyave v5.0: Another REST-Based Go Web Framework — One of many players in this space, but one that's undergone a significant revamp over the past year. The emphasis is on providing an opinionated, defined structure and architecture for 'enterprise' tier apps. (Official homepage.)


Dynamo 2.0: An Expressive Amazon DynamoDB Library — Integrates with the official AWS SDK but gives you a tidier abstraction. v2.0 uses aws-sdk-go-v2 under the hood and while it maintains an almost identical API, there are a handful of small changes that may require you update your code.

Greg Roseberry

Temporal for Startups — Startups: Ship fast with Temporal. Guaranteed reliability. Code in your language. Get $2,400 free credits & expert advice to accelerate success.

Temporal Technologies sponsor

Age 1.2: A Simple File Encryption Tool and Go Library — Boasts small explicit keys, no config options, and UNIX-style composability.

Filippo Valsorda

tbls: A CI-Friendly Tool for Documenting Databases — Document a database automatically in Markdown format with schemas rendered via DOT, PlantUML, Mermaid, or direct to images. By default you get documentation covering columns, indexes, relations, and other schema details (here’s a sample).

Ken’ichiro Oyama

dblab: An Interactive Client for Postgres, MySQL, and SQLite3 — A cross-platform (including Windows) TUI-style app for working with various database systems. Certainly looks rather different to typical CLI clients.

Daniel Omar Vergara Pérez

jsondiff 0.6: JSON Diffing Library Based on RFC 6902 (JSON Patch)RFC 6902 defines a JSON structure for expressing patching operations on other JSON documents.

William Poussier

  • TinyGo 0.32.0 – The Go compiler for 'small places', like microcontrollers and WebAssembly. v0.32.0 supports LLVM 18, drops Go 1.18 support, and supports more new hardware.

  • validator 10.22 – Value validations for structs and fields based on tags.

  • Cloudflare Go 2.3 – Official library for the Cloudflare API.

  • NATS.go 1.36 – Go client for the NATS messaging system.

  • dae 0.6 – High-perf transparent proxy based on eBPF.

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

  • Pond 1.9 – Minimalist goroutine worker pool.