#​547 — March 26, 2025

Unsub  |  Web Version

Together with  Stytch logo

Go Weekly

Go on the PlayStation 2 — If you like tinkering with consoles and shoe-horning Go into new (or old?) environments, this post is for you. It involves TinyGo, C, and a lot of trial and error.

Ricardo Gomes da Silva

Make Your App an OAuth Provider — Use Stytch to easily add 3rd party integrations, make your app agent ready, and enable data connectivity. Be your own OAuth 2.0/OIDC Identity Provider with Stytch Connected Apps. Check out our Go quickstart.

Stytch sponsor

How and Why PlanetScale Built a VM in Go — PlanetScale is a well known cloud based MySQL host that uses the Go-powered Vitess MySQL scaler. This article covers the tale of building a virtual machine in Go to work with the SQL ASTs produced by their SQL parser and how it’s as fast (or sometimes faster) as MySQL’s own C++ approach.

Vicent Martí (PlanetScale)

IN BRIEF:

The Right Way to Do Data Fixtures in Go — If you don’t have a strategy for data fixtures from the start, problems can show up in ways that make testing brittle. Here are some tips to get started on the right foot and prevent the need to fix your fixtures later.

Brandur Leach

🔒 Protect Against AI Bots, Fraud, and Abuse in Real Time — WorkOS Radar protects your app with advanced device fingerprinting — stop fake signups, free tier abuse, bot attacks and brute force attempts today.

WorkOS sponsor

📄 Deep vs Shallow Go Interfaces – As they say, the bigger the interface, the weaker the abstraction. Paschalis Tsilias

📄 Two Mul or Not Two Mul: How I Found a 20% Improvement in ed25519 in Go Egon Elbre

📄 How to Include Git Version Information in Go Binaries Carlana

📄 Finding a Free Port in Go Gwendolyn

🛠 Code & Tools

golangci-lint v2: A Fast Linter Runner for Go — A tool for running Go code linters (about 100 of them!), quickly, in parallel, with caching, YAML configuration, IDE integration, and more. There are some helpful migration instructions if you’re upgrading from v1.

GolangCI Contributors

Goavatar: Generate Unique, Symmetric Identicons Based on a String — Given a string (like a username, say), this generates very basic icons in a deterministic way that you could use for a little added visual recognition.

Muhammad Saim

Physix.go: A Simple Physics Engine for Go — An interesting project from a high school student (who explains the background to this project here) providing basic physics capabilities when using Ebitengine.

Rudransh Bhardwaj

gocodewalker: A Way to 'Walk' Directories of Code — If you want to walk through a nested set of directories in a code repo while respecting .gitignore, this is for you.

Ben Boyter

go-profile: A Port of Brendan Gregg's eBPF profile.py — eBPF opens up a way to do profiling in a faster, more direct way on Linux (details here) and this is an initial incomplete attempt to port a Python-powered eBPF profiler to Go.

Ben Baker

mus-go: MUS Format Serialization LibraryMUS is a binary serialization format focused on simplicity.

Yuri Zinchenko

📰 Classifieds

Secrets are Dead: Why Machine and Workload Identities are the Future of Cloud Security.


Blacksmith runs GitHub Actions 2x faster at half the cost with a one-line code change. Trusted by 250+ companies like Ashby and Clerk.

  • ☎︎ phonenumbers 1.6 – Go port of Google's libphonenumber library for parsing and validating phone numbers.

  • GoCV 0.41 – Bindings for the OpenCV computer vision library.

  • Freeze 0.2 – Generate images of code and terminal output.

  • FrankenPHP 1.5 – Modern Go-powered PHP app server.

  • Gonum 0.16 – A set of numeric libraries for Go.

  • Pond 2.3 – Minimalistic goroutine worker pool.