---
title: "We're back, and Go 1.17 came out"
publication: "Go Weekly"
issue: 376
published_at: "2021-08-27"
canonical_url: "https://golangweekly.com/issues/376"
---

Plus the usual releases, Go vs C#, and help taking Go serverless. |        

#​376 — August 27, 2021 

[Unsubscribe](https://golangweekly.com/leave/*|UID|*)|[Read on the Web](https://golangweekly.com/issues/376)   

Go Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/c3oqvq0jlmqyttjgei3i.jpg)](https://go.dev/blog/go1.17)  

[Go 1.17 Released](https://go.dev/blog/go1.17) — 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](https://golang.org/doc/go1.17), but improvements and changes include: 

- Compiler improvements yielding a [~5% performance gain.](https://golang.org/doc/go1.17#compiler) (Or [a lot more](https://twitter.com/__Achille__/status/1431014148800802819), if you're lucky!)
- 64 bit ARM support on Windows.
- [Pruned module graphs](https://golang.org/doc/go1.17#go-command) in Go 1.17 modules.
- `unsafe.Add` and `unsafe.Slice` 

The Go Team   

[Tidying Up the Go Web Experience with `go.dev`](https://go.dev/blog/tidy-web) — Back in 2019 the Go team unveiled [go.dev](https://go.dev/) which was intended to be a new central place for Go related information, although [golang.org](https://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   [![\](https://copm.s3.amazonaws.com/0b2bbbaf.jpg)](https://docs.fauna.com/fauna/current/drivers/go/?utm_source=GoNewsletter&utm_medium=Newsletter&utm_campaign=CooperPress_Newsletters_2021) 

[An Operations-Free Document Database with ACID Transactions](https://docs.fauna.com/fauna/current/drivers/go/?utm_source=GoNewsletter&utm_medium=Newsletter&utm_campaign=CooperPress_Newsletters_2021) — 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](https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/go-csharpcore.html) against C# on the good old _Computer Language Benchmarks Game._
- [Gitea 1.15.0](https://blog.gitea.io/2021/08/gitea-1.15.0-is-released/), 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](https://aws.amazon.com/blogs/aws/introducing-amazon-memorydb-for-redis-a-redis-compatible-durable-in-memory-database-service/), 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,](https://changelog.com/gotime/193) its history, and his work on building Caddy v2.    

[Error Stack Traces in Go with `x/xerror`](https://brandur.org/fragments/go-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](https://www.fireballlabs.com/jobs/golang-developer) — 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)](https://x-team.com/remote-go-developer-jobs/?utm_source=cooperpress&utm_medium=email-ad&utm_campaign=cooperpress-go&utm_content=go) — 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](https://hired.com/join/?utm_source=newsletter&utm_medium=sponsor&utm_campaign=%28b2c%29%28l-all%29%28r-all%29%28cooper-golangweekly%29&utm_content=find-your-next-job) — 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`](https://blog.chuie.io/posts/synconce/) — 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](https://medium.com/@scott_white/using-go-generics-57fba3edecdd) — 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](https://tutorialedge.net/courses/go-rest-api-course/) 

Elliot @ TutorialEdge.net sponsor   

[Build Scalable Applications with AWS Lambda and Go](https://arielorozco.com/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](https://www.fredrikholmqvist.com/posts/brooks-wirth-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](https://github.com/apex/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](https://github.com/mholt/acmez) — This client is meant to be built into servers (not a CLI) and is inspired by the particular requirements of[Caddy](https://caddyserver.com/). 

Matt Holt   

[sqlc 1.9: Generate Type Safe Go(lang) from SQL](https://github.com/kyleconroy/sqlc) — 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](https://github.com/kyleconroy/sqlc/releases/tag/v1.9.0) adds support for views, `pgx/v4`, and subqueries in `SELECT`s. 

Kyle Conroy   

[ReGit: A Tiny Git-Compatible Git Implementation in Go](https://github.com/WithGJR/regit-go) — Mostly implemented as an experiment for learning purposes. 

WithGJR   

**QUICK RELEASES:** 

[GLAuth 2.0](https://github.com/glauth/glauth) – LDAP authentication server.
 [GitHub CLI 2.0](https://github.com/cli/cli/releases/tag/v2.0.0) – Official GitHub CLI client.
 [rqlite 6.2.0](https://github.com/rqlite/rqlite/releases/tag/v6.2.0) – Distributed database built on SQLite.
 [Spotify 2.0](https://github.com/zmb3/spotify) – Go wrapper for Spotify's Web API.
 [slides 0.5.0](https://github.com/maaslalani/slides/releases/tag/v0.5.0) – Terminal based slidedeck tool.
 [Go Micro 3.6.0](https://github.com/asim/go-micro) – Distributed systems framework.         

Curated by [Glenn Goodrich](https://twitter.com/ruprict) and [Peter Cooper](https://twitter.com/peterc). 

[Change your email address](https://golangweekly.com/edit_subscription/*|UID|*) or[Stop getting this newsletter](https://golangweekly.com/leave/*|UID|*) 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom
