---
title: "Go's work on native FIPS 140 support"
publication: "Go Weekly"
issue: 562
published_at: "2025-07-16"
canonical_url: "https://golangweekly.com/issues/562"
---

Plus an interesting way to visualize pprof profiling data. |        

#​562 — July 16, 2025 

[Read the Web Version](https://golangweekly.com/issues/562)  

Together with [![pgAnalyze\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,e_trim,w_350,h_100/e_make_transparent/co_white,e_outline:7/lhwcvgc1asd4fzaahty4.png)](https://events.zoom.us/ev/Asly3G6xu-3cDF1OGUKNNj4CshzbDjtS7LURsnvgvZkfolWqSSl3~AjvcNR15_5w8TOXblsFaev6PqGRVLYmXzfnRTRWxPyB52ixHmfcNi_BMBCFwac_8OP1KrM5lHxuvlBKe4CHtoZtbsg)   

Go Weekly 

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

🔒 [The FIPS 140-3 Go Cryptographic Module](https://go.dev/blog/fips140) — FIPS 140 is a standard for cryptography implementations that’s a requirement in certain subsectors (particularly involving the US government) and while most developers won’t need to worry about it, FIPS 140 support will open doors for some Go devs. This post goes into depth about Go's FIPS 140 support, but if you don’t know what FIPS 140 is, don’t worry about it too much. 

Valsorda, McCarney and Shoemaker   [![\](https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/1acdd297.png)](https://events.zoom.us/ev/Asly3G6xu-3cDF1OGUKNNj4CshzbDjtS7LURsnvgvZkfolWqSSl3~AjvcNR15_5w8TOXblsFaev6PqGRVLYmXzfnRTRWxPyB52ixHmfcNi_BMBCFwac_8OP1KrM5lHxuvlBKe4CHtoZtbsg) 

[Fix Slow Postgres Queries with pganalyze Query Advisor](https://events.zoom.us/ev/Asly3G6xu-3cDF1OGUKNNj4CshzbDjtS7LURsnvgvZkfolWqSSl3~AjvcNR15_5w8TOXblsFaev6PqGRVLYmXzfnRTRWxPyB52ixHmfcNi_BMBCFwac_8OP1KrM5lHxuvlBKe4CHtoZtbsg) — Register for our webinar July 30 to learn how to detect common Postgres query plan problems, get actionable rewrite recommendations, and track the impact in one comprehensive tool. 

pganalyze sponsor   

[A Deep Dive Into Deeply Recursive Go](https://mattermost.com/blog/a-deep-dive-into-deeply-recursive-go/) — Go’s lack of tail-call optimization makes deep recursion prone to fatal stack overflows. Juho discusses real-world recursion scenarios (and the CVEs they led to) and offers ways to make things safer in your code, along with [a proposal to add recoverable overflow handling](https://github.com/golang/go/issues/74577) in the runtime. 

Juho Forsén (Mattermost)   

[Learn Go with Tests: An Online Book for Learning TDD with Go](https://quii.gitbook.io/learn-go-with-tests) — It’s had a few updates over the past year and remains a fantastic resource for walking through both the basics and more intermediate topics like [reflection](https://quii.gitbook.io/learn-go-with-tests/go-fundamentals/reflection) and[generics](https://quii.gitbook.io/learn-go-with-tests/go-fundamentals/generics). 

Chris James   

🇫🇷 There's now also [a French translation](https://goosegeesejeez.gitbook.io/apprendre-go-par-les-tests), if that's more your _tasse de thé._  

[You Don't Need `testify`/`assert`](https://antonz.org/do-not-testify/) — An alternative approach for tight, clean tests, which leads to Anton’s [Be](https://github.com/nalgeon/be) minimal test assertions package that follows his own advice. 

Anton Zhiyanov   

[Kubernetes Best Practices 2025: Comprehensive White Paper](https://www.fairwinds.com/kubernetes-best-practices-comprehensive-white-paper?utm_campaign=golang+weekly+sponsorship+7+25&utm_source=newsletters&utm_medium=referral) — Learn how to improve Kubernetes security, reliability and cost control with practical guidance from real-world clusters. 

Fairwinds sponsor   

📄 [Doing Web Things with CGIs is Mostly No Longer a Good Idea](https://utcc.utoronto.ca/~cks/space/blog/web/CGIIsNoLongerAGreatIdea) – A sensible response to a fun post we featured last week about [using Go to create modern-day CGI-style apps.](https://jacob.gold/posts/serving-200-million-requests-with-cgi-bin/) Chris Siebenmann 

📄 [Building Event-Driven Go Apps with Azure Cosmos DB and Azure Functions](https://devblogs.microsoft.com/cosmosdb/building-event-driven-go-applications-with-azure-cosmos-db-and-azure-functions/) Abhishek Gupta (Microsoft) 

📄 [A Zero-Sized Bug Hunt in `golang.org/x/sync`](https://blog.fillmore-labs.com/posts/zerosized-2/) Fillmore Labs 

📄 [New in Go 1.25: `WaitGroup.Go()`](https://appliedgo.net/spotlight/go-1.25-waitgroup-go/) Christoph Berger  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/lwhsjbm8ebo6ob8lrkdp.jpg)](https://github.com/Oloruntobi1/pproftui)  

[pproftui: A Terminal-Based Diagnostic Tool for `pprof` Data](https://github.com/Oloruntobi1/pproftui) — The idea is rather than focusing on profiling data visually, you get a quick view into the actual code causing the activities being monitored. You can then fix problems more quickly and diff the results of future runs. Live profile viewing is also possible. 

Oloruntobi1   

[oapi-codegen 2.5: Generate Go Boilerplate from OpenAPI 3 Specs](https://github.com/oapi-codegen/oapi-codegen) — A tool and library for converting OpenAI specifications to Go code, both server and client-side. Less boilerplate for you to write! The [v2.5 release notes](https://github.com/oapi-codegen/oapi-codegen/releases/tag/v2.5.0) tease some new tweaks and eventual OpenAPI 3.1 support (which you can [use some tricks to achieve](https://www.jvt.me/posts/2025/05/04/oapi-codegen-trick-openapi-3-1/) for now). 

Various Contributors   

[Introducing go-cdc-chunkers: A New Way to Chunk and Deduplicate Everything](https://plakar.io/posts/2025-07-11/introducing-go-cdc-chunkers-chunk-and-deduplicate-everything/) — Content-Defined Chunking (CDC) is the idea of dividing data into variable-sized chunks based on the content of the data, making it easier to deduplicate. Gilles explains why that’s useful (in quite some depth) and shows off [a new Go project](https://github.com/PlakarKorp/go-cdc-chunkers) giving access to such algorithms. 

Gilles Chehade   

[cpuid 2.3: CPU Feature Identification for Go](https://github.com/klauspost/cpuid) — Use this to find out how many physical and logical cores there are, the family of CPU, and similar details. Supports x86/x64 and ARM64. 

Klaus Post   

- [FastHTTP 1.64](https://github.com/valyala/fasthttp/releases/tag/v1.64.0) – Performance-oriented alternative to `net/http` for [specific high-volume scenarios.](https://github.com/valyala/fasthttp#fasthttp-might-not-be-for-you)
- [Revive 1.11](https://github.com/mgechev/revive) – Fast, configurable, extensible, flexible linter for Go.
- [FerretDB 2.4](https://github.com/FerretDB/FerretDB) – MongoDB-a-like but atop Postgres (or SQLite).
- [gocryptfs 2.6](https://github.com/rfjakob/gocryptfs) – Encrypted overlay filesystem atop Go-FUSE.
- [BadgerDB 4.8](https://github.com/hypermodeinc/badger) – Fast Go-powered key/value database.
- [Kubo 0.36](https://github.com/ipfs/kubo/releases/tag/v0.36.0) – An IPFS implementation in Go         

Curated by Peter Cooper and [Glenn Goodrich](https://twitter.com/ruprict).
Go is a [trademark of Google](https://go.dev/brand).
The [Go gopher](https://go.dev/blog/gopher), whenever used, is an original creation by Renée French. 

[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
