---
title: "An alternative Go playground"
publication: "Go Weekly"
issue: 403
published_at: "2022-03-11"
canonical_url: "https://golangweekly.com/issues/403"
---

Plus generating TypeScript types from Go structs, and a new high level library for RabbitMQ. |        

#​403 — March 11, 2022 

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

The _Go Weekly_ Newsletter 

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

[GoPlay: A Better Go Playground?](https://goplay.tools/) — Powered by React and the Monaco editor control behind VS Code, the “better” here includes a dark theme, autocompletion, a ton of loadable snippets, file loading/saving, and WASM support. There’s also [a Docker image](https://hub.docker.com/r/x1unix/go-playground) so you can have a _private_ playground of your own and tell those kids to get off your lawn. 

Denis Sedchenko   

[Isolating Problematic Cgo Code](https://jonwillia.ms/2022/03/09/isolating-problematic-cgo-code) — This is a wonderfully explained tutorial on using parent-child processes to create, pass, and monitor file descriptors for memory- and CPU-intensive work. 

Jon Williams   [![\](https://copm.s3.amazonaws.com/6289618f.png)](https://about.sourcegraph.com/use-cases/?utm_medium=newsletter&utm_source=go-weekly&utm_content=dev-onboarding#accelerate-developer-onboarding) 

[Understand a Complex Codebase in Minutes, Not Weeks](https://about.sourcegraph.com/use-cases/?utm_medium=newsletter&utm_source=go-weekly&utm_content=dev-onboarding#accelerate-developer-onboarding) — Decrease time to first commit with self-serve onboarding, codebase exploration, and knowledge sharing. Improve dev velocity by making it easy to search and find code and context. 

Sourcegraph sponsor   

**Quick bits:** 

- Go 1.18 is tantalizingly close with [very few release blocking issues](https://github.com/golang/go/issues?q=is%3Aopen+is%3Aissue+label%3Arelease-blocker+milestone%3AGo1.18) remaining. Fingers crossed they don't like releasing on a Friday though.. 😏
- 📘 Interested in using WebAssembly along with Go? [Wasm Cooking with Golang](https://k33g.gumroad.com/l/wasmcooking) may be the e-book for you. There are three chapters you can grab for free.
- GitHub has an interesting quirk where credit for commits can be claimed/taken over when those commits were made by non-GitHub users. Arpad Ray showed how [he managed to claim some old Go commits](https://repography.com/blog/how-to-take-credit-for-someone-elses-work-on-github) of Brian Kernighan's in this way.   

[Shell Scripting with Go](https://bitfieldconsulting.com/golang/scripting) — John has created a `script` library that brings all the pipeline utility goodness into Go so you can create and deploy binaries instead of maintaining traditional Unix scripts (if you prefer). 

John Arundel (Bitfield Consulting)   

▶[Discussing Logging in Go with Ed Welch](https://changelog.com/gotime/220) — Ed works on the Go-powered [Grafana Loki](https://github.com/grafana/loki) log aggregation system so knows a fair bit about the topic. _(1 hour 8 minutes.)_ 

Go Time Podcast podcast     

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   

[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   

[Site Reliability Engineer Needed (Remote)](https://buildkite.com/careers/site-reliability-engineer?) 
Buildkite      

[Rewriting Bash Scripts in Go using Black Box Testing](https://stackoverflow.blog/2022/03/09/rewriting-bash-scripts-in-go-using-black-box-testing/) — When rewriting software in a new language, how do you test that your new and old programs do the same thing? Here’s how one engineer approached it. 

Daniel Orner   

▶[Making a Wordle Clone with Go and Ebiten](https://www.youtube.com/watch?v=lZAB5ZEfc1Q) — Making a word game that runs in the terminal is one thing, but how about an all singing, all dancing graphical version? [Ebiten](https://ebiten.org/) to the rescue. 

Avery Makes Games   

[Looking at `pix`: A Minimalistic Graphic Library](https://embeddedgo.github.io/2022/03/09/pix_a_minimalistic_graphic_library_part1.html) — This library is oriented towards embedded and simple LCD and OLED display controller usage, rather than on the desktop. Some neat examples here and the code is very easy to follow. 

Michał Derkacz   

[Finding Goroutine Leaks in Tests](https://www.storj.io/blog/finding-goroutine-leaks-in-tests) 
Egon Elbre   

[Building a Monorepo in Go](https://earthly.dev/blog/golang-monorepo/) 
Brandon Schurman  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/v2iaguublhh1qwgbjc2r.jpg)](https://github.com/mrmarble/termsvg)  

[termsvg: A Terminal to SVG Recording CLI Tool](https://github.com/mrmarble/termsvg) — The output from something like this can be much more efficient for demos in your GitHub READMEs than traditional animated GIFs. 

Alvaro Tinoco   

[go-rabbitmq: A High(er)-Level RabbitMQ Client for Go](https://qvault.io/golang/connecting-to-rabbitmq-in-golang-easy/) — The [official AMQP library](https://github.com/rabbitmq/amqp091-go) from the RabbitMQ team is _good_, but what if you need a bit more like reconnection logic, boilerplate, flow control..? Enter [go-rabbitmq](https://github.com/wagslane/go-rabbitmq). 

Lane Wagner   

[Tygo: Generate TypeScript Types from Go Source Code](https://github.com/gzuidhof/tygo) — The idea is that you can create types for the front-end based on those used by your Go powered backend by parsing the code that’s actually there. [TypeScriptify](https://github.com/tkrajina/typescriptify-golang-structs) is another option in this space which uses reflection instead. 

Guido Zuidhof   

[Site Reliability Engineer Needed (Remote)](https://buildkite.com/careers/site-reliability-engineer) 

Buildkite sponsor   

[Dasel: Query and Update Data Structures from the Command Line](https://github.com/TomWright/dasel) — Think of `jq`, but for many more formats, such as JSON, TOML, YAML, XML, and CSV. Can be used as a CLI tool or as a Go package. 

Tom Wright   

[AWS Vault: A Vault for Securely Storing and Accessing AWS Credentials in Development](https://github.com/99designs/aws-vault) — Stores IAM credentials in your OS’s keystore and then generates temporary credentials from those to expose to your shell and apps. 

99designs   

[fakegen: Single Binary CLI for Generating a Random Schema of M Columns to Populate N Rows of Data](https://github.com/multiprocessio/fakegen) — Easy, quick, fake JSON data. 

Multiprocess Labs LLC   

[httpx 1.2: A Multi-Purpose HTTP Toolkit for Probing Servers](https://github.com/projectdiscovery/httpx) — A command line tool, written in Go, for running numerous HTTP ‘probers’ at the same time using the [retryablehttp library](https://github.com/projectdiscovery/retryablehttp-go) under the hood. 

Project Discovery   

[Dynamo: An Expressive Amazon DynamoDB Library](https://github.com/guregu/dynamo) — Integrates with the official AWS SDK but gives you a tidier abstraction. 

Greg Roseberry   

[gocql 1.0: A Fast and Robust Cassandra Client Library](https://github.com/gocql/gocql) — Hitting v1.0 for a 7 year old project is no small milestone. 
gocql   

[Subfinder: Subdomain Discovery Tool for Domains](https://github.com/projectdiscovery/subfinder) 
ProjectDiscovery   

[Permify-Gorm: Role Based Access Control (RBAC) for Your Go App](https://github.com/Permify/permify-gorm) 
Permify         

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
