Faster, Smaller, Deeper • The Applied Go Weekly Newsletter 2026-03-01

Your weekly source of Go news, tips, and projects

Faster, Smaller, Deeper
Hi ,
From the beginning of programming, two goals never changed: high performance and low memory consumption (in main memory and on disk). Oh, how cool would software development be if there were just a handful of best practices to stick with, in order to design fast, small binaries. Reality is different. A plethora of platforms and OSes, edge cases, and competing requirements cause apps to be slow and binaries to be bulky. In our constant fight against this, every tip and experience report is welcome, as well as intimate knowledge of the inner workings of compilers, runtimes, and toolchains.
Luckily, the featured articles cover all of that: a faster FFI, shrunken binaries, and a close look into the Go runtime.
Happy optimizing!
–Christoph
Featured articles
The Memory Allocator | Internals for Interns
The second post in the Go Runtime series. From asking the OS for a chunk of memory to managing it for the various needs of a Go process.
How we reduced the size of our Agent Go binaries by up to 77% | Datadog
How to shrink Go binaries by removing unnecessary dependencies and re-enabling dead code elimination (that gets blocked when using certain language features, such as reflection).
Benchmarks: Go's FFI is finally faster then GDScript (and Rust?) · quaadgras/graphics.gd · Discussion #277 · GitHub
Be aware that this is a very specialized benchmark for a graphics engine. Author: *"The CallThatReturnsVoid in the go test-bench results above has virtually no additional overhead versus GDScript, as it's eligible for batching. In practice, this means if you only call rendering functions and setters on the main thread, the cgo overhead is effectively nil."'
Plus, the "faster than Rust" part has a big question mark stapled on it. Author again: "The Rust GDextension bindings clearly have expensive safety checks, when they are disabled, gdext has the highest score."
Podcast corner
Fallthrough | Is Go Simple Anymore?
After a long time, Fallthrough has another episode on Go. Kris and Matt talk about the recently accepted generic methods proposal, Go 1.26 highlihts, and takeaways from the Go Developer Survey.
go podcast() | 073: Heroku in maintenance mode and surfacing observability
In this episode, Dominic and Morten discuss Heroku's maintenance mode, Discord's new ID verification, Mailpit, self-hosting, OpenTelemetry, and more.
go podcast() | 074: Andurel got contributors and OSS licenses
I daresay the majority of open source Go projects have a very liberal license like MIT or BSD. And the point of open source licenses is that the user gets maximum freedom for using your code. But what if you realize that your project would better run under a less liberal license, such as the LGPL? Especially if the project already has contributors. Morten faced this issue with one of his projects and talks about the challenges to overcome.
Then, Dominic and Morten go on dicsussing publishing packages to NPM, the changing landscape of front-end development, how to tell an LLM what to do, and (you guessed it) more.
Cup o' Go | Thank you for listening to episode 137. Err... 137-1 = 135? Or is it 136? No, 137. I think. Maybe.
Will Jonathan and Shay untangle their gordic episode number knot?
Quote of the Week: The Only One You've Got
Take care of your brain. It's the only one you've got, and no AI can replace it.
(via)
More articles, videos, talks
Vercel Security Checkpoint
While I'm not a fan of web scrapers, there is a small pocket of legitimate use cases for them. But still, if you have all the legal and moral arguments on your side, JavaScript can still get in the way. Here is how to scrape web pages that only exist after heavy JavaScript activity in the browser.
I Built Google Bigtable in Go: One File, Zero Dependencies | Jitesh's Blog
Look at the TOC and tell me: Would you expect a Bigtable implementation to live in a single .go file? Granted, it has 2800 lines (empty lines included), but still that doesn't seem much for the task of implementing a distributed data store without external dependencies.
Turn Dependabot Off
A small security fix in a crypto library, irrelevant to most of its clients, triggered thousands of PRs for projects unaffected by the bug.
The reason was that Dependabot detects updates to dependencies of a project without really knowing about their relevance to the project.
Filippo Valsorda owns the bespoke library and suggest replacing Dependabot with a more specific tooling for Go projects.
GraphQL: You Don't Have to Like It, But You Should Know It (Golang) - YouTube
Like the previous video, this one spawned a (mild) controversy about competing technologies—this time, it's GraphQL versus REST for remote database queries. And as I wrote last time, you have to know both technologies to be able to weigh the pros and cons of each.
Structured concurrency & Go | Redowan's Reflections
Go's concurrency primitives (goroutines and channels) are a simple but powerful abstraction of concurrency mechanics like threading or mutexes. But they're still primitives. Redowan Delowar explores higher-level approaches to concurrency in two other languages: Python's TaskGroup and Kotlin's coroutineScope.
GitHub - puzpuzpuz/go-concurrent-map-bench: Benchmarks for concurrent hash map implementations in Go
The standard map type isn't concurrency-safe for performance reasons, but if you need a concurrency-safe map implementation, the performance penalty should better be moderate. These benchmarks may help find the best one for a given use case.
v2
Charm's terminal UI libraries got an upgrade: v2 is out, promising better performance, and already battle-tested with Crush.
Server-Sent Events (SSE): Build a Real-Time Stock Dashboard in Go - YouTube
Classic HTTP communication is always triggered by the client. Server-Side Events (SSE) flip the roles of server and client. Learn how SSE works and how to build an SSE-driven dashboard with only the standard library.
Projects
Libraries
GitHub - donseba/go-form: Render forms in go based on struct layout
This idea has literally been sitting in the back of my brain for years. Finally, someone did it for me! A possible use case: equipping one's apps with a low-effort UI for editing preferences.
Tools and applications
GitHub - chetanjangir0/onepdfplease: A TUI for doing simple PDF tasks
Merging, splitting, encrypting, decrypting PDFs, and turning images into PDFs right at your fingertips.
GitHub - backendsystems/nibble: a local network scanner tui tool
Discover open ports in your local network that should better be closed.
Matcha Client
Read emails without Electron, without convoluted GUIs, and without sluggish web apps.
GitHub - boyter/cs: codespelunker - CLI code search tool that understands code structure and ranks results by relevance. No indexing required
Imagine a code search tool with the speed of a lean CLI tool and the ranking abilities of heavily index-based search engines. cs replaces pre-indexing with "brute-force calculations on the fly" backed by some caching.
GitHub - cshum/imagor: Fast, secure image processing server and Go library, using libvips
A full image management app that even doesn't touch your original files. It is open source but can be "bought" if you want to support the project.
GitHub - sivchari/awsim: A lightweight AWS service emulator written in Go for CI/CD environments
If LocalStack seems like too much overhead for simple local tests, awsim might be the tool you're looking for.
GitHub - blackwell-systems/shelfctl: PDF/EPUB library CLI/TUI backed by GitHub Release assets (Git LFS alternative). On-demand per-file downloads, metadata catalog, migrate/split bloated repos.
Storing binary files like PDFs or ePub books inside GIt repositories is a waste of storage space, especially if that space is limited. This tool helps to keep such files out of your repos.
Completely unrelated to Go
AI fatigue is real and nobody talks about it | Siddhant Khare
If AI assists you at coding, this article may read like a déja vu.
