In this post, Vishnu Bharathi explores the behavior of nil channels in Go, detailing how they block operations and shape concurrency patterns. He offers clear code examples to illustrate common pitfalls and effective strategies for handling nil channels in real-world applications.
https://vishnubharathi.codes/blog/nil-channels-in-go/
https://vishnubharathi.codes/blog/nil-channels-in-go/
Vishnu Bharathi
Nil channels in Go
A friend from work messaged me today that they had a hard time because they had used var c chan int instead of c := make(chan int) in their Go code. I responded by saying that I usually have one rule
In this feature, Liam Manesh introduces the GOOS=none proposal to enable bare-metal Go, bypassing any OS layer. He explores how the Tamago project underpins this change, supplying runtime hooks for firmware, bootloaders, and microVMs on AMD64, ARM, and RISC-V.
https://golangnugget.com/p/go-without-an-os-meet-goos-none
https://golangnugget.com/p/go-without-an-os-meet-goos-none
Golang Nugget
Go Without an OS? Meet GOOS=none
A wild new proposal could let you write low-level code—like boot managers or firmware—directly in Go. No OS needed. Seriously.
❤2
In this analysis, “Pure vs. impure iterators in Go” examines Go’s new iterator standardisation in versions 1.23+ and advocates for clear terminology distinguishing stateless “pure” functions from stateful “impure” closures. It walks through examples—from Fibonacci generators to strings.Lines—and weighs performance implications against consistency across related iterator factories.
https://jub0bs.com/posts/2025-05-29-pure-vs-impure-iterators-in-go/
https://jub0bs.com/posts/2025-05-29-pure-vs-impure-iterators-in-go/
Jub0Bs
Pure vs. impure iterators in Go
TL;DR ¶ Go has now standardised iterators. Iterators are powerful. Being functions under the hood, iterators can be closures. The classification of iterators suggested by the documentation is ambiguous. Dividing iterators into two categories, “pure” and “impure”…
A Go implementation of the Model Context Protocol (MCP), enabling seamless integration between LLM applications and external data sources and tools.
https://github.com/mark3labs/mcp-go
https://github.com/mark3labs/mcp-go
GitHub
GitHub - mark3labs/mcp-go: A Go implementation of the Model Context Protocol (MCP), enabling seamless integration between LLM applications…
A Go implementation of the Model Context Protocol (MCP), enabling seamless integration between LLM applications and external data sources and tools. - mark3labs/mcp-go
In this primer, Prateek Surana highlights key contrasts between Go and JavaScript, walking through syntax differences, runtime models, and type systems that shape performance and developer experience. Drawing from his years in JavaScript and recent focus on Go for server-side development, he offers code comparisons and practical tips for a smooth transition.
https://prateeksurana.me/blog/guide-to-go-for-javanoscript-developers/
https://prateeksurana.me/blog/guide-to-go-for-javanoscript-developers/
prateeksurana.me
A JavaScript Developer's Guide to Go
A guide for JavaScript developers learning Go through direct comparisons of fundamental concepts between both languages.
In this essay, Fillmore Labs examines how pointers to zero-sized types can lead to unexpected behavior in Go runtimes. The Perils of Pointers in the Land of the Zero-Sized Type reveals how escape analysis and shared heap optimizations undermine direct pointer comparisons for zero-sized types.
https://blog.fillmore-labs.com/posts/zerosized-1/
https://blog.fillmore-labs.com/posts/zerosized-1/
🔥 ~6x faster, stricter, configurable, extensible, and beautiful drop-in replacement for golint
https://github.com/mgechev/revive
https://github.com/mgechev/revive
GitHub
GitHub - mgechev/revive: 🔥 ~6x faster, stricter, configurable, extensible, and beautiful drop-in replacement for golint
🔥 ~6x faster, stricter, configurable, extensible, and beautiful drop-in replacement for golint - mgechev/revive
In this video, Goodgis builds his first game in Go using the Ebitengine library, creating a rocket-launching challenge inspired by a Saturn V engine. He walks through installing Go, setting up Ebitengine, drawing sprites, implementing movement, designing artwork, and adding polish with scoring, audio, and visual touches.
https://www.youtube.com/watch?v=FJEIhUoLVj4
https://www.youtube.com/watch?v=FJEIhUoLVj4
YouTube
Making a Game in Golang with No Experience
To try everything Brilliant has to offer—free—for a full 30 days, visit http://brilliant.org/Goodgis/ and get 20% off Brilliant’s annual premium subnoscription.
Today I made my first game in Go using Ebitegine. Let's see what sort of game I can make with no…
Today I made my first game in Go using Ebitegine. Let's see what sort of game I can make with no…
In this exposition, Beyond The Syntax reveals the process of implementing a JSON parser from scratch in Go. It covers tokenization, AST construction, and literal and number parsing to guide you through building a robust JSON processor.
https://beyondthesyntax.substack.com/p/lets-write-a-json-parser-from-scratch
https://beyondthesyntax.substack.com/p/lets-write-a-json-parser-from-scratch
Substack
Let's Write a JSON Parser From Scratch
Recently I was learning about language parsing and abstract syntax trees. After getting some knowledge about this, I decided to write a JSON parser from scratch.
In this overview, Matei Popovici tackles the complexities of cross-compiling Go programs with C dependencies using Bazel and cgo. He details the essential steps for configuring custom toolchains, setting up sysroots, and defining Bazel build rules to produce multiplatform, C-embedded Go binaries.
https://popovicu.com/posts/cross-compile-cgo-bazel/
https://popovicu.com/posts/cross-compile-cgo-bazel/
Popovicu
Cross-compiling C and Go via cgo with Bazel
Walkthrough for cross compiling a mixed C and Go binary for another platform using cgo and Bazel. Example is done with x86_64/Linux compiling for RISC-V/Linux.
Explore the evolution of caching strategies in software development, understanding how different techniques can improve performance and reduce latency in your applications. This blog post offers a deep dive into the world of caching.
https://maypok86.github.io/otter/blog/cache-evolution/
https://maypok86.github.io/otter/blog/cache-evolution/
maypok86.github.io
The Evolution of Caching Libraries in Go - Otter
🔥1
Color space definitions in Go: sRGB, OKLAB/OKLCH and CIE spaces.
https://github.com/soypat/colorspace
https://github.com/soypat/colorspace
GitHub
GitHub - soypat/colorspace: Color space definitions in Go: sRGB, OKLAB/OKLCH and CIE spaces.
Color space definitions in Go: sRGB, OKLAB/OKLCH and CIE spaces. - soypat/colorspace
🔥1
Learn best practices for managing configuration settings in Go web applications, ensuring your applications are flexible, maintainable, and adaptable to different environments. This article provides valuable insights into effective configuration management techniques.
https://www.alexedwards.net/blog/how-to-manage-configuration-settings-in-go-web-applications
https://www.alexedwards.net/blog/how-to-manage-configuration-settings-in-go-web-applications
www.alexedwards.net
How to manage configuration settings in Go web applications - Alex Edwards
The official Go SDK for Model Context Protocol servers and clients. Maintained in collaboration with Google.
https://github.com/modelcontextprotocol/go-sdk
https://github.com/modelcontextprotocol/go-sdk
GitHub
GitHub - modelcontextprotocol/go-sdk: The official Go SDK for Model Context Protocol servers and clients. Maintained in collaboration…
The official Go SDK for Model Context Protocol servers and clients. Maintained in collaboration with Google. - modelcontextprotocol/go-sdk
👍3
Discover how to effectively test your Go application's configuration using flags, ensuring that your application behaves as expected under various configurations and settings. This article provides a practical approach to configuration testing in Go.
https://rednafi.com/go/test_config_with_flags/
https://rednafi.com/go/test_config_with_flags/
Redowan's Reflections
Flags for discoverable test config in Go
As your test suite grows, you need ways to toggle certain kinds of tests on or off. Maybe
you want to enable snapshot tests, skip long-running integration tests, or switch
between real services and mocks. In every case, you’re really saying, “Run this test…
you want to enable snapshot tests, skip long-running integration tests, or switch
between real services and mocks. In every case, you’re really saying, “Run this test…