---
title: "sync/v2 and the 'v2'-ification of Go's standard library"
publication: "Go Weekly"
issue: 541
published_at: "2025-02-05"
canonical_url: "https://golangweekly.com/issues/541"
---

Plus Go vs Steam, a way to tap into HTTP requests on Linux, and taking some inspiration from TypeScript. |        

#​541 — February 5, 2025 

[Unsub](https://golangweekly.com/leave/*|UID|*)|[Web Version](https://golangweekly.com/issues/541)  

Together with [![Frontend Masters logo\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_300,h_70/e_make_transparent/co_white,e_outline:5/nk0tfdvalivacz8rw7rt.png)](https://frontendmasters.com/workshops/complete-go/?utm_source=email&utm_medium=golangweekly&utm_content=completego)   

Go Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/vfshjdwlnvvkgditfstv.jpg)](https://socket.dev/blog/malicious-package-exploits-go-module-proxy-caching-for-persistence)  

[How a Malicious Package Exploited Module Proxy Caching for Persistence](https://socket.dev/blog/malicious-package-exploits-go-module-proxy-caching-for-persistence) — Researchers have uncovered a sophisticated supply chain attack exploiting both typosquatting and then Go’s module proxying caching to remain undetected for years. It’s worth understanding the mechanism behind this in case you run into it yourself. 

Kirill Boychenko (Socket)   

[Proposal: `math/rand/v2` Worked, Let's Do `sync/v2`!](https://github.com/golang/go/issues/71076) — Creating ‘v2’ versions of standard packages is Go’s compromise for modernization vs stability. With [the evolution of `math/rand`](https://go.dev/blog/randv2) a success, Ian thinks synchronization primitives are due an upgrade too. Much of the value here comes from a month’s worth of discussion, including people’s discontent over the ‘v2’ approach ([outlined further here](https://go.dev/blog/randv2#principles)). 

Ian Lance Taylor   [![\](https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/35a324f6.png)](https://frontendmasters.com/workshops/complete-go/?utm_source=email&utm_medium=golangweekly&utm_content=completego) 

[Upcoming Workshop on Building Backend Web Apps in Go](https://frontendmasters.com/workshops/complete-go/?utm_source=email&utm_medium=golangweekly&utm_content=completego) — Join us for a two day workshop (either online or in person) and develop your Go know-how. We'll focus on using Go to build backend web apps, along with learning Go data structures, interfaces, how to write unit tests, and more. 

Frontend Masters sponsor   

[Go Programs Freezing When Launched by Steam](https://steamcommunity.com/discussions/forum/0/595138100650327297/) — Ebitengine’s lead developer reported an unusual bug to the Steam team – Go programs (e.g. games) launched by the popular Steam game launcher were failing due to Steam interfering with Go’s runtime in some way. This has since become [a bug being discussed on the Go repo](https://github.com/golang/go/issues/71242) with some workarounds but no full resolution yet. 

Hajime Hoshi   

**IN BRIEF:** 

- While we wait for of Go 1.24's final release, [Go 1.23.6 and Go 1.22.12 have been released](https://groups.google.com/g/golang-announce/c/xU1ZCHUZw3k) including a security fix to `crypto/elliptic` as well as [a couple](https://github.com/golang/go/issues?q=milestone%3AGo1.23.6+label%3ACherryPickApproved) of tiny bug fixes.
- Originally an elaborate set of shell scripts, [the latest version of the `asdf` version manager](https://github.com/asdf-vm/asdf/releases/tag/v0.16.0) sees a complete rewrite to Go. (I use this for managing my Ruby versions – it's good.)   

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/pnnyomwbqcvik1upnprj.jpg)](https://github.com/monasticacademy/httptap)  

[httptap: View HTTP/HTTPS Requests Made by Any Linux Program](https://github.com/monasticacademy/httptap) — It uses Linux-only network namespaces for now, but this is a Go-powered process-scoped HTTP tracer you can run _without_ root privileges. It even decrypts TLS traffic by generating a CA on the fly. Handy for debugging or seeing if dependencies or apps are ‘phoning home,’ perhaps.. 

Monastic Academy for the Preservation of Life on Earth   

[How to Release to Homebrew with GoReleaser, GitHub Actions and Semantic Release](https://dev.to/hadlow/how-to-release-to-homebrew-with-goreleaser-github-actions-and-semantic-release-2gbb) — The steps involved in automating the release of a Go project (maybe your new command line tool or TUI?) that’s available via [Homebrew](https://brew.sh/) (as most commonly used on macOS). 

Billy Hadlow   

[Product Management Is Broken. Engineers Can Fix It](https://dub.link/go-feb5) — How redefining how PMs and engineers work together helped PostHog optimize everything they do for speed and autonomy. 

PostHog sponsor   

📄 [Real-Time Batching in Go](https://destel.dev/blog/real-time-batching-in-go) Viktor Nikolaiev 

📄 [Recover Panics in All Goroutines You Start](https://dev.ribic.ba/recover-panics-goroutines/) Emir Ribic  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/jpqfu4b7eslqypfwimz3.jpg)](https://zog.dev/)  

[Zog: 'Next Gen' Schema Validation for Go](https://zog.dev/) — [Zod](https://zod.dev/) is a popular TypeScript-based runtime schema validation library and _Zog_ is a take on the same idea in Go so you can define validations and run them against values and structs. [GitHub repo.](https://github.com/Oudwins/zog) 

Tristan Mayo   

[etree 1.5: A Library to Parse and Generate XML Easily](https://github.com/beevik/etree) — A simple, straightforward approach to working with XML in Go, inspired by Python’s ElementTree. XML documents are represented as trees for easily traversal and you can create, import, modify and save XML. Queries can be done with a XPath-like approach. 

Brett Vickers   

[Feluda: A Tool to Analyze the Licences of Dependencies](https://github.com/anistark/feluda) — It’s a Rust-powered project but which can be used to process the dependencies of Go, Rust or Node.js projects and return a report (or show a TUI interface) on potentially restrictive licenses that apply. 

Kumar Anirudha   

🔊 [volume-go: A Cross-Platform Way to Control Sound Volume](https://github.com/itchyny/volume-go) — Leaning on a different technique for each OS, it supports macOS, Linux, and Windows. If you want it wrapped up into a nice Go TUI, [Volgo](https://github.com/elliot40404/volgo) is for you. 

itchyny   

- 🧋 [Bubble Tea 1.3](https://github.com/charmbracelet/bubbletea/releases/tag/v1.3.0) – A popular way to build terminal apps. v1.3 now handles interrupts better and take your CTRL+Cs _'with grace and poise.'_
- [genqlient 0.8](https://github.com/Khan/genqlient) – Generate type-safe code to query a GraphQL API.
- [Micro 5.0](https://github.com/micro/micro) – Go distributed system abstractions / platform.
- [rain 2.2](https://github.com/cenkalti/rain) – BitTorrent client and library for Go.
- [fzf 0.59](https://github.com/junegunn/fzf/releases/tag/v0.59.0) – Popular command-line fuzzy finder.
- [GoBGP 3.34](https://github.com/osrg/gobgp) – BGP implementation in Go.      

📰 Classifieds   

💡 Modern Infrastructure Demands a Modern Approach to Privileged Access - [Read White Paper](https://goteleport.com/resources/white-papers/modern-infrastructure-demands-modern-privileged-access/?utm_campaign=legacypam&utm_content=techpaper&utm_medium=partner&utm_source=cooperpress). 

--- 

🐘 PostgreSQL user? Check out [our sister newsletter, Postgres Weekly](https://postgresweekly.com/) – the next issue goes out tomorrow.     

🕹️ And for a little fun.. 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/jrmbac7xv0etyviaacmw.jpg)](https://imprity.itch.io/minesweeper)  

[A Minesweeper Game Written in Go](https://imprity.itch.io/minesweeper) — A cute example of putting together a game in such a way that it not only runs on the desktop in the usual way, but can be taken to the Web too. The effects are cute, too – this is a great use of the [Ebitengine](https://ebitengine.org/) game engine. The [GitHub repo](https://github.com/imprity/minesweeper) is certainly worth a look if you're trying to reach similar ends. 

imprity         

Curated by Peter Cooper and [Glenn Goodrich](https://twitter.com/ruprict). 

[Change your email](https://golangweekly.com/edit_subscription/*|UID|*)
[Stop getting this newsletter](https://golangweekly.com/leave/*|UID|*) 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom
