Discussing Fuzzing in Go — A deep dive on the art of fuzzing (a type of testing for finding bugs by providing systems with random/'fuzzy' data) and a close look at the official fuzzing proposal for Go. A 58 minute discussion between Katie Hockman, Roberto Clapis, Filippo Valsorda and Mat Ryer.
Do Go Modules Have a 'v2+ Problem'? — There’s a naming requirement that modules of version 2 or greater must end in the major version number, e.g. /v2. According to the author, this is causing problems and isn’t well-known (though the official Go blog did cover it here), so we’re doing our bit to help shine a spotlight on it
Log Management for Modern Engineering Teams — Extract what you need with saved searches, alerts, dashboards, and visualizations and easily share valuable data with your team.
gofeed 1.1: A Parser for RSS, Atom, and JSON Feeds — It’s been four years since we last mentioned this project, but as of this week’s 1.1 release, it supports JSON feeds in addition to RSS and Atom.
Caddy and CertMagic Under New Ownership — Caddy is well known as a Go powered ‘automatic HTTPS’ Web server – many of you probably use it. The project has been acquired by Ardan Labs and Apilayer and this enables Matt to continue to work on the project full-time.
The Within Go Repo Layout — Approaches to structuring Go projects within repos have always made for popular reading here and this covers one common approach.
The Official Go Modules Documentation — I’ve seen some suggestions on social media that people aren’t aware of this official documentation page on Go’s GitHub wiki that covers modules in full. If modules cause you any confusion, this is the place to, well, ‘go’.
How I Packaged a Go Program for Windows and Linux — Sure, cross-compilation is great, but actually packaging for multiple platforms is a different beast. Here’s how one developer tamed that beast.
Optimizing a Code Intelligence Indexer — Sourcegraph allows developers to navigate and search code bases. Indexing those code bases, especially when they are large, is an expensive operation. Here’s how they massively reduced the performance cost for Go repositories.
A Gentle Introduction to Web Services with Go — Written from a ‘coming from Ruby’ perspective.
Code & Tools
Kiwi 1.0: A Minimalistic In-Memory Key/Value Store — “You can think of Kiwi as thread safe global variables.”
Gold: An Experimental Go Local Docs Server/Generator — A local docs server, docs generator, and Go code reader. It tries to extract as much information as possible from Go code to help gophers use and study packages.
fastrand64-go: Pool Backed Library for Random uint64 Generation — Boasts performance and concurrency.
go-diff: A Unified Diff Parser and Printer for Go — Doesn’t compute diffs itself but turns diff output into a data structure.