---
title: "Go 1.24 arrives"
publication: "Go Weekly"
issue: 542
published_at: "2025-02-12"
canonical_url: "https://golangweekly.com/issues/542"
---

Plus slice gotchas, using Go over the radio waves, and replacing React with Go? |        

#​542 — February 12, 2025 

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

🏖️ We're taking next week off, so the next issue will be on Wednesday, February 26. Feel free to hit reply and send in any submissions!
__
_Peter Cooper, your editor._ 

Together with [![WarpStream\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,e_trim,w_480,h_100/e_make_transparent/co_white,e_outline:7/lgfmvw76y3fcgqb6ayfo.png)](https://www.warpstream.com/bring-your-own-cloud-kafka-data-streaming?utm_source=go_weekly&utm_medium=email&utm_campaign=feb_12_25_primary_go_weekly)   

Go Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/unusr7h44d0zo7ghrote.jpg)](https://go.dev/blog/go1.24)  

[Go 1.24 Released](https://go.dev/blog/go1.24) — Finally, after many months of blog posts getting excited about Go 1.24’s new features, the real deal has arrived. It’s a reasonably big release too, including a lot of updates: 

- [The `go tool` mechanism](https://www.jvt.me/posts/2025/01/27/go-tools-124/) for tracking tool dependencies.
- [The use of Swiss Tables](https://www.bytesizego.com/blog/go-124-swiss-table-maps) to speed up map operations.
- Experimental [`testing/synctest` package](https://danp.net/posts/synctest-experiment/) for testing concurrent code.
- The [go:wasmexport directive](https://go.dev/doc/go1.24#wasm) to export functions to a WASM host.
- Support for [generic type aliases](https://www.bytesizego.com/blog/go-124-generic-type-alias), as well as [weak pointers.](https://antonz.org/go-1-24/#weak-pointers)
- A new mechanism to achieve [FIPS 140-3 compliance.](https://go.dev/doc/security/fips140) As always, the ultimate source of truth is [the thorough release notes](https://go.dev/doc/go1.24) but don't forget [the interactive Go 1.24 tour](https://antonz.org/go-1-24/)either. 

Junyang Shao and the Go Team   

💡 Jamie Tanna is also pretty [excited about the new `omitzero` field tag](https://www.jvt.me/posts/2025/02/12/go-omitzero-124/) for JSON marshalling.  [![\](https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/a9974191.png)](https://www.warpstream.com/bring-your-own-cloud-kafka-data-streaming?utm_source=go_weekly&utm_medium=email&utm_campaign=feb_12_25_primary_go_weekly) 

[Reduce Your Apache Kafka Costs + Ops Burden With WarpStream](https://www.warpstream.com/bring-your-own-cloud-kafka-data-streaming?utm_source=go_weekly&utm_medium=email&utm_campaign=feb_12_25_primary_go_weekly) — WarpStream reduces Kafka costs by 80+% by eliminating disks and interzone networking fees and features zero ops auto-scaling. It runs in your private cloud and data is stored in your object storage buckets, so raw data never leaves your environment. 

WarpStream sponsor   

[Go Slice Gotchas](https://rednafi.com/go/slice_gotchas/) — _“Just like any other dynamically growable container structure, slices come with a few gotchas. I don’t always remember all the rules I need to be aware of, so this is an attempt to list some of the most common mistakes I’ve made at least once.”_ 

Redowan Delowar   

**IN BRIEF:** 

- Joe Tsai kicks off [a proposal for `encoding/json/v2`,](https://github.com/golang/go/issues/71497) a new standard API for `encoding/json`.
- 🔒 Microsoft maintains its own Go build to bring FIPS compliance to Go's crypto libraries. Vanilla Go has [been trying to obtain a FIPS validation directly](https://github.com/golang/go/issues/69536) and [v1.24 adds a mechanism for this](https://tip.golang.org/doc/security/fips140). However, MS is sticking with its approach and [here's an explanation of why](https://devblogs.microsoft.com/go/go-1-24-fips-update/), as well as a look at support for macOS.
- 📻 TinyGo's Ron Evans recently [▶️ gave a talk at FOSDEM's Go devroom](https://cuddly.tube/w/p/2H3BJMkJZEJRUSUGkAaYGw?playlistPosition=13) demonstrating using Go with microcontrollers to communicate over _'a variety of frequencies of the electromagnetic spectrum.'_
- Originally a 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 – [explained in full detail here.](https://stratus3d.com/blog/2025/02/03/asdf-has-been-rewritten-in-go/)   

[We Replaced Our React Frontend with Go and WebAssembly](https://dagger.io/blog/replaced-react-with-go) — Even if you wouldn’t want to do this, it’s interesting to read about the experience of a team that has. 

Alex Suraci (Dagger)   

[OpenTelemetry: A Guide to Observability with Go](https://www.lucavall.in/blog/opentelemetry-a-guide-to-observability-with-go) — A thorough introduction with plenty of code examples. 

Luca Cavallin   

[Eliminating Shadow Access: The Hidden Dangers of SSH and API Keys](https://goteleport.com/eliminating-shadow-access/?utm_campaign=shadowit&utm_content=webinar&utm_medium=partner&utm_source=cooperpress) — Static keys create hidden security risks. Learn how to replace them with dynamic, identity-based access. [Register now!](https://goteleport.com/eliminating-shadow-access/?utm_campaign=shadowit&utm_content=webinar&utm_medium=partner&utm_source=cooperpress) 

Teleport sponsor   

📄 [Why Does `io.Reader` Have Such a Weird Signature?](https://rednafi.com/go/io_reader_signature/) – And there’s actually a good answer. Redowan Delowar 

🎧 [Discussing Security, Devops and Testing in Go with Jakub Jarosz](https://gopodcast.dev/episodes/050-security-devops-testing-in-go-with-jakub-jarosz) go podcast() 

📄 [How I Developed a Markdown Blog with Go and HTMX](https://fluxsec.red/how-I-developed-a-markdown-blog-with-go-and-HTMX) Fluxsec  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/qgu8qhc7rxtauqlizvqg.jpg)](https://github.com/viccon/sturdyc)   

[sturdyc: Caching Library with Advanced Concurrency Features](https://github.com/viccon/sturdyc) — _“A sturdy gopher shielding data sources from rapidly incoming requests.”_ Designed to avoid cache stampedes and overloading in high throughput systems by providing non-blocking reads and sharded writes for minimal lock contention. 

Victor Conner   

[go-taskflow: A Taskflow-Like DAG Task Execution Framework](https://github.com/noneback/go-taskflow) — A general-purpose task-parallel framework for Go, suitable for complex dependency management in concurrent tasks. 

NoneBack   

[EasyCache: A New, Simple In-Memory Caching Library](https://github.com/hugocarreira/easycache) 
Hugo Carreira   

[go-nfs: An NFSv3 Server in Pure go](https://github.com/willscott/go-nfs) — Still a work in progress. 
Will Scott   

- 🤖 [Go OpenAI 1.37](https://github.com/sashabaranov/go-openai) – An OpenAI API wrapper library. Now with support for the new `o3-mini`model. There's also [OpenAI's official Go library](https://github.com/openai/openai-go)now.
- [golangci-lint v1.64.2](https://github.com/golangci/golangci-lint/releases/tag/v1.64.2) – Fast linter runner, now supporting Go 1.24.
- [GoReleaser 2.7](https://goreleaser.com/blog/goreleaser-v2.7/) – Build/release binaries for multiple platforms.
- [Slack API in Go 0.16](https://github.com/slack-go/slack/releases/tag/v0.16.0) – Use the Slack chat system's API from Go, unsurprisingly.
- [pgRoll 0.9](https://github.com/xataio/pgroll/releases/tag/v0.9.0) – Zero-downtime, reversible schema migrations for Postgres.
- 🕒 [Quartz 0.14](https://github.com/reugn/go-quartz) – Zero-dependency job scheduling library.
- [pgxmock 4.5](https://github.com/pashagolub/pgxmock/releases/tag/v4.5.0) – Mock driver to test Postgres interactions.
- [fq 0.14](https://github.com/wader/fq/releases/tag/v0.14.0) – Like `jq` for binary formats.      

📰 Classifieds   

⚡**Fast, Accurate, Reliable** – [CarsXE](https://api.carsxe.com/?utm_source=Cooper+Press&utm_medium=email&utm_campaign=Cooper-press-feb-12) eliminates manual corrections with real-time vehicle data. [Get started now!](https://api.carsxe.com/?utm_source=Cooper+Press&utm_medium=email&utm_campaign=Cooper-press-feb-12) 

--- 

🎹 [STRICH](https://strich.io/?ref=go-weekly): Add blazing fast and reliable 1D/2D Barcode Scanning to your web apps. Free demo app and 30-day trial available.     

📢 Elsewhere in dev  

A quick roundup of some of other interesting stories in the broader landscape, in case you've missed them: 

- Beej, author of [numerous popular guides](https://beej.us/guide/) to programming concepts, has [released _Beej's Guide to Git_](https://beej.us/guide/bggit/), a great zero-to-expert online resource for using the world's most popular DVCS.
- [Learn Shader Programming with Rick and Morty](https://danielchasehooper.com/posts/code-animated-rick/) is a fun way to learn some interesting GLSL techniques from the ground up.
- [DB Fiddle](https://www.db-fiddle.com/) is a handy online database 'sandbox' for playing with various versions of MySQL, Postgres, and SQLite direct from the browser.
- Go is pretty good with WebAssembly now, but I never thought I'd see [a Ruby on Rails app running in the browser](https://web.dev/blog/ruby-on-rails-on-webassembly?hl=en) thanks to WASM.
- [Microsoft has open sourced _DocumentDB_](https://github.com/microsoft/documentdb), a Postgres extension for bring a full fledged document-oriented NoSQL database into the mix.         

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
