#345 — January 15, 2021

Unsubscribe  |  Read on the Web

Go Weekly

A Proposal for Adding Generics to Go — An official announcement of the promotion of the Generics Design Draft to an actual language change proposal, which is Go’s process for changing the language. If it is accepted, Go 1.18 is the current target version.

Ian Lance Taylor

GTA: A Way to Detect Packages Deviating from Upstream — Sorry, it’s not GTA 6, but a tool from DigitalOcean to do transitive analysis to find packages whose dependencies have changed. This post digs into why they needed to build it and how it’s helped them with their work.

Billie Cleek (DigitalOcean)

Video for Your Go App That Streams Beautifully, Everywhere — Whether you have thousands of streams or millions of viewers, automatically deliver the best viewer experience with Mux's live streaming API. Sign up and get $20 credit today.

Mux sponsor

GoFakeIt 6.0.0: A Random Fake Data Generator — Go’s answer to Ruby’s exhaustive Faker library. GoFakeIt has over 160 functions for generating things like names, emails, locations, colors, user agents, breakfast items (oh yes!), and more.

Brian Voelker

Bleve 2.0: Full-Text Search and Indexing for Go — Index any go data structure (including JSON) and query in multiple ways. You can test it out live on Bleve’s own site. v2.0.0 isn’t a huge release but has some breaking changes.


GoLand: Running go fmt on Save, Yes or No? — JetBrains is considering adding a feature to their GoLand IDE that runs go fmt on every save. There are many considerations (enumerated here) and they’d love your feedback before they start work on the feature.


📘 Tutorials and Stories

Making SQLite Faster in Go — I’m a huge fan of SQLite - it fits into so many use cases and keeps things simple yet fast. However, you can make it even faster with a connection pool and prepared statements.

Sandro Turriate

Why Are My Go Executable Files So Large? — Follow along with Raphael "kena" Poss as he investigates what was making his Go executable programs larger than expected.

Cockroach Labs sponsor

Discovering and Exploring mmap using Gommap is a system call for mapping files into memory which can provide a neat abstraction for working with both. Here’s how to use it in Go along with when you shouldn’t.

Bruno Calza

Building DigitalOcean's API Gateway — The full story of how DigitalOcean built its own API gateway in Go.

Maurício Linhares

De-obfuscating Go Functions — As Go has been used for nefarious purposes, the need to de-obfuscate Go in order to catch bad folks is growing and Jason has an idea for how to begin this process.

Jason Reaves

Dissecting OpenTelemetry Go Tracing — A walk through the OpenTelemetry source code where you’ll learn how to configure a provider, start a trace, and export data.

Damien Mathieu

Going Places: How I Used Go for Every Part of an IoT System — Fulfilling Java’s multi-decade-old promise with Go.

Stanley Nguyen

A Go Slice Tricks Cheat Sheet — A more visual alternative to the ‘slice tricks’ shared on the Go wiki.

Shin'ya Ueoka

🛠 Code & Tools

Resty 2.4: Simple HTTP and REST Client Library for Go — Simple in terms of getting around its API, but in terms of features it’s pretty packed. 2.4.0 adds a new hook that’s called when a request returns an error.

Jeevanandam M.

TestFixtures: Ruby on Rails-Like Test Fixtures for Go — A mature library that takes the opinion that writing tests against a real database is the best approach and provides a way to define predictable fixtures to make this easier.

Andrey Nering

Accelerate Release Cycles and Deploy Every 6 Hours, Not Every 6 Weeks

LaunchDarkly sponsor

gocache: A Complete Library With Multiple Ways of Managing Your Caches — Not only does gocache support multiple backends, it also allows you to chain them, preload them, and includes Prometheus metrics.

Vincent Composieux

Counterfeiter: A Tool for Generating Self-Contained, Type-Safe Test Doubles

Max Brunsfeld

Act: Run Your GitHub Actions Locally

go-oci8: A Oracle Database Driver for Go using `database/sql`

💻 Jobs

Senior Software Engineer (Go) - 100% Remote, UK/EU Only — Solving complex technical challenges using the latest, cloud-native technologies to help Banks and FinTechs move money faster.


Find Your Next Job Through Hired — Create a profile on Hired to connect with hiring managers at growing startups and Fortune 500 companies. It's free for job-seekers.