#376 — August 27, 2021
Go Weekly
Go 1.17 Released — Unfortunately, my brief vacation was.. poorly timed, given that a big Go release dropped just as it begun! If it has flown under your radar till now, though, here it is. Here are the full 1.17 release notes, but improvements and changes include:
- Compiler improvements yielding a ~5% performance gain. (Or a lot more, if you're lucky!)
- 64 bit ARM support on Windows.
- Pruned module graphs in Go 1.17 modules.
-
unsafe.Addandunsafe.Slice
The Go Team
Tidying Up the Go Web Experience with go.dev — Back in 2019 the Go team unveiled go.dev which was intended to be a new central place for Go related information, although golang.org has lived on till now. The plan, however, is to move everything over to the new domain. This has been mildly controversial, however, as many people prefer the classical homepage.
Russ Cox
An Operations-Free Document Database with ACID Transactions — Fauna combines the schema flexibility that’s provided by document databases with ACID compliant transactions. Quickly integrate Fauna into your applications with our Data API and leave scaling, sharding and all other operations to Fauna.
Fauna sponsor
QUICK BITS:
-
Go 1.17 fares very nicely against C# on the good old Computer Language Benchmarks Game.
-
Gitea 1.15.0, the latest version of a popular Go-based git forge system, has been released.
-
Want to use Redis as a durable database? Amazon has unveiled MemoryDB for Redis, a Redis compatible managed service aimed at primary database use.
-
Matt Holt, of the Caddy project, went on the Go Time podcast to discuss Caddy, its history, and his work on building Caddy v2.
Error Stack Traces in Go with x/xerror — "Go’s last standing major weakness is error handling." Not sure everyone would agree with that, but the author does go on to show how the x/xerror package gives better context to errors than the core package.
Brandur Leach
Jobs
100% Remote: Deutschsprachiger Golang Developer (m/w/d) Gesucht — Adtech basierend auf Golang, MySQL, Clickhouse, Redis, ein Umzug von Baremetal
in die Cloud: wir haben viel vor. Bist du dabei?
Fireball Labs GmbH
Golang Developer at X-Team (Remote) — Join the most energizing community for developers and work on long-term projects for Riot Games, FOX, Sony, Coinbase, and more.
X-Team
Find Tech Jobs with Hired — Create a profile on Hired to connect with hiring managers at growing startups and Fortune 500 companies. It's free for job-seekers.
Hired
The Underutilized Usefulness of sync.Once — A fantastic example of why you might use this to tidy up code where an expensive single operation might be cached for future runs.
Jason Chu
Using Go Generics — Scott applies generics (in the 1.18 tip) to a real-world problem to find out first-hand the benefits, disadvantages, along with what he did and didn’t like about them.
Scott White
Building Production Ready REST APIs in Go
Elliot @ TutorialEdge.net sponsor
Build Scalable Applications with AWS Lambda and Go — A straightforward overview of how and why to consider the serverless approach for Go apps.
Ariel Orozco
Brooks, Wirth and Go — A great read on two giants in the software industry, their maxims and beliefs, how far we’ve strayed from them, ending with a nice word about the language that is "stuck in the 70s."
Fredrik Holmqvist
🛠 Code & Tools
Gateway: A Drop-In Replacement for net/http for AWS Lambda and API Gateway — Replace ListenAndServe with gateway.ListenAndServe and this makes it easier to get existing net/http facing code running with API Gateway and AWS Lambda.
Apex
Acmez 1.0: Premier ACME Client Library for Go — This client is meant to be built into servers (not a CLI) and is inspired by the particular requirements of Caddy.
Matt Holt
sqlc 1.9: Generate Type Safe Go(lang) from SQL — You write SQL queries, run sqlc to generate code and interfaces for those queries, then write Go code that calls the aforementioned code. v1.9.0 adds support for views, pgx/v4, and subqueries in SELECTs.
Kyle Conroy
ReGit: A Tiny Git-Compatible Git Implementation in Go — Mostly implemented as an experiment for learning purposes.
WithGJR
QUICK RELEASES:
GLAuth 2.0 – LDAP authentication server.
GitHub CLI 2.0 – Official GitHub CLI client.
rqlite 6.2.0 – Distributed database built on SQLite.
Spotify 2.0 – Go wrapper for Spotify's Web API.
slides 0.5.0 – Terminal based slidedeck tool.
Go Micro 3.6.0 – Distributed systems framework.