#544 — March 5, 2025 |
|
Go Weekly |
![]() |
Faster Go Maps with Swiss Tables — One of Go’s newest features is a revamped map implementation powered by a new hash table algorithm called Swiss Table that boosts map operations up to 60% faster in microbenchmarks, while reducing memory overhead. Here’s a look at how it works. Michael Pratt |
Tips to Debug Hanging Go Programs — Next time your Go app becomes unresponsive, these tips can help you find the issue by forcing a stack trace or using Delve to attach to the process (or core dump) and revive the program. Michael Stapelberg |
![]() Keep Postgres Maintenance from Slowing Down Your Go App — Secure your spot to learn the proactive maintenance practices that uncover hidden database performance risks, like slow queries, checkpoint behavior, & connection issues, before they escalate. pganalyze sponsor |
The Cost of Go's Julien Cretel |
💡 This post led to a rather extensive discussion on Hacker News. |
IN BRIEF:
|
Calling Rust from 'Cursed' Go — Cgo is Go’s mechanism for calling external/foreign functions but its performance often causes consternation. Enter purego, a still-in-beta way to make such calls without Cgo. Preston Thorpe |
Nil Channels in Go — Nil channels seem to baffle many Gophers, so Vishnu went on a quest to figure out why in a particular case. This led him to the wisdom of a new Go proverb: “Init when you split; Nil when you merge.” Vishnu Bharathi |
The Magic of Small Engineering Teams — How PostHog uses small teams to ship fast and scale at the same time. PostHog sponsor |
📄 Minesweeper with Raylib Go Bindings – Alex reflects on the joys of basic game development in Go with Raylib and he shares his code too. Alex Pliutau 📄 We Switched from Java to Go and Don't Regret It Miglinci, Steiner, and Enne (Glasskube) |
🛠 Code & Tools |
![]() |
Gore 0.6: A Full Featured Go REPL Environment — You get all the niceties you’d expect like line editing, history, multi-line input, the ability to import packages, and, in this latest build, gopls-powered code completion too. motemen |
Go Clean Template — Inspired by Uncle Bob’s ‘Clean Code’ principles, this repo attempts to provide a ‘clean architecture template’ for building Go-powered services that are well organized and won’t turn into a mess. You be the judge. Evrone |
go-git 5.14: An Extensible Git Implementation in Pure Go — “Manipulate git repositories at low level (plumbing) or high level (porcelain), through an idiomatic Go API.” Now requires Go 1.23+. go-git |
sqldef 1.0: Idempotent Schema Management for Databases — A Go-powered CLI tool and WASM library for diffing SQL schemas (demo here). Supports MySQL, Postgres, SQLite and SQL Server. Built by one of Ruby’s core team members, too. Takashi Kokubun |
|
|
📢 Elsewhere in dev |
A quick roundup of some of other interesting stories in the broader landscape, in case you've missed them:
|