#341 — December 4, 2020

Unsubscribe  |  Read on the Web

A really quiet week for 'big' Go news – perhaps everyone is busy watching AWS re:Invent? 😄 Nonetheless, some good resources, tutorials, and projects made it into this issue, and we have a round up of the best of 2020 coming in just two weeks before we depart for the holiday season. Enjoy!
Peter Cooper, your editor

Go Weekly

Gitea 1.13.0 Released: The Go Powered, Self Hosted Git Service — If you want your own GitHub-esque Web-based git interface and GitLab is just too heavy for you, Gitea is for you. If you have the time, it’s a good project to volunteer for too, especially given the large outstanding number of issues and PRs. GitHub repo. If you like alternatives, consider Gogs and Smithy.

Gitea Project

A Go / Rust Rosetta Stone — Over two hundred common programming tasks done, side-by-side, in both Go and Rust. Works as a cheat sheet, an interesting form of comparison, and even a learning device if you’re picking up Rust. It's flexible, too, how about the same with Python?

Programming Idioms

Ship Your Updates 2x Faster — Get build times under 10 minutes, deploy more often, and stay ahead of the competition.

Semaphore sponsor

Awesome Go: Over 2000 Go Links, Library and Tools — We link this epic resource of Go links, libraries, projects every several months and it’s still getting frequent updates (unlike many ‘awesome’ lists nowadays). As well as being a useful resource, if you have a Go project of your own, you can add it to the list and become a part of Go history :-)

Awesome Go

GoLand 2020.3 Released — A popular, though commercial, Go IDE gets its latest update with support for table tests, an ability to ‘dump goroutines’ (so you can find specific goroutines during debugging), improved Testify support, intelligent editing support for the time package, and you can now easily see variable shadowing when it occurs.


📘 Tutorials and Stories

Inner Workings of Allocating Slices with Go — A summary and study of the performance impact of append, especially when the new addition exceeds the capacity of the slice. Benchmarks included.


Working with SQLite using Go and Python — A practical look at the basics of working with the world’s most popular database.

Miki Tebeka

<-time.After() Not Garbage Collected Before Expiry — Unlikely to affect you unless you have a lot of outstanding timers, but there are ways to mitigate the problem.


Nerd Talk with Lew Cirne at AWS re:Invent Dec. 9 at 1pm PT — Watch our CEO Lew Cirne build a custom New Relic One application from scratch in under 9 minutes. Set your alarm now.

New Relic sponsor

Multi-Platform Docker Images with GoReleaser and GitHub ActionsGoReleaser is a popular tool for building and releasing Go binaries and it now has support for Docker manifests.

Carlos Alexandro Becker

Automated String De-gobfuscation — We linked to a story about Blackrota last week, which is an obfuscated backdoor in Go. Here, Jamie de-obfuscates it. This obfuscated our brains a bit.

Jamie Haskins

Building Dependable Realtime Apps with Go and WebSockets: Client-Side Engineering Considerations — Learn about the many challenges of implementing a dependable client-side WebSocket solution for Go.

Alex Diaconu (Ably)

💻 Jobs

Golang Developer at X-Team (Remote) — Join the most energizing community for developers and work on projects for Riot Games, FOX, Sony, Coinbase, and more.


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


🛠 Code & Tools

Rod: Chrome DevTools Protocol Driver for Web Automation and Scraping — Need to remotely control a browser? This is for you. It’s also interesting to see how they compared Rod against other common solutions, like Chromedp and Puppeteer.

Yad Smood

Mortar: A Framework for Building gRPC (and REST) Web Services — You get dependency injection, logging, tracing, metrics and more ‘out of the box’ with default settings to get up and running quickly. See if the demo app repo clicks with you.

Tal Gendler

dicom: High Performance DICOM Medical Image Parser — If you’ve ever been (un?)lucky enough to have medical images taken (from an MRI, say) and been provided with them in DICOM format, this Go library brings the format within your grasp.

Suyash Kumar

Reach Your Go App Users Anywhere with Video That Streams Beautifully, Everywhere

Mux sponsor

Baker: Configurable Pipelines for Processing Structured Data — For when you want to read some data from S3 or local disk, make some changes, then push that data elsewhere in a fast, composable way. GitHub repo.

NextRoll, Inc. and Contributors

GoAdmin: Build Data Visualization and Admin Panels in Go — Somehow this Go-powered backend admin/data panel builder skipped our radar till now but the end result is good looking. GitHub repo.


askgit: Query git Repositories with SQL — A command line tool for running SQL queries against git repositories. For example: SELECT count(*) FROM commits WHERE author_email = 'user@email.com' or how about for identifying code churn?


treemux: Fast and Flexible HTTP Router — Claims to be “as fast as httprouter, but with relaxed routing rules.”

Vladimir Mihailenco

sqs_clipboard: Use AWS SQS as a Clipboard to Copy and Paste Across Different Systems — This is a cool idea and it does the little things like encrypting the data in transit and at rest.

John Taylor

Elsewhere: In this week's StatusCode Weekly, we covered the best announcements from AWS re:Invent, the 2020 'Advent of Code', a new release of Homebrew and a lot more. If you want a broader range of developer news in our usual style, check it out.