Hacker News with Generative AI: Go

Go-msquic: A new QUIC/HTTP3 library for Go (github.com/noboruma)
go-msquic is a Go wrapper for the Microsoft's QUIC library, providing Go developers with an easy interface to work with QUIC-based protocols such as HTTP/3.
One year after switching from Java to Go (glasskube.dev)
I always told people memory is cheap, black magic is OK and efficiency doesn't matter in most cases, but boy, how wrong was I...
Walking with filesystems: Go's fs.FS interface (bitfieldconsulting.com)
The new io/fs package introduced in Go 1.16 gives us a powerful new way of working with filesystems: that is, trees of files. In fact, the fs.FS interface can be used with more than just files: it abstracts the idea of a path-value map.
Extensible WASM Applications with Go (go.dev)
Go 1.24 enhances its WebAssembly (Wasm) capabilities with the addition of the go:wasmexport directive and the ability to build a reactor for WebAssembly System Interface (WASI). These features enable Go developers to export Go functions to Wasm, facilitating better integration with Wasm hosts and expanding the possibilities for Go-based Wasm applications.
The Tao of Go (bitfieldconsulting.com)
You can’t stop the waves, but you can learn to surf
Go 1.24 Release Notes (golang.org)
The latest Go release, version 1.24, arrives six months after Go 1.23.
Go's new map implementation in 1.24 is powered by Swiss Tables (twitter.com)
We replaced our React front end with Go and WebAssembly (dagger.io)
A few weeks ago, we launched Dagger Cloud v3, a completely new user interface for Dagger Cloud. One of the main differences between v3 and its v2 predecessor is that the new UI is written in WebAssembly (WASM) using Go. At first glance, this might seem an odd choice - Go typically isn't the first language you think of when deciding to program a Web UI - but we had good reasons.
Show HN: Chez Scheme txtar port from Go (git.sr.ht)
txtar enables you to work with a simple text archive format compatible with https://golang.org/x/tools/txtar. It concatenates files together and allows for a top-level comment.
Microsoft Go 1.24 FIPS changes (microsoft.com)
The Go 1.24 cryptography packages have been through a heavy refactoring to allow the Go standard library to be FIPS 140-3 compliant.
Rust and Go vs. Everything Else? (bitfieldconsulting.com)
Rust and Go make perfect partners
Go Supply Chain Attack: Malicious Package Exploits Go Module (socket.dev)
Socket researchers uncovered a backdoored typosquat of BoltDB in the Go ecosystem, exploiting Go Module Proxy caching to persist undetected for years.
Go Module Mirror served backdoor to devs for 3 years (arstechnica.com)
A mirror proxy Google runs on behalf of developers of the Go programming language pushed a backdoored package for more than three years until Monday, after researchers who spotted the malicious code petitioned for it to be taken down twice.
Go Data Structures: Interfaces (2009) (swtch.com)
Go's interfaces—static, checked at compile time, dynamic when asked for—are, for me, the most exciting part of Go from a language design point of view. If I could export one feature of Go into other languages, it would be interfaces.
Go Data Structures (2009) (swtch.com)
When explaining Go to new programmers, I've found that it often helps to explain what Go values look like in memory, to build the right intuition about which operations are expensive and which are not. This post is about basic types, structs, arrays, and slices.
Go Supply Chain Attack: Malicious Package Exploits Go Module Proxy Caching For (socket.dev)
Socket researchers uncovered a backdoored typosquat of BoltDB in the Go ecosystem, exploiting Go Module Proxy caching to persist undetected for years.
Programming in Go Is Fun (bitfieldconsulting.com)
I recently had the privilege of being a guest on the Cup o’ Go podcast, where I chatted with hosts Jonathan Hall and Shay Nehmad about teaching and learning Go. You can listen to the full interview here: Cup o’ Go #21: John Arundel interview
Show HN: Multi-/BiKeyMap (Go Module) (github.com/aeimer)
A go lib which handles maps with multiple keys.
Show HN: voidDB – A transactional key-value DB written in Go for 64-bit Linux (github.com/voidDB)
A transactional key-value database written in Go for 64-bit Linux. Seemingly faster and more compact than lmdb-go, bbolt, Badger, and goleveldb. <2K LOC
Go 1.24's go tool is one of the best additions to the ecosystem in years (jvt.me)
For those that aren't aware, one of the big changes in February's upcoming Go 1.24 release is the new go tool command, and tool directive in the go.mod to manage any tools your project uses. I'm incredibly excited about this, and in my opinion, this is one of the best changes we've had in recent years in the ecosystem as a whole.
Maps are faster in Go 1.24 (bytesizego.com)
Go 1.24 has arrived with many improvements, but one of the most interesting changes is the introduction of a Swiss Table-based map implementation. This update improves performance for map operations, making Go even more efficient.
Alibaba, Datadog, and Quesma Join Forces on Go Compile-Time Instrumentation (opentelemetry.io)
Standards are only useful if they’re widely adopted, and adoption is only effective if the available tooling facilitates it. I imagine SI units would not have been too popular when they were introduced if you had to build your own scales to weigh things in Kilograms!
Context should go away for Go 2 (2017) (faiface.github.io)
As usual, when a new blog post comes out on blog.golang.org, I’m all eager to read it as soon as possible. The most recent one, Contributors Summit, is a nice write-up on the issues that the Go contributors have been talking about. While reading it, I stumbled upon a sentence that made me write this post. Here is is:
Go 1.24 Interactive Tour (antonz.org)
Go 1.24 is scheduled for release in February, so it's a good time to explore what's new. The official release notes are pretty dry, so I prepared an interactive version with lots of examples showing what has changed and what the new behavior is.
Build a Database in 3000 Lines with 0 Dependencies (build-your-own.org)
I’ve built a small database in 3000 lines from scratch in Go to learn the core ideas of databases. It’s not that complicated if you approach it in a certain way.
Go is a well designed language, actually (mattjhall.co.uk)
In many ways 2009 decided my future career. I was thirteen and had just scored my first goal in a competitive football match - a lovely one-two with the winger finished by a powerful strike into the top left corner. Sadly the talent scouts were missing that day. Whilst I was dreaming of Wembley, Go was announced to the world.
Pdfcpu – A PDF Processor (pdfcpu.io)
A PDF processor written in Go.
TiDB – cloud-native, distributed SQL database written in Go (github.com/pingcap)
TiDB (/’taɪdiːbi:/, "Ti" stands for Titanium) is an open-source, cloud-native, distributed SQL database designed for high availability, horizontal and vertical scalability, strong consistency, and high performance.
Don't Clobber the Frame Pointer (nsrip.com)
Recently I diagnosed and fixed two frame pointer unwinding crashes in Go.
Go Upgrade Checklist (hakann.substack.com)
Upgrading your service to a new golang major release is supposed to be a painless process thanks to the Go 1 promise of compatibility. However, there can always be small issues around security updates, packages, tools, linters, etc. If you have an uncritical standalone service, it is probably best to upgrade and see if everything works as expected.