---
title: "The internals of the Go fuzz testing system"
publication: "Go Weekly"
issue: 401
published_at: "2022-02-25"
canonical_url: "https://golangweekly.com/issues/401"
---

Plus a new way to share and diff flamegraphs. |        

#​401 — February 25, 2022 

[Unsubscribe](https://golangweekly.com/leave/*|UID|*)|[Read on the Web](https://golangweekly.com/issues/401)   

Go Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/wzimn9nkyv0bogdr5fnr.jpg)](https://flamegraph.com/)   

[flamegraph.com: A Site to Share Interactive Flamegraphs](https://flamegraph.com/) — If you’re doing some [profiling](https://go.dev/blog/pprof) of your apps with `pprof` and want to share the resulting flamegraphs, this slimmed down version of Pyroscope is for you. It also includes a feature to diff two flamegraphs. 

Pyroscope   

[The Internals of Go's New Fuzzing System](https://jayconrod.com/posts/123/internals-of-go-s-new-fuzzing-system) — While the new fuzz testing feature in 1.18 has gotten a lot of press, no one has dug in and described how it works. Jay, who was part of the team that built it, does just that. 

Jay Conrod   [![\](https://copm.s3.amazonaws.com/27df956b.png)](https://buttercms.com/golang-cms/?utm_source=gonewsletter&utm_medium=email&utm_campaign=code) 

[ButterCMS Melts into Your Go App `$ ButterCMS.getposts()`](https://buttercms.com/golang-cms/?utm_source=gonewsletter&utm_medium=email&utm_campaign=code) — ButterCMS is your content backend. Enable your marketing team to update website + app content without needing you. Try the #1 rated Headless CMS for your Go app today. Free for 30 days. 

ButterCMS sponsor   

[Proposal: Add Memory Arenas to Go](https://github.com/golang/go/issues/51317) — Memory arenas are a form of region-based memory management that offers some benefits around efficiency and simpler garbage collection. Apparently, folks at Google have implemented something similar and see significant CPU and GC savings. 

Dan Scales   

🐦 [Russ Cox Corrects Article That Contains Misleading Points on Go](https://twitter.com/_rsc/status/1496352325157457922) — Russ takes aim at [a pro-Rust post](https://aws.amazon.com/blogs/opensource/sustainability-with-rust/) that compares to older versions of Go (1.10 and 1.16) and misuses graphs and takeaways from other articles. 

Russ Cox on Twitter   

▶[Fuzz Testing in Go in 8 Minutes](https://www.youtube.com/watch?v=w8STTZWdG9Y) — A quick explanation and demo of one of the more exciting features coming up in Go 1.18 if you're less interested in the internals (above) and more about day to day use. 

Alex Pliutau    

Jobs  

[Golang Engineers — 100% Remote (North/South America & Europe)](https://www.ardanlabs.com/careers/mid-level-and-senior-backend-engineer.html) — We’ve got several opportunities for Go devs (some working directly with Bill Kennedy!) and would love to hear from those looking for new challenges in distributed systems projects. 
Ardan Labs   

[Golang Developer at X-Team (Remote)](https://x-team.com/remote-go-developer-jobs/?utm_source=cooperpress&utm_medium=email-ad&utm_campaign=cooperpress-go&utm_content=go) — Join the most energizing community for developers and work on long-term projects for Riot Games, FOX, Sony, Coinbase, and more. 
X-Team   

[Find Tech Jobs with Hired](https://hired.com/join/?utm_source=newsletter&utm_medium=sponsor&utm_campaign=%28b2c%29%28l-all%29%28r-all%29%28cooper-golangweekly%29&utm_content=find-your-next-job) — Create a profile on Hired to connect with hiring managers at growing startups and Fortune 500 companies. It's free for job-seekers. 
Hired   

[Enjoy Building Scalable Infrastructure in Go? Stream Is Hiring](https://angel.co/company/stream/jobs/241159-backend-software-engineer-go?) 
Stream      

[Retrofitting Async/Await in Go 1.18?](https://csgrinding.xyz/go-async/) — Is there a use case for an async/await construct (like JavaScript’s) in Go? Bob thinks so and he uses Generics to create a package and demonstrate the results. 

Bob Fang   

[On Self-Modifying Executables in Go](https://muscar.eu/self-modify.html) — Another comparison with Rust that attempts (and somewhat succeeds) in creating a Go binary that can modify itself by incrementing a counter. Fun hackery. 

Alex Muscar   

[Embedding NATS in Go](https://dev.to/karanpratapsingh/embedding-nats-in-go-19o) — Did you know you could embed a [NATS](https://nats.io/) server right inside your Go application? It’s pretty simple and the performance is also quite impressive. 

Karan Pratap Singh  

🛠 Code & Tools  [![\](https://res.cloudinary.com/cpress/image/upload/v1645792649/eehql1pqki7kxjqjkaz8.png)](https://github.com/getlantern/systray) 

[systray: Cross-Platform Library to Place an Icon/Menu in the Notification Area](https://github.com/getlantern/systray) — Supports Windows, macOS and Linux. I only tried it on macOS but it lets you put something in the macOS menu bar/icon area while your app is running. 

Lantern   

[Newser: Scrapes News Articles into a PDF Document](https://github.com/lnenad/newser) — The creator of this tool is a gopher with a new e-ink reader (which has no Web browser) and they wanted to be able to read the news in a single PDF document on their device. 

Nenad   

[GitLeaks 8.3: Check Git Repos and History for Secrets and Keys](https://github.com/zricethezav/gitleaks) — Worried if you’ve got things like AWS details, GitHub tokens or SSH keys hanging around your project’s git repo? Find out for sure with this Go-based tool. 

Zachary Rice   

[Enjoy Building Scalable Infrastructure in Go? Stream Is Hiring](https://angel.co/company/stream/jobs/241159-backend-software-engineer-go) 

Stream sponsor   

[Kratos 2.2: A Go Framework for Cloud-Based Microservices](https://github.com/go-kratos/kratos) — A _“microservice-oriented governance framework”_ built around HTTP/gRPC. 

Kratos   

[Multiple Progress Bar: Progress Bars for Go CLI Apps](https://github.com/vbauerster/mpb) — Straightforward textual progress bars with support for rendering _multiple_ bars at the same time. 

Vladimir Bauer   

[gldap: Build LDAP Services with Go](https://github.com/jimlambrt/gldap) 
Jim Lambert   

[Ticker 4.5: A Terminal Stock Ticker with Live Updates and Tracking](https://github.com/achannarasappa/ticker) 
Ani Channarasappa         

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

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

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