Building Statically Linked Go Executables with CGO and Zig
(calabro.io)
This is a short post about how to create a statically linked Go executable that calls in to CGO dependencies using Zig.
This is a short post about how to create a statically linked Go executable that calls in to CGO dependencies using Zig.
The right way to do data fixtures in Go
(brandur.org)
Every test suite should start early in building a strong convention to generate data fixtures. If it doesn’t, data fixtures will still emerge (they’re that necessary), but in a way that’s poorly designed, with no API (or a poorly designed one), and not standardized.
Every test suite should start early in building a strong convention to generate data fixtures. If it doesn’t, data fixtures will still emerge (they’re that necessary), but in a way that’s poorly designed, with no API (or a poorly designed one), and not standardized.
Writing an HTTP Server in Go from Scratch: Part 2
(krayorn.com)
Last year I wrote a blog post explaining how I built my HTTP Server in Golang by following a Coder Crafters, I got some good feedback on it and improved the HTTP Server quite a bit, let’s dive into the changes!
Last year I wrote a blog post explaining how I built my HTTP Server in Golang by following a Coder Crafters, I got some good feedback on it and improved the HTTP Server quite a bit, let’s dive into the changes!
Good-bye core types; Hello Go as we know and love it
(go.dev)
The Go 1.18 release introduced generics and with that a number of new features, including type parameters, type constraints, and new concepts such as type sets.
The Go 1.18 release introduced generics and with that a number of new features, including type parameters, type constraints, and new concepts such as type sets.
Hann: A Fast Approximate Nearest Neighbor Search Library for Go
(github.com/habedi)
Hann is a high-performance approximate nearest neighbor search (ANN) library for Go.
Hann is a high-performance approximate nearest neighbor search (ANN) library for Go.
Show HN: GoRead – Terminal epub reader
(github.com/Ray-D-Song)
GoRead is a terminal/CLI EPUB reader written in Golang, inspired by epr.
GoRead is a terminal/CLI EPUB reader written in Golang, inspired by epr.
Notes on structured concurrency, or: Go statement considered harmful (2018)
(vorpus.org)
Every concurrency API needs a way to run code concurrently.
Every concurrency API needs a way to run code concurrently.
Ikemen-GO: open-source reimplementation of MUGEN
(github.com/ikemen-engine)
Ikemen GO is an open source fighting game engine that supports resources from the M.U.G.E.N engine, written in Google’s programming language, Go. It is a complete rewrite of a prior engine known simply as Ikemen.
Ikemen GO is an open source fighting game engine that supports resources from the M.U.G.E.N engine, written in Google’s programming language, Go. It is a complete rewrite of a prior engine known simply as Ikemen.
Don't Be Afraid of Types
(lmika.org)
I found that there’s a slight aversion to creating new types in the codebases I work in. I saw it during my early days while I was working in Java projects, and I see it today in the occasional Go project. Function bodies with lots of local variables, functions that take a large number of arguments or returning a large number of results, extensions to existing types rather than making new ones. It’s a strange phenomenon.
I found that there’s a slight aversion to creating new types in the codebases I work in. I saw it during my early days while I was working in Java projects, and I see it today in the occasional Go project. Function bodies with lots of local variables, functions that take a large number of arguments or returning a large number of results, extensions to existing types rather than making new ones. It’s a strange phenomenon.
Goth stack: building front-ends with Go, HTML and a little duct tape
(thefridaydeploy.substack.com)
I’ve been a fan of Go for the better part of 10 years now. Its simplicity and portability quickly earned it a place as my language of choice. But the frontend experience has always left something to be desired for me. While powerful, Go templates are a language unto themselves and for any kind of interactivity you’re going to want to reach for some JavaScript or TypeScript.
I’ve been a fan of Go for the better part of 10 years now. Its simplicity and portability quickly earned it a place as my language of choice. But the frontend experience has always left something to be desired for me. While powerful, Go templates are a language unto themselves and for any kind of interactivity you’re going to want to reach for some JavaScript or TypeScript.
Decoding JSON sum types in Go without panicking
(nicolashery.com)
The Go programming language doesn't have native support for sum types, but we'll see how we can emulate them, how to decode and encode them into JSON, and how in some cases they can help avoid runtime panic exceptions.
The Go programming language doesn't have native support for sum types, but we'll see how we can emulate them, how to decode and encode them into JSON, and how in some cases they can help avoid runtime panic exceptions.
Were multiple return values Go's biggest mistake?
(herecomesthemoon.net)
The Go programming language is frequently critizied for all sorts of reasons. To name a few crowd favorites: Lack of sum types, lack of enums, lack of null safety, lack of const correctness or immutability guarantees, verbose error handling that still makes it easy to accidentally ignore errors, the infamous time formatting and of course the lack of generics (this one is admittedly outdated).
The Go programming language is frequently critizied for all sorts of reasons. To name a few crowd favorites: Lack of sum types, lack of enums, lack of null safety, lack of const correctness or immutability guarantees, verbose error handling that still makes it easy to accidentally ignore errors, the infamous time formatting and of course the lack of generics (this one is admittedly outdated).
Choosing Languages
(steveklabnik.com)
The other day, Microsoft announced that they are re-writing the TypeScript compiler in Go. A lot of people had a lot of feelings about this. I did too, but in a different way than many other people.
The other day, Microsoft announced that they are re-writing the TypeScript compiler in Go. A lot of people had a lot of feelings about this. I did too, but in a different way than many other people.
Microsoft Rewrite Tsc in Go
(github.com/microsoft)
This repo is very much under active development; as such there are no published artifacts at this time.
This repo is very much under active development; as such there are no published artifacts at this time.
Why Go's Error Handling Is Awesome
(rauljordan.com)
Go's infamous error handling has caught quite the attention from outsiders to the programming language, often touted as one of the language's most questionable design decisions.
Go's infamous error handling has caught quite the attention from outsiders to the programming language, often touted as one of the language's most questionable design decisions.
Rust vs. Go: Battle for the Back End
(effective-programmer.com)
A crab and a gopher walk into a server room. The crab starts flexing its zero-cost abstractions, while the gopher shows off its goroutines. Welcome to backend battle of 2025, where two modern champions are duking it out for supremacy.
A crab and a gopher walk into a server room. The crab starts flexing its zero-cost abstractions, while the gopher shows off its goroutines. Welcome to backend battle of 2025, where two modern champions are duking it out for supremacy.
Goravel: A Go framework inspired by Laravel
(goravel.dev)
Goravel is a web application framework with complete functions and excellent scalability. As a starting scaffolding to help Gopher quickly build their own applications.
Goravel is a web application framework with complete functions and excellent scalability. As a starting scaffolding to help Gopher quickly build their own applications.
The Ten Commandments of Go
(bitfieldconsulting.com)
As a full-time Go teacher and writer, I spend a lot of time working with students to help them write clearer, better, and more useful Go programs. I’ve found that a lot of the advice I give them can be reduced to a fairly small set of general principles, and here they are.
As a full-time Go teacher and writer, I spend a lot of time working with students to help them write clearer, better, and more useful Go programs. I’ve found that a lot of the advice I give them can be reduced to a fairly small set of general principles, and here they are.
Pion Stun: Go Implementation of Stun
(github.com/pion)
Package stun implements Session Traversal Utilities for NAT (STUN) (RFC 5389) protocol and client with no external dependencies and zero allocations in hot paths.
Package stun implements Session Traversal Utilities for NAT (STUN) (RFC 5389) protocol and client with no external dependencies and zero allocations in hot paths.
Go-attention: A full attention mechanism and transformer in pure Go
(github.com/takara-ai)
From the Frontier Research Team at takara.ai we present the first pure Go implementation of attention mechanisms and transformer layers, designed for high performance and ease of use.
From the Frontier Research Team at takara.ai we present the first pure Go implementation of attention mechanisms and transformer layers, designed for high performance and ease of use.
Yoke: Infrastructure as code, but actually
(xeiaso.net)
Yoke is a project that takes this basic idea to the next level. With Yoke, you write your infrastructure definitions in Go or Rust, compile it to WebAssembly, and then you take input and output Kubernetes manifests that get applied to the cluster.
Yoke is a project that takes this basic idea to the next level. With Yoke, you write your infrastructure definitions in Go or Rust, compile it to WebAssembly, and then you take input and output Kubernetes manifests that get applied to the cluster.
Show HN: SafeHaven – A Minimal VPN Implementation in Go
(github.com/kwakubiney)
Proof of concept for a VPN over UDP
Proof of concept for a VPN over UDP
Calling Rust from Cursed Go
(pthorpe92.dev)
Purego makes registering foreign symbols very simple. When the driver is registered, I dlopen() the library and
Purego makes registering foreign symbols very simple. When the driver is registered, I dlopen() the library and
Rules I Learned About Technical Writing
(thecoder.cafe)
As you may know, in 2022, I published my first (and last) book, 100 Go Mistakes and How to Avoid Them. While I had already been maintaining a technical blog for more than a decade, I learned a ton during this experience. Here are ten rules I learned about technical writing while writing my book.
As you may know, in 2022, I published my first (and last) book, 100 Go Mistakes and How to Avoid Them. While I had already been maintaining a technical blog for more than a decade, I learned a ton during this experience. Here are ten rules I learned about technical writing while writing my book.