#511 — June 18, 2024
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.
martialdouble-t
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.)
Jérémy LAMBERT
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.