#​364 — May 28, 2021

Unsubscribe  |  Read on the Web

Go Weekly

Functional Programming in Go with Generics — The author runs through functional options in Go today, and how 1.18 brings improvements through generics – however.. that’s not to say you should go functional wherever possible as Jeremy Bowers opined in “Why Go Getting Generics Will Not Change Idiomatic Go” last year.

Ani Channarasappa

rf: An Experimental Refactoring Tool for Go — When a project says its “incredibly rough and likely to be buggy and change incompatibly”, you know you’re in for a fun time. This is a truly experimental command-line Go refactoring tool that lets you address pieces of code with what are called “code addresses.” It reminds me of the more general Comby tool.

Russ Cox, Matthew Dempsky, et al.

A Global Serverless Database for Your Golang Apps — Modern applications need a serverless database. Fauna is the “Data API” for modern applications. Whether you’re building new microservices or augmenting existing services applications, Fauna lets you simplify code, reduce costs and ship faster.

Fauna sponsor

go-mod-archiver: A GitHub Actions Workflow to Preserve Old Dependencies“Afraid of being unable to build historical versions of your Go program?” asked Brad Fitzpatrick. He made this GitHub Actions based tool to archive your go.mod dependency code to git tags in your project to ensure you can rebuild old versions again in future.



On Benchmarking with Go — A key to accurate benchmarking is ensuring the number of samples taken is adequate to disprove performance hypotheses.

Stone Code

Why Tracing Might Replace (Almost) All Logging

Lightstep sponsor

Top Five Lessons I Learned Working with Go for Two Years — Always interesting to read about someone’s experiences.

Sayed Alesawy

🛠 Code & Tools

gdu 5.0: A Disk Usage Analyzer with Console Interface — Written in Go, naturally. This is a neat tool. Rapidly analyze your disk space usage – it benchmarks strongly against other tools in the space.

Daniel Milde

Revive: A Fast(er), Configurable, Flexible Linter for Go — A drop-in replacement of golint that aims to provide a little more structure and configurability. It boasts being at least double the speed, too.

Minko Gechev

Free Golang Vulnerability Scanner & Fix Advice - Secure Go Projects for Free — Scan your Go code for vulnerabilities in seconds. Fix quickly with automated fix suggestions. Try Snyk for free.

Snyk sponsor

Caire 1.3: A Content-Aware Image Resizing Library — Uses seam carving to stretch out unimportant parts of an image when resizing. We first linked this a few years ago, so it’s neat to see it still getting updates and performance boosts.

Endre Simo

go-map-schema: Simple JSON Type Checking — Check the JSON payload of a request against a schema to catch bad input before any processing occurs.


color 1.12.0: A Color Text Output Package — Another long standing package that continues to see updates. You’d use this if you want to colorize your program’s output on the terminal in as simple a way as possible.

Fatih Arslan

Render 1.4.0: Easily Render JSON, XML, Binary Data, and HTML Template Responses — A package for rendering various types of output in a more structured way if you’re putting together a Go-powered HTTP service, say.

Cory Jacobsen

go-elasticsearch 7.13.0: The Official Go Client for ElasticsearchElasticsearch is a popular search engine/document database used to implement search features in apps.


go-sqldb: A Pure Go SQL Database for Learning Database Theory — This looks like a solid weekend project.


LimitIO: io.Reader and io.Writer, But With Limits
LI Zhennan


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.