Go Weekly
Plus gopls learns to ask questions, you can stop draining HTTP/1 bodies, desktop apps in pure Go, and a much faster regexp?

#​621 — October 23, 2026

Read the Web Version

Together with  Master.dev

Go Weekly

Interactive Refactoring in gopls — LSP refactorings can't 'ask' you anything, so "Add struct tags" in gopls just guessed json and camelCase. gopls can now pop up dialogs to collect your input. It uses a stateless, form-like protocol extension the Go and Dart teams have proposed as an LSP standard.

Hongxiang Jiang (Go Team)

💡 For now it works in VS Code, with Neovim and Emacs support at proof-of-concept stage. A Move declaration refactoring is coming soon, with Change signature to follow.

Deploy Self-Healing Apps on Kubernetes — Learn Kubernetes by building a real production setup. Erik Reinert takes you from a local Kind cluster to Amazon EKS with health probes, autoscaling, safe rollbacks, and GitOps with Argo CD.

Master.dev sponsor

🚫 Go Hardcodes a Block on Broken eMudhra Certs — Eight intermediate CA certificates had trivially recoverable private keys, so Go 1.27.3 and 1.26.10 now refuse chains through them. It's hardcoded because, as Filippo Valsorda notes, Linux trust stores have no way to pass revocations on to apps.

The Go Team

IN BRIEF:

GO 1.28 & PROPOSALS:

Better HTTP/1 Connection Reuse — You can now (mostly) stop draining HTTP/1 response bodies in Go 1.27 as the client now drains the leftovers in the background, within limits, making io.Copy(io.Discard, resp.Body) helpers largely redundant when you close the body.

Nicholas Husin and Damien Neil (Go Team)

💡 The release notes add a caveat the post skips: programs that let idle connections pile up (say, with MaxIdleConns set to 0 or a new Client per request) may get slower.

SIMD and Go: How the New Packages Work Under the Hood — A heavily illustrated tour of Go's experimental SIMD support, covering what vector instructions actually do, the operations offered by simd/archsimd and the new portable simd package, and how the compiler turns them into machine code.

Jesús Espino

One Less System to Operate. Everything in SQL — TimescaleDB extends Postgres so your metrics and app data share one database and one SQL join. Get $1000 credit.

Tiger Data (creators of TimescaleDB) sponsor

📄 Spinning is a Bounded Bet: Why Go Hides Its Spinlocks – Part one of a four-part series on spinning versus parking. Alex Rios

📄 ConcurrentML: Improving on Go's Concurrency Model – Makes the case for composable events as a fix for the limits of select. Nikhil Marathe

📄 Cutting a Go Git Server's RAM Usage by Two-Thirds – Using pprof to take a push from 617MB to 199MB. Xe Iaso (Tigris)

📄 Why a Healthy Go Heap Can Still Get OOM-Killed in Kubernetes Gulcan Topcu

📄 Dancing Backwards with Go: Why TDD Feels Weird John Arundel

🛠 Code & Tools

MyGo: Build Desktop Apps in Go with No Cgo Required — Build macOS, Windows and Linux apps with a UI drawn on the GPU from pure Go, or a web frontend in the system webview that calls Go via a generated TypeScript client. Apps can be just a few megabytes. GitHub repo.

EGOIST

TinyGo 0.43: Go for Microcontrollers and WebAssembly — The Go compiler 'for small places' closes more gaps with regular Go, adding testing/synctest, parallel tests, panic recovery on Wasm, and more. Much of the work comes from Jake Bailey of TypeScript's Go port fame.

The TinyGo Team

💡 For some TinyGo fun, Hoani Bryson's Trick Shot II won this year's Nokia 3310 Jam, built on his own Go engine that even runs on a Pico inside a real 3310.

coregex: A Faster Drop-In Replacement for regexp — Brings the multi-engine design of Rust's regex crate to Go, with lazy DFA, PikeVM, one-pass matching and SIMD prefilters. The author claims 15–240x speedups.

Andrey Kolkov

💡 The standard library may close some of that gap: a port of RE2's lazy DFA to regexp is up for review, with early benchmarks showing big performance improvements.

  • gopls 0.24 – The official Go language server moves to LSP 3.18 and adds hover, highlighting and references in Go assembly files (interactive refactoring is covered in the feature at the top of the issue).

  • GoReleaser 2.19 – The release automation tool graduates several experimental features and adds tunable zstd compression for archives.

  • fasthttp 1.76 – The fast HTTP package gets extra hardening against request smuggling and message-framing attacks.

  • decimal 1.6 – Arbitrary-precision fixed-point decimals, now with Sqrt, Root and BSON Decimal128.

  • chi 5.5 – Lightweight router, now with RFC 9745 deprecation middleware.

📰 Classifieds

Build your Golang app faster. WarpBuild runners are twice as fast at half the cost. Get $50 in free credits with code START50.


CodeAF, an open-source coding harness written in Go: #1 of ten on DeepSWE on the same model, at 2x to 25x less per fix than the others.


🪝 Send webhooks from your Go service in minutes. Svix handles retries, signing, delivery logs, and a portal for your customers.

⭐ And finally…

Help Set Go's Priorities with the 2026 Go Developer Survey — The Go team uses the results to decide what to work on. Last year, the top frustration was keeping Go code idiomatic and following best practices, which led to the rewritten go fix in Go 1.26 and more modernizers in 1.27.

Cameron Balahan (Go Team)

Issue 620 #621