---
title: "The star of the Go"
publication: "Go Weekly"
issue: 415
published_at: "2022-06-10"
canonical_url: "https://golangweekly.com/issues/415"
---

Plus Go's more scripty cousin, using Go to build a better rsync, and Ebiten becomes Ebitengine. |        

#​415 — June 10, 2022 

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

The _Go Weekly_ Newsletter 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/w5tfn58mh3ux2ibkdsmm.jpg)](https://github.com/golang/go)  

**Go has passed 100,000 stars on GitHub.** There was no obvious top feature this week, so what better way to celebrate than to mark the (arguably quite arbitrary) milestone of Go passing into the six figure GitHub stars club? I mean, it's twice as many as Ruby on Rails has, and GitHub was _built_ with that.. :-)  

[Data Race Patterns in Go](https://eng.uber.com/data-race-patterns-in-go/) — Uber's engineers analyzed over 1,100 data races and found that it’s much easier than you might think to introduce them in Go _"due to certain language design choices."_ This post breaks down seven of the most common reasons – your code probably engages in one of them too. 

Chabbi and Ramanathan (Uber)   

[Ebiten, the 2D Game Library for Go, Becomes Ebitengine™](https://ebiten.org/) — If you want to create a 2D game in Go, whether for desktop, mobile, or even the Nintendo Switch, this remains a great place to start, and now it’s got a new name too (in order to land a trademark in Japan, I'm told). There’s also an [Ebitengine Game Jam](https://itch.io/jam/ebiten-game-jam) starting next week, if you want some motivation to give it a try. 

Hajime Hoshi   [![\](https://copm.s3.amazonaws.com/00efd58e.png)](https://buildpulse.io?utm_source=golangweekly&utm_medium=referral&utm_campaign=202206-golangweekly) 

[Flaky Tests Slowing You Down? BuildPulse Can Help](https://buildpulse.io?utm_source=golangweekly&utm_medium=referral&utm_campaign=202206-golangweekly) — BuildPulse automatically detects and tracks flaky tests in your projects so you can stop wasting time chasing broken builds and get back to coding. To top it off, [BuildPulse](https://buildpulse.io/?utm_source=golangweekly&utm_medium=referral&utm_campaign=202206-golangweekly) works seamlessly with Go, and you can set it up in just a few minutes. 

BuildPulse sponsor   

▶[Why a Dev Built a Faster `rsync` from Scratch in Go](https://hackaday.com/2022/06/01/building-faster-rsync-from-scratch-in-go/) — A look at one developer’s story (oriented around a 50-minute talk) about reimplementing a common file transfer tool in Go. Less about Go, per se, and more about the problem at hand, networking, and [gokrazy.](https://gokrazy.org/) 

Bryan Cockfield / Michael Stapelberg   

[Fyne 2.2: Cross Platform GUI Toolkit for Go](https://github.com/fyne-io/fyne) — [Fyne](https://fyne.io/) is a continually improving option for building both desktop and mobile UIs with Go and now includes extra controls like a rich text widget, system tray support, JSON theming, and more. Is there a tutorial? [Yes there is](https://developer.fyne.io/started/). 

Fyne.io   

**Quicker bits:** 

- We featured it last week but the [2022 Go community survey](https://google.qualtrics.com/jfe/form/SV_7O3x4IZKiUn0QCO) is still open and worth taking to help make the Go team's life better :-)
- 📆 [HugoConf](https://hugoconf.io/) is a (free) online conference, taking place in July, dedicated to Go's much loved [static site generator](https://gohugo.io/).   

[How to Embed a React App in a Go Binary](https://www.smartinary.com/blog/how-to-embed-a-react-app-in-a-go-binary/) — While you can use Go to write a backend API, you might use something like React on the front end. Given Go’s power in producing single distributable binaries, could you put your front end code into the binary too? Sure. 

Nils Caspar   

[Generating a Random `float64` with `crypto/rand`](https://brandur.org/fragments/crypto-rand-float64) — `crypto/rand` is more cryptographically secure than `math/rand` but offers fewer options (which you can work around, as seen here). 

Brandur Leach   

[(Mostly) Automatic Go Dependency Updates with GitHub Actions](https://brandur.org/fragments/mostly-automatic-deps) — When there’s no defined process ensuring dependencies get updated, well.. you’re going to end up with some outdated packages in your stack. This isn’t a hard task, really, but one that people don’t always think about. 

Brandur Leach   

[Performance of Coroutine-Style Lexers in Go](https://eli.thegreenplace.net/2022/performance-of-coroutine-style-lexers-in-go/) — Spoiler alert: They’re fast. But, does speed really matter for a lexer? Well, if you’re interested enough to read this article, then you probably already know that answer. 

Eli Bendersky   

[Using Go's Standard Library Interfaces](https://eltonminetto.dev/en/post/2022-06-07-using-go-interfaces/) — A more introductory item. Nice to see more people going back to cementing knowledge through blogging. 

Elton Minetto     

Jobs  

[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   

[Senior Backend Software Engineer - Remote](https://jobs.lever.co/teleport/8a3ba43b-ae42-4225-aaf0-7f54713202d6) — Hiring experienced Go developers interested in building open source software around networking, security and distributed systems. 
Teleport   

[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   

[Find a Job Through 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    

🛠 Code & Tools  

[GoPlus (Go+) 1.1: A More Script-y Variant of Go](https://github.com/goplus/gop) — A confusingly named but well intentioned Go variant, of sorts, that leans more towards Python-style simplicity for scripting, educational, and data science use cases. v1.1 brings in a lot more module support. There’s a little demo [on their home page](https://goplus.org/). 

GoPlus   

[Mo: Monads and Popular FP Abstractions for Go 1.18+](https://github.com/samber/mo) — One for the functional programming fans with a fistful of monads (including family favorites like `Option` (Maybe), `Result` and `Either`) and powered by generics. 

Samuel Berthe   

[Benthos 4.2: A Stream Processor for 'Mundane Tasks'](https://www.benthos.dev/) — It’s been nearly a year since we mentioned Benthos but it’s been coming along so well recently. Define pipelines to connect together various sources and sinks (e.g. S3, Elasticsearch, files, Redis, etc.) and perform operations on the payloads. 

Ashley Jeffs   

[Issue Tracking Has Never Been Easier With Shortcut](https://shortcut.com/?utm_source=cooperGO&utm_medium=spon_nl&utm_campaign=prospecting&utm_content=issuetrack) 

Shortcut (formerly Clubhouse.io) sponsor   

[Ddosify 0.8: High-Performance HTTP Load Testing Tool](https://github.com/ddosify/ddosify) — Supports both HTTP and HTTP/2. Be sure to use this with permission and for good. 

Ddosify   

[gta: Find Which Go Packages Have Deviated from Upstream](https://github.com/digitalocean/gta) — Does transitive analysis to find packages whose dependencies have changed. 

DigitalOcean   

[DurationLint: Linter to Disallow Use of Untyped Literals and Constants as `time.Duration`](https://github.com/vigliag/durationlint) — A very specific pain point. 

Gabriele Viglianisi   

[garr: High Performance, Thread-Safe, Lock-Free Data Mechanisms](https://github.com/line/garr) — Currently includes a circuit breaker, adder, queue, retry/backoff, and worker pool. 

LINE   

[SFTPGo 2.3: A Full Featured SFTP Server Built in Go](https://github.com/drakkan/sftpgo) — Note the GNU AGPLv3 license. 
Drakkan   

[go-srpc: Simple Streaming RPC for Go](https://github.com/hsfzxjy/go-srpc) 
Xie Jingyi   

[SyMon: A Simple Linux System Monitoring and Alerting Tool](https://github.com/dhamith93/SyMon) 
Dhamith Hewamullage   

[rain: A BitTorrent Client and Library in Go](https://github.com/cenkalti/rain) 
Cenk Altı   

[Sarama: A Go Client Library for Apache Kafka](https://github.com/Shopify/sarama) 
Shopify         

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

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

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